X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/a6b6d0863c1b96e14ba3a2d1b9c941fbbcc8adf2..57fd5c55e459e10cd8a81a92ec2a6f8721f9c30f:/src/xterm.h diff --git a/src/xterm.h b/src/xterm.h index b581c0c015..c8b768f618 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -1,12 +1,12 @@ /* Definitions and headers for communication with X protocol. Copyright (C) 1989, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) +the Free Software Foundation; either version 3, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, @@ -149,6 +149,9 @@ struct x_display_info /* Chain of all x_display_info structures. */ struct x_display_info *next; + /* The generic display parameters corresponding to this X display. */ + struct terminal *terminal; + /* Connection number (normally a file descriptor number). */ int connection; @@ -253,7 +256,7 @@ struct x_display_info char *x_id_name; /* The number of fonts actually stored in x_font_table. - font_table[n] is used and valid iff 0 <= n < n_fonts. 0 <= + font_table[n] is used and valid if 0 <= n < n_fonts. 0 <= n_fonts <= font_table_size and font_table[i].name != 0. */ int n_fonts; @@ -387,8 +390,16 @@ struct x_display_info X_WMTYPE_B } wm_type; - /* The generic display parameters corresponding to this X display. */ - struct terminal *terminal; + + /* Atoms that are drag and drop atoms */ + Atom *x_dnd_atoms; + size_t x_dnd_atoms_size; + size_t x_dnd_atoms_length; + + /* Extended window manager hints, Atoms supported by the window manager */ + Atom *net_supported_atoms; + int nr_net_supported_atoms; + Window net_supported_window; }; #ifdef HAVE_X_I18N @@ -423,6 +434,7 @@ extern struct x_display_info *x_display_info_for_display P_ ((Display *)); extern struct x_display_info *x_display_info_for_name P_ ((Lisp_Object)); extern struct x_display_info *x_term_init P_ ((Lisp_Object, char *, char *)); +extern int x_display_ok P_ ((const char *)); extern Lisp_Object x_list_fonts P_ ((struct frame *, Lisp_Object, int, int)); extern void select_visual P_ ((struct x_display_info *)); @@ -520,8 +532,10 @@ struct x_output /* Pixel values used for various purposes. border_pixel may be -1 meaning use a gray tile. */ +#if 0 /* These are also defined in struct frame. Use that instead. */ unsigned long background_pixel; unsigned long foreground_pixel; +#endif unsigned long cursor_pixel; unsigned long border_pixel; unsigned long mouse_pixel; @@ -636,18 +650,14 @@ struct x_output 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; + /* The frame's left/top offsets before we call XMoveWindow. See + x_check_expected_move. */ + int left_before_move; + int top_before_move; }; #define No_Cursor (None) @@ -799,6 +809,12 @@ struct scroll_bar place where the user grabbed it. If the handle isn't currently being dragged, this is Qnil. */ Lisp_Object dragging; + +#ifdef USE_TOOLKIT_SCROLL_BARS + /* t if the background of the fringe that is adjacent to a scroll + bar is extended to the gap between the fringe and the bar. */ + Lisp_Object fringe_extended_p; +#endif }; /* The number of elements a vector holding a struct scroll_bar needs. */ @@ -958,10 +974,6 @@ void x_delete_display P_ ((struct x_display_info *)); void x_make_frame_visible P_ ((struct frame *)); void x_iconify_frame P_ ((struct frame *)); void x_wm_set_size_hint P_ ((struct frame *, long, int)); -void x_catch_errors P_ ((Display *)); -int x_had_errors_p P_ ((Display *)); -void x_uncatch_errors P_ ((void)); -void x_check_errors P_ ((Display *, char *)); int x_text_icon P_ ((struct frame *, char *)); int x_bitmap_icon P_ ((struct frame *, Lisp_Object)); void x_set_window_size P_ ((struct frame *, int, int, int)); @@ -977,10 +989,13 @@ extern int x_bitmap_icon P_ ((struct frame *, Lisp_Object)); extern void x_catch_errors P_ ((Display *)); extern void x_check_errors P_ ((Display *, char *)); extern int x_had_errors_p P_ ((Display *)); +extern int x_catching_errors P_ ((void)); extern void x_uncatch_errors P_ ((void)); +extern void x_clear_errors P_ ((Display *)); extern void x_set_window_size P_ ((struct frame *, int, int, int)); extern void x_set_mouse_position P_ ((struct frame *, int, int)); extern void x_set_mouse_pixel_position P_ ((struct frame *, int, int)); +extern void x_ewmh_activate_frame P_ ((struct frame *)); extern void x_raise_frame P_ ((struct frame *)); extern void x_lower_frame P_ ((struct frame *)); extern void x_make_frame_visible P_ ((struct frame *)); @@ -997,6 +1012,10 @@ extern void x_initialize P_ ((void)); extern unsigned long x_copy_color P_ ((struct frame *, unsigned long)); #ifdef USE_X_TOOLKIT extern XtAppContext Xt_app_con; +extern int x_alloc_lighter_color_for_widget __P ((Widget, Display*, Colormap, + unsigned long *, + double, int)); +extern void x_activate_timeout_atimer P_ ((void)); #endif extern void x_query_colors P_ ((struct frame *f, XColor *, int)); extern void x_query_color P_ ((struct frame *f, XColor *));