[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xterm.h [lexbind]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/src/xterm.h [lexbind] |
Date: |
Tue, 14 Oct 2003 19:23:35 -0400 |
Index: emacs/src/xterm.h
diff -c emacs/src/xterm.h:1.130.2.1 emacs/src/xterm.h:1.130.2.2
*** emacs/src/xterm.h:1.130.2.1 Fri Apr 4 01:21:10 2003
--- emacs/src/xterm.h Tue Oct 14 19:22:52 2003
***************
*** 126,131 ****
--- 126,133 ----
struct x_bitmap_record
{
Pixmap pixmap;
+ int have_mask;
+ Pixmap mask;
char *file;
int refcount;
/* Record some info about this pixmap. */
***************
*** 181,186 ****
--- 183,191 ----
/* The root window of this screen. */
Window root_window;
+ /* Client leader window. */
+ Window client_leader_window;
+
/* The cursor to use for vertical scroll bars. */
Cursor vertical_scroll_bar_cursor;
***************
*** 287,292 ****
--- 292,298 ----
/* Other WM communication */
Atom Xatom_wm_configure_denied; /* When our config request is denied */
Atom Xatom_wm_window_moved; /* When the WM moves us. */
+ Atom Xatom_wm_client_leader; /* Id of client leader window. */
/* EditRes protocol */
Atom Xatom_editres;
***************
*** 354,361 ****
--- 360,389 ----
use this directly, call x_color_cells instead. */
XColor *color_cells;
int ncolor_cells;
+
+ /* Bits and shifts to use to compose pixel values on TrueColor visuals. */
+ int red_bits, blue_bits, green_bits;
+ int red_offset, blue_offset, green_offset;
+
+ /* The type of window manager we have. If we move FRAME_OUTER_WINDOW
+ to x/y 0/0, some window managers (type A) puts the window manager
+ decorations outside the screen and FRAME_OUTER_WINDOW exactly at 0/0.
+ Other window managers (type B) puts the window including decorations
+ at 0/0, so FRAME_OUTER_WINDOW is a bit below 0/0.
+ Record the type of WM in use so we can compensate for type A WMs. */
+ enum
+ {
+ X_WMTYPE_UNKNOWN,
+ X_WMTYPE_A,
+ X_WMTYPE_B
+ } wm_type;
};
+ #ifdef HAVE_X_I18N
+ /* Whether or not to use XIM if we have it. */
+ extern int use_xim;
+ #endif
+
/* This checks to make sure we have a display. */
extern void check_x P_ ((void));
***************
*** 400,415 ****
struct x_output
{
- /* Position of the X window (x and y offsets in root window). */
- int left_pos;
- int top_pos;
-
- /* Border width of the X window as known by the X window system. */
- int border_width;
-
- /* Size of the X window in pixels. */
- int pixel_height, pixel_width;
-
/* Height of menu bar widget, in pixels.
Zero if not using the X toolkit.
When using the toolkit, this value is not meaningful
--- 428,433 ----
***************
*** 420,428 ****
Zero if not using an external tool bar. */
int toolbar_height;
- /* Height of a line, in pixels. */
- int line_height;
-
/* The tiled border used when the mouse is out of the frame. */
Pixmap border_tile;
--- 438,443 ----
***************
*** 431,441 ****
GC reverse_gc; /* Reverse video */
GC cursor_gc; /* cursor drawing */
- /* Width of the internal border. This is a line of background color
- just inside the window's border. When the frame is selected,
- a highlighting is displayed inside the internal border. */
- int internal_border_width;
-
/* The X window used for this frame.
May be zero while the frame object is being created
and the X window has not yet been created. */
--- 446,451 ----
***************
*** 551,572 ****
to the mask as we go. */
XWMHints wm_hints;
- /* The size of the extra width currently allotted for vertical
- scroll bars, in pixels. */
- int vertical_scroll_bar_extra;
-
- /* The extra width currently allotted for the areas in which
- truncation marks, continuation marks, and overlay arrows are
- displayed. */
- int left_fringe_width, right_fringe_width;
- int fringe_cols, fringes_extra;
-
- /* This is the gravity value for the specified window position. */
- int win_gravity;
-
- /* The geometry flags for this window. */
- int size_hint_flags;
-
/* This is the Emacs structure for the X display this frame is on. */
struct x_display_info *display_info;
--- 561,566 ----
***************
*** 616,632 ****
zero, tell Xt not to wait. */
int wait_for_wm;
- /* See enum below */
- int want_fullscreen;
-
- /* This many pixels are the difference between the outer window (i.e. the
- left of the window manager decoration) and FRAME_X_WINDOW. */
- int x_pixels_diff;
-
- /* This many pixels are the difference between the outer window (i.e. the
- top of the window manager titlebar) and FRAME_X_WINDOW. */
- int y_pixels_diff;
-
/* As x_pixels_diff, but to FRAME_OUTER_WINDOW. For some reason the
two might differ by a pixel, depending on WM */
int x_pixels_outer_diff;
--- 610,615 ----
***************
*** 640,645 ****
--- 623,641 ----
frame, or IMPLICIT if we received an EnterNotify.
FocusOut and LeaveNotify clears EXPLICIT/IMPLICIT. */
int focus_state;
+
+ /* The latest move we made to FRAME_OUTER_WINDOW. Saved so we can
+ compensate for type A WMs (see wm_type in dpyinfo above). */
+ int expected_top;
+ int expected_left;
+
+ /* The offset we need to add to compensate for type A WMs. */
+ int move_offset_top;
+ int move_offset_left;
+
+ /* Nonzero if we have made a move and needs to check if the WM placed us
+ at the right position. */
+ int check_expected_move;
};
#define No_Cursor (None)
***************
*** 688,701 ****
#define FRAME_FONT(f) ((f)->output_data.x->font)
#define FRAME_FONTSET(f) ((f)->output_data.x->fontset)
- #define FRAME_INTERNAL_BORDER_WIDTH(f)
((f)->output_data.x->internal_border_width)
#define FRAME_MENUBAR_HEIGHT(f) ((f)->output_data.x->menubar_height)
#define FRAME_TOOLBAR_HEIGHT(f) ((f)->output_data.x->toolbar_height)
- #define FRAME_LINE_HEIGHT(f) ((f)->output_data.x->line_height)
-
- /* Width of the default font of frame F. Must be defined by each
- terminal specific header. */
- #define FRAME_DEFAULT_FONT_WIDTH(F) FONT_WIDTH (FRAME_FONT (F))
#define FRAME_BASELINE_OFFSET(f) ((f)->output_data.x->baseline_offset)
/* This gives the x_display_info structure for the display F is on. */
--- 684,691 ----
***************
*** 717,726 ****
/* This is the 'font_info *' which frame F has. */
#define FRAME_X_FONT_TABLE(f) (FRAME_X_DISPLAY_INFO (f)->font_table)
- /* These two really ought to be called FRAME_PIXEL_{WIDTH,HEIGHT}. */
- #define PIXEL_WIDTH(f) ((f)->output_data.x->pixel_width)
- #define PIXEL_HEIGHT(f) ((f)->output_data.x->pixel_height)
-
/* The difference in pixels between the top left corner of the
Emacs window (including possible window manager decorations)
and FRAME_X_WINDOW (f). */
--- 707,712 ----
***************
*** 752,776 ****
#define FRAME_X_IMAGE_CACHE(F) FRAME_X_DISPLAY_INFO ((F))->image_cache
- /* Total width of fringes reserved for drawing truncation bitmaps,
- continuation bitmaps and alike. The width is in canonical char
- units of the frame. This must currently be the case because window
- sizes aren't pixel values. If it weren't the case, we wouldn't be
- able to split windows horizontally nicely. */
-
- #define FRAME_X_FRINGE_COLS(F) ((F)->output_data.x->fringe_cols)
-
- /* Total width of fringes in pixels. */
-
- #define FRAME_X_FRINGE_WIDTH(F) ((F)->output_data.x->fringes_extra)
-
- /* Pixel-width of the left and right fringe. */
-
- #define FRAME_X_LEFT_FRINGE_WIDTH(F) ((F)->output_data.x->left_fringe_width)
- #define FRAME_X_RIGHT_FRINGE_WIDTH(F) ((F)->output_data.x->right_fringe_width)
-
-
-
/* X-specific scroll bar stuff. */
/* We represent scroll bars as lisp vectors. This allows us to place
--- 738,743 ----
***************
*** 912,963 ****
#define VERTICAL_SCROLL_BAR_WIDTH_TRIM (0)
- /* Manipulating pixel sizes and character sizes.
- Knowledge of which factors affect the overall size of the window should
- be hidden in these macros, if that's possible.
-
- Return the upper/left pixel position of the character cell on frame F
- at ROW/COL. */
- #define CHAR_TO_PIXEL_ROW(f, row) \
- ((f)->output_data.x->internal_border_width \
- + (row) * (f)->output_data.x->line_height)
- #define CHAR_TO_PIXEL_COL(f, col) \
- ((f)->output_data.x->internal_border_width \
- + (col) * FONT_WIDTH ((f)->output_data.x->font))
-
- /* Return the pixel width/height of frame F if it has
- WIDTH columns/HEIGHT rows. */
- #define CHAR_TO_PIXEL_WIDTH(f, width) \
- (CHAR_TO_PIXEL_COL (f, width) \
- + (f)->output_data.x->vertical_scroll_bar_extra \
- + (f)->output_data.x->fringes_extra \
- + (f)->output_data.x->internal_border_width)
- #define CHAR_TO_PIXEL_HEIGHT(f, height) \
- (CHAR_TO_PIXEL_ROW (f, height) \
- + (f)->output_data.x->internal_border_width)
-
-
- /* Return the row/column (zero-based) of the character cell containing
- the pixel on FRAME at ROW/COL. */
- #define PIXEL_TO_CHAR_ROW(f, row) \
- (((row) - (f)->output_data.x->internal_border_width) \
- / (f)->output_data.x->line_height)
- #define PIXEL_TO_CHAR_COL(f, col) \
- (((col) - (f)->output_data.x->internal_border_width) \
- / FONT_WIDTH ((f)->output_data.x->font))
-
- /* How many columns/rows of text can we fit in WIDTH/HEIGHT pixels on
- frame F? */
- #define PIXEL_TO_CHAR_WIDTH(f, width) \
- (PIXEL_TO_CHAR_COL (f, ((width) \
- - (f)->output_data.x->internal_border_width \
- - (f)->output_data.x->fringes_extra \
- - (f)->output_data.x->vertical_scroll_bar_extra)))
- #define PIXEL_TO_CHAR_HEIGHT(f, height) \
- (PIXEL_TO_CHAR_ROW (f, ((height) \
- - (f)->output_data.x->internal_border_width)))
-
-
/* If a struct input_event has a kind which is SELECTION_REQUEST_EVENT
or SELECTION_CLEAR_EVENT, then its contents are really described
by this structure. */
--- 879,884 ----
***************
*** 1091,1096 ****
--- 1012,1023 ----
unsigned int, unsigned int));
extern int x_create_bitmap_from_file P_ ((struct frame *, Lisp_Object));
extern void x_destroy_bitmap P_ ((struct frame *, int));
+ extern int x_create_bitmap_mask P_ ((struct frame * , int));
+
+ #ifdef USE_GTK
+ extern int xg_set_icon P_ ((struct frame *, Lisp_Object));
+ #endif /* USE_GTK */
+
extern void x_real_positions P_ ((struct frame *, int *, int *));
extern int defined_color P_ ((struct frame *, char *, XColor *, int));
extern void x_set_border_pixel P_ ((struct frame *, int));
***************
*** 1117,1123 ****
/* Defined in xfaces.c */
- extern int frame_update_line_height P_ ((struct frame *));
extern int compute_glyph_face P_ ((struct frame *, int, int));
extern int compute_glyph_face_1 P_ ((struct frame *, Lisp_Object, int));
extern void x_free_dpy_colors P_ ((Display *, Screen *, Colormap,
--- 1044,1049 ----
***************
*** 1137,1143 ****
/* Defined in xsmfns.c */
#ifdef HAVE_X_SM
! extern void x_session_initialize P_ ((void));
extern int x_session_check_input P_ ((struct input_event *bufp,
int *numchars));
extern int x_session_have_connection P_ ((void));
--- 1063,1069 ----
/* Defined in xsmfns.c */
#ifdef HAVE_X_SM
! extern void x_session_initialize P_ ((struct x_display_info *dpyinfo));
extern int x_session_check_input P_ ((struct input_event *bufp,
int *numchars));
extern int x_session_have_connection P_ ((void));
***************
*** 1161,1163 ****
--- 1087,1092 ----
(nr).y = (ry), \
(nr).width = (rwidth), \
(nr).height = (rheight))
+
+ /* arch-tag: 78a7972a-b18f-4694-861a-0780c4b3090e
+ (do not change this comment) */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/src/xterm.h [lexbind],
Miles Bader <=