4 * Copyright 2001 Sun Microsystems Inc.
6 * Erwann Chenede <erwann.chenede@sun.com>
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
18 * You should have received a copy of the GNU Library General Public
19 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
22 #ifndef __GDK_X11_DISPLAY__
23 #define __GDK_X11_DISPLAY__
25 #include "gdkdisplayprivate.h"
27 #include "gdkwindow.h"
28 #include "gdkinternals.h"
39 GdkDisplay parent_instance;
41 GdkScreen *default_screen;
44 GSource *event_source;
48 /* Keyboard related information */
52 /* Whether we were able to turn on detectable-autorepeat using
53 * XkbSetDetectableAutorepeat. If FALSE, we'll fall back
54 * to checking the next event with XPending().
56 gboolean have_xkb_autorepeat;
62 gint xfixes_event_base;
64 gboolean have_xcomposite;
65 gboolean have_xdamage;
66 gint xdamage_event_base;
68 gboolean have_randr12;
69 gboolean have_randr13;
70 gint xrandr_event_base;
72 /* If the SECURITY extension is in place, whether this client holds
73 * a trusted authorization and so is allowed to make various requests
74 * (grabs, properties etc.) Otherwise always TRUE.
76 gboolean trusted_client;
78 /* drag and drop information */
79 GdkDragContext *current_dest_drag;
81 /* data needed for MOTIF DnD */
82 Window motif_drag_window;
83 GdkWindow *motif_drag_gdk_window;
84 GList **motif_target_lists;
85 gint motif_n_target_lists;
87 /* Mapping to/from virtual atoms */
88 GHashTable *atom_from_virtual;
89 GHashTable *atom_to_virtual;
91 /* Session Management leader window see ICCCM */
93 GdkWindow *leader_gdk_window;
94 gboolean leader_window_title_set;
96 /* List of functions to go from extension event => X window */
102 /* translation queue */
103 GQueue *translate_queue;
106 /* input GdkDevice list */
107 GList *input_devices;
109 /* input GdkWindow list */
110 GList *input_windows;
112 /* Startup notification */
113 gchar *startup_notification_id;
115 /* Time of most recent user interaction. */
118 /* Sets of atoms for DND */
119 guint base_dnd_atoms_precached : 1;
120 guint xdnd_atoms_precached : 1;
121 guint motif_atoms_precached : 1;
124 guint have_shapes : 1;
125 guint have_input_shapes : 1;
126 gint shape_event_base;
128 /* The offscreen window that has the pointer in it (if any) */
129 GdkWindow *active_offscreen_window;
133 gint wm_moveresize_button;
136 struct _GdkX11DisplayClass
138 GdkDisplayClass parent_class;
141 GdkScreen *_gdk_x11_display_screen_for_xrootwin (GdkDisplay *display,
143 void _gdk_x11_display_error_event (GdkDisplay *display,
146 GdkFilterReturn _gdk_wm_protocols_filter (GdkXEvent *xev,
152 #endif /* __GDK_X11_DISPLAY__ */