diff options
author | Owen Taylor <otaylor@redhat.com> | 2001-09-07 21:50:20 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2001-09-07 21:50:20 +0000 |
commit | 1bbf2ac7ee201ea1a6a1f6307371dae86952235b (patch) | |
tree | 122a66b70762db77e892ca4b9d66278c8a5c778b /gdk/x11 | |
parent | f1427cd9bb2d980af72b98d6f1f1d835190edc52 (diff) | |
download | gtk+-1bbf2ac7ee201ea1a6a1f6307371dae86952235b.tar.gz |
Make gdkx.h the only installed header from gdk/x11. All structures in
Fri Sep 7 11:51:44 2001 Owen Taylor <otaylor@redhat.com>
Make gdkx.h the only installed header from gdk/x11.
All structures in gdk/x11 are opaque.
* gdk/x11/Makefile.am gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h:
Don't install gdk{drawable,pixmap,window}-x11.h.
* gdk/x11/{gdkcolormap-x11.c, gdkfont-x11.c, gdkx.h, gdkvisual-x11.c:
Move GdkColormapPrivateX11, GdkFontPrivateX GdkImagePrivateX11,
GdkVisualClass into C files.
* gdk/gdkpixmap-x11.[ch]: Make gdk_pixmap_impl_get_type() static.
* gdk/x11/{gdkcolor-x11.c, gdkcursor-x11.c, gdkdrawable-x11.c,
gdkfont-x11.c, gdkgc-x11.c, gdkx.h, gdkimage-x11,gdkvisual-x11.c}
Add public functions to replace previously exported direct
structure access.
gdk_x11_colormap_get_{xdisplay,xcolormap}
gdk_x11_cursor_get_{xdisplay,xcursor},
gdk_x11_drawable_get_{xdisplay,xcursor,gdk_x11_visual_get_xvisual,
gdk_x11_font_get_{xdisplay,xfont}, gdk_x11_image_get_{xdisplay,ximage},
gdk_x11_gc_get_{xdisplay,ximage}
* gdk/gdkprivate.h gdk/gdkinternals.h: Move GdkColorInfo,
GdkEventFilter, GdkClientFilter, GdkFontPrivate to gdkinternals.
Fix a number of variables and functions that were exported
"accidentally" from GDK.
* gdk/**.[ch]: gdk => _gdk for gdk_visual_init,
gdk_events_init, gdk_input_init, gdk_dnd_init, gdk_image_exit,
gdk_input_exit, gdk_windowing_exit, gdk_event_func, gdk_event_data,
gdk_event_notify, gdk_queued_events, gdk_queued_tail,
gdk_event_new, gdk_events_queue, gdk_events_unqueue,
gdk_event_queue_find_first, gdk_event_queue_remove_link,
gdk_event_queue_append, gdk_event_button_generate,
gdk_debug_flags, gdk_default_filters, gdk_parent_root.
* gdk/x11/{gdkevents-x11.c, gdkglobals-x11.c, gdkimage-x11.c,
gdkmain-x11.c, gdkprivate-x11.h, gdk/x11/gdkwindow-x11.c}:
gdk => _gdk for gdk_event_mask_table, gkd_nevent_masks,
gdk_wm_window_protocols, gdk_leader_window, gdk_xgrab_window,
gdk_use_xshm, gdk_input_ignore_core.
* gdk/x11/xsettings-common.h (xsettings_list_insert): Add
#defines to namespace functions into the private _gdk_
namespace.
* gdk/gdkwindow.[ch] gdk/x11/gdkx.h: Add gdk_get_default_root_window ()
to replace gdk_parent_root exported variable. Adjust and
deprecate GDK_ROOT_PARENT().
* demos/{testpixbuf-drawable.c,testpixbuf-save.c}: Fix
GDK_ROOT_PARENT usage, remove includes of port-specific
headers.
* gdk/{win32,x11,fb}/gdkinput*.[ch]: s/gdk/_gdk/ for
_gdk_input_gxid_host, _gdk_input_gxid_port, _gdk_input_ignore_core,
gdk_input_devices, _gdk_input_windows, gdk_init_input_core.
* gdk/x11/{gdkevents-x11.,c gdkglobals-x11.c, gdkmain-x11.c}
docs/Changes-2.0.txt: Remove gdk_wm_protocols,
gdk_wm_delete_window functions, gdk_wm_take_focus,
use gdk_atom_intern() instead.
* gdk/linux-fb/{gdkselection-fb.c, gdkmain-fb.c, gdkprivatefb.h}
gdk/win32/{gdkselection-win32.c, gdkmgdkwin32.h, gdkprivate-win32.h}
gdk/x11/{gdkselection-x11.c gdkx.h, gtkprivate-x11.h}
gtk/gtkselection.c
Unexport gdk_selection_property, just use
gdk_atom_intern ("GDK_SELECTION").
* gdk/x11/{gdkprivate-x11.h,gdkdrawable-x11h,gdkgc-x11.c,gdkx.h}:
Unexport gdk_drawable_impl_x11_get_type, gdk_gc_x11_get_type,
GDK_GC_X11 cast macros, GdkGCX11 structures, GdkCursorPrivate,
GdkVisualprivate, gdk_x11_gc_flush.
Make a number of public exports of variables into functions
to increase encapsulation.
* gdk/gdkinternals.h gdk/gdkinput.h gdk/gdkevents.h
gdk/linux-fb/gdkmouse-fb.c: gdk_core_pointer => _gdk_core_pointer,
move to gdkinternals.h. Add gdk_device_get_core_pointer ().
* gdk/gdkprivate.h gdk/gdkpango.c gdk/gdkinternals.h
docs/Changes-2.0.txt: Unexport gdk_parent_root, gdk_error_code,
gdk_error_warnings.
* gdk/x11/{gdkcolormap-x11.c, gdkmain-x11.c, gdkx.h}
docs/Changes-2.0.txt:
s/gdk_screen/_gdk_screen/, add gdk_x11_get_default_screen()
s/gdk_root_window/_gdk_root_window/, add gdk_x11_get_default_root_xwindow()
Add gdk_x11_get_default_xdisplay().
* gdk/gdk.h gdk/gdk.c linux-fb/gdkfb.h linux-fb/gdkglobals-fb.c
win32/gdkwin32.h x11/gdkglobals-x11.c gdk/x11/gdkmain-x11.c
gdk/x11/gdkx.h: gdk/gdk.def: Add gdk_get/set_program_class,
Don't export gdk_progclass, move --class command line
option and handling to common portion of GDK.
Miscellaneous fixes:
* gdk/x11/gdkwindow-x11.c (gdk_window_set_icon_list): Fix
g_return_val_if_fail that should have been g_return_if_fail.
* gdk/gdkinternals.h gdk/gdkprivate.h: Move
gdk_synthesize_window_state() to the semi-public gdkprivate.h.
* gtk/gtkdnd.c (_gtk_drag_source_handle_event): Remove uneeded
X11 dependency.
* gdk/linux-fb/gdkmain-fb.c gdk/win32/gdkmain-win32.c gdk/TODO:
Remove unused gdk_key_repeat_disable/restore.
* linux-fb/gdkglobals-fb.c win32/gdkglobals-win32.c
x11/gdkglobals-x11.c x11/gdkprivate-x11.h gdk/gdk.def:
Remove unused gdk_null_window_warnings variable.
* gdk/Makefile.am (DIST_SUBDIRS) nanox/*: cvs remove nanox;
it can be retrieved from the repository; it is too far
from functional to be worth having people check out;
it would be easier to start from scratch, I suspect.
* gdk/x11/gdkpixmap-x11.c: Fix lvalue usage of GDK_PIXMAP_XID().
* gdk/x11/gdkkeys-x11.c gdk/gdkrgb.c gdk/gdkwindow.c
gdk/x11/gdkpango-x11.c gdk/x11/gdkselection-x11.c:
Fix some accidentally global variables and unused global variables.
* gdk/x11/gdkkeys-x11.c gdk/gdkrgb.c gdk/gdkwindow.c
gdk/x11/gdkpango-x11.c gdk/x11/gdkselection-x11.c:
Fix some accidentally global variables and unused global variables.
Add some space for future expansion to multihead.
* gdk/gdkdrawable.h: Add four reserved function pointers
for future expansion of GdkDrawableClass.
* gtk/gtkwindow.h gtk/gtkinvisible.h: Add reserved pointer
where we can put a GdkScreen * later.
Diffstat (limited to 'gdk/x11')
-rw-r--r-- | gdk/x11/Makefile.am | 10 | ||||
-rw-r--r-- | gdk/x11/gdkcolor-x11.c | 63 | ||||
-rw-r--r-- | gdk/x11/gdkcursor-x11.c | 18 | ||||
-rw-r--r-- | gdk/x11/gdkdnd-x11.c | 138 | ||||
-rw-r--r-- | gdk/x11/gdkdrawable-x11.c | 40 | ||||
-rw-r--r-- | gdk/x11/gdkdrawable-x11.h | 5 | ||||
-rw-r--r-- | gdk/x11/gdkevents-x11.c | 112 | ||||
-rw-r--r-- | gdk/x11/gdkfont-x11.c | 30 | ||||
-rw-r--r-- | gdk/x11/gdkgc-x11.c | 27 | ||||
-rw-r--r-- | gdk/x11/gdkglobals-x11.c | 24 | ||||
-rw-r--r-- | gdk/x11/gdkimage-x11.c | 53 | ||||
-rw-r--r-- | gdk/x11/gdkinput-gxi.c | 32 | ||||
-rw-r--r-- | gdk/x11/gdkinput-none.c | 6 | ||||
-rw-r--r-- | gdk/x11/gdkinput-x11.c | 8 | ||||
-rw-r--r-- | gdk/x11/gdkinput-xfree.c | 28 | ||||
-rw-r--r-- | gdk/x11/gdkinput.c | 52 | ||||
-rw-r--r-- | gdk/x11/gdkinputprivate.h | 12 | ||||
-rw-r--r-- | gdk/x11/gdkkeys-x11.c | 2 | ||||
-rw-r--r-- | gdk/x11/gdkmain-x11.c | 111 | ||||
-rw-r--r-- | gdk/x11/gdkpixmap-x11.c | 19 | ||||
-rw-r--r-- | gdk/x11/gdkpixmap-x11.h | 2 | ||||
-rw-r--r-- | gdk/x11/gdkprivate-x11.h | 77 | ||||
-rw-r--r-- | gdk/x11/gdkproperty-x11.c | 16 | ||||
-rw-r--r-- | gdk/x11/gdkselection-x11.c | 8 | ||||
-rw-r--r-- | gdk/x11/gdkvisual-x11.c | 21 | ||||
-rw-r--r-- | gdk/x11/gdkwindow-x11.c | 74 | ||||
-rw-r--r-- | gdk/x11/gdkx.h | 161 | ||||
-rw-r--r-- | gdk/x11/xsettings-common.h | 17 |
28 files changed, 687 insertions, 479 deletions
diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am index 703ebee435..1d8d57dd86 100644 --- a/gdk/x11/Makefile.am +++ b/gdk/x11/Makefile.am @@ -1,10 +1,10 @@ ## Process this file with automake to produce Makefile.in libgdkincludedir = $(includedir)/gtk-2.0/gdk -libgdkx11includedir = $(includedir)/gtk-2.0/gdk/x11 INCLUDES = @STRIP_BEGIN@ \ -DG_LOG_DOMAIN=\"Gdk\" \ + -DINSIDE_GDK_X11 \ -I$(top_srcdir) \ -I$(top_srcdir)/gdk \ -I$(top_builddir)/gdk \ @@ -39,6 +39,7 @@ libgdk_x11_la_SOURCES = \ gdkcursor-x11.c \ gdkdnd-x11.c \ gdkdrawable-x11.c \ + gdkdrawable-x11.h \ gdkevents-x11.c \ gdkfont-x11.c \ gdkgc-x11.c \ @@ -51,10 +52,12 @@ libgdk_x11_la_SOURCES = \ gdkmain-x11.c \ gdkpango-x11.c \ gdkpixmap-x11.c \ + gdkpixmap-x11.h \ gdkproperty-x11.c \ gdkselection-x11.c \ gdkvisual-x11.c \ gdkwindow-x11.c \ + gdkwindow-x11.h \ gdkxid.c \ gxid_lib.c \ gxid_lib.h \ @@ -71,11 +74,6 @@ libgdk_x11_la_SOURCES = \ libgdkinclude_HEADERS = \ gdkx.h -libgdkx11include_HEADERS = \ - gdkdrawable-x11.h \ - gdkwindow-x11.h \ - gdkpixmap-x11.h - EXTRA_PROGRAMS = gxid bin_PROGRAMS = @xinput_progs@ diff --git a/gdk/x11/gdkcolor-x11.c b/gdk/x11/gdkcolor-x11.c index af6a1172dc..13b99e0ba0 100644 --- a/gdk/x11/gdkcolor-x11.c +++ b/gdk/x11/gdkcolor-x11.c @@ -27,8 +27,22 @@ #include <time.h> #include "gdkcolor.h" +#include "gdkinternals.h" #include "gdkprivate-x11.h" +typedef struct _GdkColormapPrivateX11 GdkColormapPrivateX11; + +struct _GdkColormapPrivateX11 +{ + Colormap xcolormap; + Display *xdisplay; + gint private_val; + + GHashTable *hash; + GdkColorInfo *info; + time_t last_sync_time; +}; + #define GDK_COLORMAP_PRIVATE_DATA(cmap) ((GdkColormapPrivateX11 *) GDK_COLORMAP (cmap)->windowing_data) static gint gdk_colormap_match_color (GdkColormap *cmap, @@ -161,7 +175,7 @@ gdk_colormap_new (GdkVisual *visual, (GEqualFunc) gdk_color_equal); private->private_val = private_cmap; - private->xcolormap = XCreateColormap (private->xdisplay, gdk_root_window, + private->xcolormap = XCreateColormap (private->xdisplay, _gdk_root_window, xvisual, (private_cmap) ? (AllocAll) : (AllocNone)); if (private_cmap) @@ -174,7 +188,7 @@ gdk_colormap_new (GdkVisual *visual, default_colors[i].pixel = i; XQueryColors (private->xdisplay, - DefaultColormap (private->xdisplay, gdk_screen), + DefaultColormap (private->xdisplay, _gdk_screen), default_colors, colormap->size); for (i = 0; i < colormap->size; i++) @@ -193,7 +207,7 @@ gdk_colormap_new (GdkVisual *visual, case GDK_VISUAL_DIRECT_COLOR: private->private_val = TRUE; - private->xcolormap = XCreateColormap (private->xdisplay, gdk_root_window, + private->xcolormap = XCreateColormap (private->xdisplay, _gdk_root_window, xvisual, AllocAll); colormap->colors = g_new (GdkColor, colormap->size); @@ -215,7 +229,7 @@ gdk_colormap_new (GdkVisual *visual, case GDK_VISUAL_STATIC_GRAY: case GDK_VISUAL_STATIC_COLOR: private->private_val = FALSE; - private->xcolormap = XCreateColormap (private->xdisplay, gdk_root_window, + private->xcolormap = XCreateColormap (private->xdisplay, _gdk_root_window, xvisual, AllocNone); colormap->colors = g_new (GdkColor, colormap->size); @@ -224,7 +238,7 @@ gdk_colormap_new (GdkVisual *visual, case GDK_VISUAL_TRUE_COLOR: private->private_val = FALSE; - private->xcolormap = XCreateColormap (private->xdisplay, gdk_root_window, + private->xcolormap = XCreateColormap (private->xdisplay, _gdk_root_window, xvisual, AllocNone); break; } @@ -296,7 +310,7 @@ gdk_colormap_get_system (void) private = GDK_COLORMAP_PRIVATE_DATA (colormap); private->xdisplay = gdk_display; - private->xcolormap = DefaultColormap (gdk_display, gdk_screen); + private->xcolormap = DefaultColormap (gdk_display, _gdk_screen); colormap->visual = gdk_visual_get_system (); private->private_val = FALSE; @@ -334,7 +348,7 @@ gdk_colormap_get_system (void) gint gdk_colormap_get_system_size (void) { - return DisplayCells (gdk_display, gdk_screen); + return DisplayCells (gdk_display, _gdk_screen); } void @@ -462,7 +476,7 @@ gdk_color_parse (const gchar *spec, g_return_val_if_fail (spec != NULL, FALSE); g_return_val_if_fail (color != NULL, FALSE); - xcolormap = DefaultColormap (gdk_display, gdk_screen); + xcolormap = DefaultColormap (gdk_display, _gdk_screen); if (XParseColor (gdk_display, xcolormap, spec, &xcolor)) { @@ -986,9 +1000,12 @@ gdk_colormap_query_color (GdkColormap *colormap, { XColor xcolor; GdkVisual *visual; - + GdkColormapPrivateX11 *private; + g_return_if_fail (GDK_IS_COLORMAP (colormap)); + private = GDK_COLORMAP_PRIVATE_DATA (colormap); + visual = gdk_colormap_get_visual (colormap); switch (visual->type) { @@ -1004,7 +1021,7 @@ gdk_colormap_query_color (GdkColormap *colormap, break; case GDK_VISUAL_STATIC_COLOR: xcolor.pixel = pixel; - XQueryColor (GDK_DISPLAY (), GDK_COLORMAP_XCOLORMAP (colormap), &xcolor); + XQueryColor (private->xdisplay, private->xcolormap, &xcolor); result->red = xcolor.red; result->green = xcolor.green; result->blue = xcolor.blue; @@ -1055,7 +1072,7 @@ gdkx_colormap_get (Colormap xcolormap) if (colormap) return colormap; - if (xcolormap == DefaultColormap (gdk_display, gdk_screen)) + if (xcolormap == DefaultColormap (gdk_display, _gdk_screen)) return gdk_colormap_get_system (); colormap = g_object_new (gdk_colormap_get_type (), NULL); @@ -1191,3 +1208,27 @@ gdk_colormap_equal (Colormap *a, { return (*a == *b); } + +Display * +gdk_x11_colormap_get_xdisplay (GdkColormap *colormap) +{ + GdkColormapPrivateX11 *private; + + g_return_val_if_fail (GDK_IS_COLORMAP (colormap), NULL); + + private = GDK_COLORMAP_PRIVATE_DATA (colormap); + + return private->xdisplay; +} + +Colormap +gdk_x11_colormap_get_xcolormap (GdkColormap *colormap) +{ + GdkColormapPrivateX11 *private; + + g_return_val_if_fail (GDK_IS_COLORMAP (colormap), None); + + private = GDK_COLORMAP_PRIVATE_DATA (colormap); + + return private->xcolormap; +} diff --git a/gdk/x11/gdkcursor-x11.c b/gdk/x11/gdkcursor-x11.c index 6cd32fb739..82e6dbb46a 100644 --- a/gdk/x11/gdkcursor-x11.c +++ b/gdk/x11/gdkcursor-x11.c @@ -27,7 +27,7 @@ #include <X11/Xlib.h> #include <X11/cursorfont.h> -#include "gdkx.h" +#include "gdkprivate-x11.h" #include "gdkcursor.h" #include "gdkpixmap-x11.h" #include <gdk/gdkpixmap.h> @@ -105,3 +105,19 @@ _gdk_cursor_destroy (GdkCursor *cursor) g_free (private); } + +Display * +gdk_x11_cursor_get_xdisplay (GdkCursor *cursor) +{ + g_return_val_if_fail (cursor != NULL, NULL); + + return ((GdkCursorPrivate *)cursor)->xdisplay; +} + +Cursor +gdk_x11_cursor_get_xcursor (GdkCursor *cursor) +{ + g_return_val_if_fail (cursor != NULL, None); + + return ((GdkCursorPrivate *)cursor)->xcursor; +} diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c index c143ceae10..024651576f 100644 --- a/gdk/x11/gdkdnd-x11.c +++ b/gdk/x11/gdkdnd-x11.c @@ -84,7 +84,7 @@ struct _GdkDragContextPrivateX11 { #define PRIVATE_DATA(context) ((GdkDragContextPrivateX11 *) GDK_DRAG_CONTEXT (context)->windowing_data) -GdkDragContext *current_dest_drag = NULL; +static GdkDragContext *current_dest_drag = NULL; /* Forward declarations */ @@ -412,24 +412,24 @@ gdk_window_cache_new (void) unsigned int nchildren; int i; - gint old_warnings = gdk_error_warnings; + gint old_warnings = _gdk_error_warnings; GdkWindowCache *result = g_new (GdkWindowCache, 1); result->children = NULL; result->child_hash = g_hash_table_new (g_direct_hash, NULL); - XGetWindowAttributes (gdk_display, gdk_root_window, &xwa); + XGetWindowAttributes (gdk_display, _gdk_root_window, &xwa); result->old_event_mask = xwa.your_event_mask; - XSelectInput (gdk_display, gdk_root_window, + XSelectInput (gdk_display, _gdk_root_window, result->old_event_mask | SubstructureNotifyMask); - gdk_window_add_filter (gdk_parent_root, + gdk_window_add_filter (_gdk_parent_root, gdk_window_cache_filter, result); - gdk_error_code = 0; - gdk_error_warnings = 0; + _gdk_error_code = 0; + _gdk_error_warnings = 0; - if (XQueryTree(gdk_display, gdk_root_window, + if (XQueryTree(gdk_display, _gdk_root_window, &root, &parent, &children, &nchildren) == 0) return result; @@ -441,8 +441,8 @@ gdk_window_cache_new (void) xwa.x, xwa.y, xwa.width, xwa.height, xwa.map_state != IsUnmapped); - if (gdk_error_code) - gdk_error_code = 0; + if (_gdk_error_code) + _gdk_error_code = 0; else { gdk_window_cache_add (result, children[i], @@ -453,7 +453,7 @@ gdk_window_cache_new (void) XFree (children); - gdk_error_warnings = old_warnings; + _gdk_error_warnings = old_warnings; return result; } @@ -461,8 +461,8 @@ gdk_window_cache_new (void) static void gdk_window_cache_destroy (GdkWindowCache *cache) { - XSelectInput (gdk_display, gdk_root_window, cache->old_event_mask); - gdk_window_remove_filter (gdk_parent_root, + XSelectInput (gdk_display, _gdk_root_window, cache->old_event_mask); + gdk_window_remove_filter (_gdk_parent_root, gdk_window_cache_filter, cache); g_list_foreach (cache->children, (GFunc)g_free, NULL); @@ -495,9 +495,9 @@ get_client_window_at_coords_recurse (Window win, wm_state_atom, 0, 0, False, AnyPropertyType, &type, &format, &nitems, &after, &data); - if (gdk_error_code) + if (_gdk_error_code) { - gdk_error_code = 0; + _gdk_error_code = 0; return None; } @@ -510,12 +510,12 @@ get_client_window_at_coords_recurse (Window win, #if 0 /* This is beautiful! Damn Enlightenment and click-to-focus */ - XTranslateCoordinates (gdk_display, gdk_root_window, win, + XTranslateCoordinates (gdk_display, _gdk_root_window, win, x_root, y_root, &dest_x, &dest_y, &child); - if (gdk_error_code) + if (_gdk_error_code) { - gdk_error_code = 0; + _gdk_error_code = 0; return None; } @@ -525,7 +525,7 @@ get_client_window_at_coords_recurse (Window win, &root, &tmp_parent, &children, &nchildren) == 0) return 0; - if (!gdk_error_code) + if (!_gdk_error_code) { for (i = nchildren - 1; (i >= 0) && (child == None); i--) { @@ -533,8 +533,8 @@ get_client_window_at_coords_recurse (Window win, XGetWindowAttributes (gdk_display, children[i], &xwa); - if (gdk_error_code) - gdk_error_code = 0; + if (_gdk_error_code) + _gdk_error_code = 0; else if ((xwa.map_state == IsViewable) && (xwa.class == InputOutput) && (x >= xwa.x) && (x < xwa.x + (gint)xwa.width) && (y >= xwa.y) && (y < xwa.y + (gint)xwa.height)) @@ -548,7 +548,7 @@ get_client_window_at_coords_recurse (Window win, XFree (children); } else - gdk_error_code = 0; + _gdk_error_code = 0; #endif if (child) @@ -566,10 +566,10 @@ get_client_window_at_coords (GdkWindowCache *cache, GList *tmp_list; Window retval = None; - gint old_warnings = gdk_error_warnings; + gint old_warnings = _gdk_error_warnings; - gdk_error_code = 0; - gdk_error_warnings = 0; + _gdk_error_code = 0; + _gdk_error_warnings = 0; tmp_list = cache->children; @@ -593,11 +593,11 @@ get_client_window_at_coords (GdkWindowCache *cache, tmp_list = tmp_list->next; } - gdk_error_warnings = old_warnings; + _gdk_error_warnings = old_warnings; if (retval) return retval; else - return gdk_root_window; + return _gdk_root_window; } #if 0 @@ -622,9 +622,9 @@ get_client_window_at_coords_recurse (Window win, wm_state_atom, 0, 0, False, AnyPropertyType, &type, &format, &nitems, &after, &data); - if (gdk_error_code) + if (_gdk_error_code) { - gdk_error_code = 0; + _gdk_error_code = 0; return None; } @@ -635,12 +635,12 @@ get_client_window_at_coords_recurse (Window win, return win; } - XTranslateCoordinates (gdk_display, gdk_root_window, win, + XTranslateCoordinates (gdk_display, _gdk_root_window, win, x_root, y_root, &dest_x, &dest_y, &child); - if (gdk_error_code) + if (_gdk_error_code) { - gdk_error_code = 0; + _gdk_error_code = 0; return None; } @@ -661,12 +661,12 @@ get_client_window_at_coords (Window ignore, int i; Window retval = None; - gint old_warnings = gdk_error_warnings; + gint old_warnings = _gdk_error_warnings; - gdk_error_code = 0; - gdk_error_warnings = 0; + _gdk_error_code = 0; + _gdk_error_warnings = 0; - if (XQueryTree(gdk_display, gdk_root_window, + if (XQueryTree(gdk_display, _gdk_root_window, &root, &parent, &children, &nchildren) == 0) return 0; @@ -678,8 +678,8 @@ get_client_window_at_coords (Window ignore, XGetWindowAttributes (gdk_display, children[i], &xwa); - if (gdk_error_code) - gdk_error_code = 0; + if (_gdk_error_code) + _gdk_error_code = 0; else if ((xwa.map_state == IsViewable) && (x_root >= xwa.x) && (x_root < xwa.x + (gint)xwa.width) && (y_root >= xwa.y) && (y_root < xwa.y + (gint)xwa.height)) @@ -694,11 +694,11 @@ get_client_window_at_coords (Window ignore, XFree (children); - gdk_error_warnings = old_warnings; + _gdk_error_warnings = old_warnings; if (retval) return retval; else - return gdk_root_window; + return _gdk_root_window; } #endif @@ -890,7 +890,7 @@ motif_lookup_drag_window (Display *display) gint format; guchar *data; - XGetWindowProperty (gdk_display, gdk_root_window, motif_drag_window_atom, + XGetWindowProperty (gdk_display, _gdk_root_window, motif_drag_window_atom, 0, 1, FALSE, XA_WINDOW, &type, &format, &nitems, &bytes_after, &data); @@ -927,7 +927,7 @@ motif_find_drag_window (gboolean create) Display *display; XSetWindowAttributes attr; - display = XOpenDisplay (gdk_display_name); + display = XOpenDisplay (_gdk_display_name); XSetCloseDownMode (display, RetainPermanent); XGrabServer (display); @@ -948,7 +948,7 @@ motif_find_drag_window (gboolean create) GDK_NOTE (DND, g_message ("Created drag window %#lx\n", motif_drag_window)); - XChangeProperty (display, gdk_root_window, + XChangeProperty (display, _gdk_root_window, motif_drag_window_atom, XA_WINDOW, 32, PropModeReplace, (guchar *)&motif_drag_window_atom, 1); @@ -1570,7 +1570,7 @@ motif_read_initiator_info (Window source_window, } #ifdef G_ENABLE_DEBUG - if (gdk_debug_flags & GDK_DEBUG_DND) + if (_gdk_debug_flags & GDK_DEBUG_DND) print_target_list (*targets); #endif /* G_ENABLE_DEBUG */ @@ -2160,7 +2160,7 @@ static gint xdnd_send_xevent (Window window, gboolean propagate, XEvent *event_send) { - if (window == gdk_root_window) + if (window == _gdk_root_window) return gdk_send_xevent (window, propagate, ButtonPressMask, event_send); else return gdk_send_xevent (window, propagate, 0, event_send); @@ -2322,7 +2322,7 @@ xdnd_check_dest (Window win) Window proxy; static GdkAtom xdnd_proxy_atom = GDK_NONE; - gint old_warnings = gdk_error_warnings; + gint old_warnings = _gdk_error_warnings; if (!xdnd_proxy_atom) xdnd_proxy_atom = gdk_atom_intern ("XdndProxy", FALSE); @@ -2332,8 +2332,8 @@ xdnd_check_dest (Window win) proxy = GDK_NONE; - gdk_error_code = 0; - gdk_error_warnings = 0; + _gdk_error_code = 0; + _gdk_error_warnings = 0; XGetWindowProperty (gdk_display, win, xdnd_proxy_atom, 0, @@ -2341,7 +2341,7 @@ xdnd_check_dest (Window win) &type, &format, &nitems, &after, (guchar **)&proxy_data); - if (!gdk_error_code) + if (!_gdk_error_code) { if (type != None) { @@ -2362,7 +2362,7 @@ xdnd_check_dest (Window win) &type, &format, &nitems, &after, (guchar **)&version); - if (!gdk_error_code && type != None) + if (!_gdk_error_code && type != None) { if ((format == 32) && (nitems == 1)) { @@ -2378,8 +2378,8 @@ xdnd_check_dest (Window win) } - gdk_error_warnings = old_warnings; - gdk_error_code = 0; + _gdk_error_warnings = old_warnings; + _gdk_error_code = 0; return retval ? (proxy ? proxy : win) : GDK_NONE; } @@ -2396,10 +2396,10 @@ xdnd_read_actions (GdkDragContext *context) gint i; - gint old_warnings = gdk_error_warnings; + gint old_warnings = _gdk_error_warnings; - gdk_error_code = 0; - gdk_error_warnings = 0; + _gdk_error_code = 0; + _gdk_error_warnings = 0; /* Get the XdndActionList, if set */ @@ -2409,7 +2409,7 @@ xdnd_read_actions (GdkDragContext *context) False, XA_ATOM, &type, &format, &nitems, &after, (guchar **)&data); - if (!gdk_error_code && (format == 32) && (type == XA_ATOM)) + if (!_gdk_error_code && (format == 32) && (type == XA_ATOM)) { context->actions = 0; @@ -2419,7 +2419,7 @@ xdnd_read_actions (GdkDragContext *context) (PRIVATE_DATA (context))->xdnd_have_actions = TRUE; #ifdef G_ENABLE_DEBUG - if (gdk_debug_flags & GDK_DEBUG_DND) + if (_gdk_debug_flags & GDK_DEBUG_DND) { GString *action_str = g_string_new (NULL); if (context->actions & GDK_ACTION_MOVE) @@ -2439,8 +2439,8 @@ xdnd_read_actions (GdkDragContext *context) XFree(data); } - gdk_error_warnings = old_warnings; - gdk_error_code = 0; + _gdk_error_warnings = old_warnings; + _gdk_error_code = 0; } /* We have to make sure that the XdndActionList we keep internally @@ -2586,7 +2586,7 @@ xdnd_enter_filter (GdkXEvent *xev, } #ifdef G_ENABLE_DEBUG - if (gdk_debug_flags & GDK_DEBUG_DND) + if (_gdk_debug_flags & GDK_DEBUG_DND) print_target_list (new_context->targets); #endif /* G_ENABLE_DEBUG */ @@ -2715,7 +2715,7 @@ xdnd_drop_filter (GdkXEvent *xev, *************************************************************/ void -gdk_dnd_init (void) +_gdk_dnd_init (void) { init_byte_order(); @@ -2819,26 +2819,26 @@ gdk_drag_get_protocol (guint32 xid, /* Check if this is a root window */ gboolean rootwin = FALSE; - gint old_warnings = gdk_error_warnings; + gint old_warnings = _gdk_error_warnings; Atom type = None; int format; unsigned long nitems, after; unsigned char *data; - if (xid == gdk_root_window) + if (xid == _gdk_root_window) rootwin = TRUE; - gdk_error_warnings = 0; + _gdk_error_warnings = 0; if (!rootwin) { - gdk_error_code = 0; + _gdk_error_code = 0; XGetWindowProperty (gdk_display, xid, gdk_atom_intern ("ENLIGHTENMENT_DESKTOP", FALSE), 0, 0, False, AnyPropertyType, &type, &format, &nitems, &after, &data); - if ((gdk_error_code == 0) && type != None) + if ((_gdk_error_code == 0) && type != None) { XFree (data); rootwin = TRUE; @@ -2852,18 +2852,18 @@ gdk_drag_get_protocol (guint32 xid, #if 0 if (!rootwin) { - gdk_error_code = 0; + _gdk_error_code = 0; XGetWindowProperty (gdk_display, win, gdk_atom_intern ("__SWM_VROOT", FALSE), 0, 0, False, AnyPropertyType, &type, &format, &nitems, &data); - if ((gdk_error_code == 0) && type != None) + if ((_gdk_error_code == 0) && type != None) rootwin = TRUE; } #endif - gdk_error_warnings = old_warnings; + _gdk_error_warnings = old_warnings; if (rootwin) { diff --git a/gdk/x11/gdkdrawable-x11.c b/gdk/x11/gdkdrawable-x11.c index 7d563e86e4..f5589dcb0a 100644 --- a/gdk/x11/gdkdrawable-x11.c +++ b/gdk/x11/gdkdrawable-x11.c @@ -24,7 +24,7 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ -#include "gdkprivate-x11.h" +#include "gdkx.h" #include "gdkregion-generic.h" #include <pango/pangox.h> @@ -136,7 +136,7 @@ static void gdk_drawable_impl_x11_finalize (GObject *object); static gpointer parent_class = NULL; GType -gdk_drawable_impl_x11_get_type (void) +_gdk_drawable_impl_x11_get_type (void) { static GType object_type = 0; @@ -710,3 +710,39 @@ gdk_x11_get_visual (GdkDrawable *drawable) { return gdk_drawable_get_visual (GDK_DRAWABLE_IMPL_X11 (drawable)->wrapper); } + +Display * +gdk_x11_drawable_get_xdisplay (GdkDrawable *drawable) +{ + GdkDrawable *impl; + + if (GDK_IS_WINDOW (drawable)) + impl = ((GdkPixmapObject *)drawable)->impl; + else if (GDK_IS_PIXMAP (drawable)) + impl = ((GdkPixmapObject *)drawable)->impl; + else + { + g_warning (G_STRLOC " drawable is not a pixmap or window"); + return NULL; + } + + return ((GdkDrawableImplX11 *)impl)->xdisplay; +} + +XID +gdk_x11_drawable_get_xid (GdkDrawable *drawable) +{ + GdkDrawable *impl; + + if (GDK_IS_WINDOW (drawable)) + impl = ((GdkPixmapObject *)drawable)->impl; + else if (GDK_IS_PIXMAP (drawable)) + impl = ((GdkPixmapObject *)drawable)->impl; + else + { + g_warning (G_STRLOC " drawable is not a pixmap or window"); + return None; + } + + return ((GdkDrawableImplX11 *)impl)->xid; +} diff --git a/gdk/x11/gdkdrawable-x11.h b/gdk/x11/gdkdrawable-x11.h index 0164654b3b..7d20d50d52 100644 --- a/gdk/x11/gdkdrawable-x11.h +++ b/gdk/x11/gdkdrawable-x11.h @@ -28,6 +28,7 @@ #define __GDK_DRAWABLE_X11_H__ #include <gdk/gdkdrawable.h> +#include <gdk/x11/gdkx.h> #ifdef __cplusplus extern "C" { @@ -39,7 +40,7 @@ extern "C" { typedef struct _GdkDrawableImplX11 GdkDrawableImplX11; typedef struct _GdkDrawableImplX11Class GdkDrawableImplX11Class; -#define GDK_TYPE_DRAWABLE_IMPL_X11 (gdk_drawable_impl_x11_get_type ()) +#define GDK_TYPE_DRAWABLE_IMPL_X11 (_gdk_drawable_impl_x11_get_type ()) #define GDK_DRAWABLE_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DRAWABLE_IMPL_X11, GdkDrawableImplX11)) #define GDK_DRAWABLE_IMPL_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DRAWABLE_IMPL_X11, GdkDrawableImplX11Class)) #define GDK_IS_DRAWABLE_IMPL_X11(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DRAWABLE_IMPL_X11)) @@ -64,7 +65,7 @@ struct _GdkDrawableImplX11Class }; -GType gdk_drawable_impl_x11_get_type (void); +GType _gdk_drawable_impl_x11_get_type (void); #ifdef __cplusplus } diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c index a757e6bbfc..ca05f1ba96 100644 --- a/gdk/x11/gdkevents-x11.c +++ b/gdk/x11/gdkevents-x11.c @@ -101,9 +101,9 @@ static gboolean gdk_event_dispatch (GSource *source, GSourceFunc callback, gpointer user_data); -GdkFilterReturn gdk_wm_protocols_filter (GdkXEvent *xev, - GdkEvent *event, - gpointer data); +static GdkFilterReturn gdk_wm_protocols_filter (GdkXEvent *xev, + GdkEvent *event, + gpointer data); static void gdk_xsettings_watch_cb (Window window, Bool is_start, @@ -143,7 +143,7 @@ static XSettingsClient *xsettings_client; *********************************************/ void -gdk_events_init (void) +_gdk_events_init (void) { GSource *source; @@ -162,7 +162,11 @@ gdk_events_init (void) g_source_set_can_recurse (source, TRUE); g_source_attach (source, NULL); - gdk_add_client_message_filter (gdk_wm_protocols, + _gdk_wm_window_protocols[0] = gdk_atom_intern ("WM_DELETE_WINDOW", FALSE); + _gdk_wm_window_protocols[1] = gdk_atom_intern ("WM_TAKE_FOCUS", FALSE); + _gdk_wm_window_protocols[2] = gdk_atom_intern ("_NET_WM_PING", FALSE); + + gdk_add_client_message_filter (gdk_atom_intern ("WM_PROTOCOLS", FALSE), gdk_wm_protocols_filter, NULL); xsettings_client = xsettings_client_new (gdk_display, DefaultScreen (gdk_display), @@ -190,7 +194,7 @@ gdk_events_init (void) gboolean gdk_events_pending (void) { - return (gdk_event_queue_find_first() || XPending (gdk_display)); + return (_gdk_event_queue_find_first() || XPending (gdk_display)); } /* @@ -214,7 +218,7 @@ graphics_expose_predicate (Display *display, XEvent *xevent, XPointer arg) { - if (xevent->xany.window == GDK_DRAWABLE_XID (arg) && + if (xevent->xany.window == GDK_DRAWABLE_XID ((GdkDrawable *)arg) && (xevent->xany.type == GraphicsExpose || xevent->xany.type == NoExpose)) return True; @@ -234,7 +238,7 @@ gdk_event_get_graphics_expose (GdkWindow *window) if (xevent.xany.type == GraphicsExpose) { - event = gdk_event_new (); + event = _gdk_event_new (); if (gdk_event_translate (event, &xevent, TRUE)) return event; @@ -444,12 +448,12 @@ gdk_event_translate (GdkEvent *event, window_private = NULL; event->any.window = NULL; - if (gdk_default_filters) + if (_gdk_default_filters) { /* Apply global filters */ GdkFilterReturn result; result = gdk_event_apply_filters (xevent, event, - gdk_default_filters); + _gdk_default_filters); if (result != GDK_FILTER_CONTINUE) { @@ -600,7 +604,7 @@ gdk_event_translate (GdkEvent *event, buf[charcount] = '\0'; #ifdef G_ENABLE_DEBUG - if (gdk_debug_flags & GDK_DEBUG_EVENTS) + if (_gdk_debug_flags & GDK_DEBUG_EVENTS) { g_message ("key press:\twindow: %ld key: %12s %d", xevent->xkey.window, @@ -683,7 +687,7 @@ gdk_event_translate (GdkEvent *event, if (window_private == NULL || ((window_private->extension_events != 0) && - gdk_input_ignore_core)) + _gdk_input_ignore_core)) { return_val = FALSE; break; @@ -715,7 +719,7 @@ gdk_event_translate (GdkEvent *event, event->scroll.x_root = (gfloat)xevent->xbutton.x_root; event->scroll.y_root = (gfloat)xevent->xbutton.y_root; event->scroll.state = (GdkModifierType) xevent->xbutton.state; - event->scroll.device = gdk_core_pointer; + event->scroll.device = _gdk_core_pointer; break; default: @@ -729,9 +733,9 @@ gdk_event_translate (GdkEvent *event, event->button.axes = NULL; event->button.state = (GdkModifierType) xevent->xbutton.state; event->button.button = xevent->xbutton.button; - event->button.device = gdk_core_pointer; + event->button.device = _gdk_core_pointer; - gdk_event_button_generate (event); + _gdk_event_button_generate (event); break; } @@ -746,7 +750,7 @@ gdk_event_translate (GdkEvent *event, if (window_private == NULL || ((window_private->extension_events != 0) && - gdk_input_ignore_core)) + _gdk_input_ignore_core)) { return_val = FALSE; break; @@ -770,7 +774,7 @@ gdk_event_translate (GdkEvent *event, event->button.axes = NULL; event->button.state = (GdkModifierType) xevent->xbutton.state; event->button.button = xevent->xbutton.button; - event->button.device = gdk_core_pointer; + event->button.device = _gdk_core_pointer; break; @@ -783,7 +787,7 @@ gdk_event_translate (GdkEvent *event, if (window_private == NULL || ((window_private->extension_events != 0) && - gdk_input_ignore_core)) + _gdk_input_ignore_core)) { return_val = FALSE; break; @@ -799,7 +803,7 @@ gdk_event_translate (GdkEvent *event, event->motion.axes = NULL; event->motion.state = (GdkModifierType) xevent->xmotion.state; event->motion.is_hint = xevent->xmotion.is_hint; - event->motion.device = gdk_core_pointer; + event->motion.device = _gdk_core_pointer; break; @@ -1158,7 +1162,7 @@ gdk_event_translate (GdkEvent *event, case VisibilityNotify: #ifdef G_ENABLE_DEBUG - if (gdk_debug_flags & GDK_DEBUG_EVENTS) + if (_gdk_debug_flags & GDK_DEBUG_EVENTS) switch (xevent->xvisibility.state) { case VisibilityFullyObscured: @@ -1254,8 +1258,8 @@ gdk_event_translate (GdkEvent *event, 0, GDK_WINDOW_STATE_ICONIFIED); - if (gdk_xgrab_window == window_private) - gdk_xgrab_window = NULL; + if (_gdk_xgrab_window == window_private) + _gdk_xgrab_window = NULL; break; @@ -1330,7 +1334,7 @@ gdk_event_translate (GdkEvent *event, gdk_error_trap_push (); if (XTranslateCoordinates (GDK_DRAWABLE_XDISPLAY (window), GDK_DRAWABLE_XID (window), - gdk_root_window, + _gdk_root_window, 0, 0, &tx, &ty, &child_window)) @@ -1578,14 +1582,14 @@ gdk_event_translate (GdkEvent *event, return return_val; } -GdkFilterReturn +static GdkFilterReturn gdk_wm_protocols_filter (GdkXEvent *xev, GdkEvent *event, gpointer data) { XEvent *xevent = (XEvent *)xev; - if ((Atom) xevent->xclient.data.l[0] == gdk_wm_delete_window) + if ((Atom) xevent->xclient.data.l[0] == gdk_atom_intern ("WM_DELETE_WINDOW", FALSE)) { /* The delete window request specifies a window * to delete. We don't actually destroy the @@ -1603,7 +1607,7 @@ gdk_wm_protocols_filter (GdkXEvent *xev, return GDK_FILTER_TRANSLATE; } - else if ((Atom) xevent->xclient.data.l[0] == gdk_wm_take_focus) + else if ((Atom) xevent->xclient.data.l[0] == gdk_atom_intern ("WM_TAKE_FOCUS", FALSE)) { GdkWindow *win = event->any.window; Window focus_win = GDK_WINDOW_IMPL_X11(((GdkWindowObject *)win)->impl)->focus_window; @@ -1623,8 +1627,8 @@ gdk_wm_protocols_filter (GdkXEvent *xev, { XEvent xev = *xevent; - xev.xclient.window = gdk_root_window; - XSendEvent (gdk_display, gdk_root_window, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); + xev.xclient.window = _gdk_root_window; + XSendEvent (gdk_display, _gdk_root_window, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); } return GDK_FILTER_REMOVE; @@ -1650,13 +1654,13 @@ gdk_event_get_type (Display *display, #endif void -gdk_events_queue (void) +_gdk_events_queue (void) { GList *node; GdkEvent *event; XEvent xevent; - while (!gdk_event_queue_find_first() && XPending (gdk_display)) + while (!_gdk_event_queue_find_first() && XPending (gdk_display)) { XNextEvent (gdk_display, &xevent); @@ -1670,7 +1674,7 @@ gdk_events_queue (void) continue; } - event = gdk_event_new (); + event = _gdk_event_new (); event->any.type = GDK_NOTHING; event->any.window = NULL; @@ -1678,8 +1682,8 @@ gdk_events_queue (void) ((GdkEventPrivate *)event)->flags |= GDK_EVENT_PENDING; - gdk_event_queue_append (event); - node = gdk_queued_tail; + _gdk_event_queue_append (event); + node = _gdk_queued_tail; if (gdk_event_translate (event, &xevent, FALSE)) { @@ -1687,7 +1691,7 @@ gdk_events_queue (void) } else { - gdk_event_queue_remove_link (node); + _gdk_event_queue_remove_link (node); g_list_free_1 (node); gdk_event_free (event); } @@ -1704,7 +1708,7 @@ gdk_event_prepare (GSource *source, *timeout = -1; - retval = (gdk_event_queue_find_first () != NULL) || XPending (gdk_display); + retval = (_gdk_event_queue_find_first () != NULL) || XPending (gdk_display); GDK_THREADS_LEAVE (); @@ -1719,7 +1723,7 @@ gdk_event_check (GSource *source) GDK_THREADS_ENTER (); if (event_poll_fd.revents & G_IO_IN) - retval = (gdk_event_queue_find_first () != NULL) || XPending (gdk_display); + retval = (_gdk_event_queue_find_first () != NULL) || XPending (gdk_display); else retval = FALSE; @@ -1737,13 +1741,13 @@ gdk_event_dispatch (GSource *source, GDK_THREADS_ENTER (); - gdk_events_queue(); - event = gdk_event_unqueue(); + _gdk_events_queue(); + event = _gdk_event_unqueue(); if (event) { - if (gdk_event_func) - (*gdk_event_func) (event, gdk_event_data); + if (_gdk_event_func) + (*_gdk_event_func) (event, _gdk_event_data); gdk_event_free (event); } @@ -1785,7 +1789,7 @@ gdk_event_send_client_message_to_all_recurse (XEvent *xev, unsigned char *data; Window *ret_children, ret_root, ret_parent; unsigned int ret_nchildren; - gint old_warnings = gdk_error_warnings; + gint old_warnings = _gdk_error_warnings; gboolean send = FALSE; gboolean found = FALSE; int i; @@ -1793,14 +1797,14 @@ gdk_event_send_client_message_to_all_recurse (XEvent *xev, if (!wm_state_atom) wm_state_atom = gdk_atom_intern ("WM_STATE", FALSE); - gdk_error_warnings = FALSE; - gdk_error_code = 0; + _gdk_error_warnings = FALSE; + _gdk_error_code = 0; XGetWindowProperty (gdk_display, xid, wm_state_atom, 0, 0, False, AnyPropertyType, &type, &format, &nitems, &after, &data); - if (gdk_error_code) + if (_gdk_error_code) { - gdk_error_warnings = old_warnings; + _gdk_error_warnings = old_warnings; return FALSE; } @@ -1815,9 +1819,9 @@ gdk_event_send_client_message_to_all_recurse (XEvent *xev, /* OK, we're all set, now let's find some windows to send this to */ if (XQueryTree (gdk_display, xid, &ret_root, &ret_parent, &ret_children, &ret_nchildren) != True || - gdk_error_code) + _gdk_error_code) { - gdk_error_warnings = old_warnings; + _gdk_error_warnings = old_warnings; return FALSE; } @@ -1835,7 +1839,7 @@ gdk_event_send_client_message_to_all_recurse (XEvent *xev, gdk_send_xevent (xid, False, NoEventMask, xev); } - gdk_error_warnings = old_warnings; + _gdk_error_warnings = old_warnings; return (send || found); } @@ -1844,7 +1848,7 @@ void gdk_event_send_clientmessage_toall (GdkEvent *event) { XEvent sev; - gint old_warnings = gdk_error_warnings; + gint old_warnings = _gdk_error_warnings; g_return_if_fail(event != NULL); @@ -1855,9 +1859,9 @@ gdk_event_send_clientmessage_toall (GdkEvent *event) memcpy(&sev.xclient.data, &event->client.data, sizeof(sev.xclient.data)); sev.xclient.message_type = event->client.message_type; - gdk_event_send_client_message_to_all_recurse(&sev, gdk_root_window, 0); + gdk_event_send_client_message_to_all_recurse(&sev, _gdk_root_window, 0); - gdk_error_warnings = old_warnings; + _gdk_error_warnings = old_warnings; } /* @@ -1990,7 +1994,7 @@ gdk_net_wm_supports (GdkAtom property) if (wmspec_supported_atom == 0) wmspec_supported_atom = gdk_atom_intern ("_NET_SUPPORTED", FALSE); - XGetWindowProperty (gdk_display, gdk_root_window, + XGetWindowProperty (gdk_display, _gdk_root_window, wmspec_check_atom, 0, G_MAXLONG, False, XA_WINDOW, &type, &format, &nitems, &bytes_after, (guchar **)&xwindow); @@ -2012,7 +2016,7 @@ gdk_net_wm_supports (GdkAtom property) return FALSE; } - XGetWindowProperty (gdk_display, gdk_root_window, + XGetWindowProperty (gdk_display, _gdk_root_window, wmspec_supported_atom, 0, G_MAXLONG, False, XA_ATOM, &type, &format, &n_atoms, &bytes_after, (guchar **)&atoms); @@ -2175,7 +2179,7 @@ gdk_setting_get (const gchar *name, return success; } -GdkFilterReturn +static GdkFilterReturn gdk_xsettings_client_event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data) diff --git a/gdk/x11/gdkfont-x11.c b/gdk/x11/gdkfont-x11.c index 1f4b76c1c7..efec6f2c43 100644 --- a/gdk/x11/gdkfont-x11.c +++ b/gdk/x11/gdkfont-x11.c @@ -32,6 +32,19 @@ #include "gdkfont.h" #include "gdkprivate-x11.h" +typedef struct _GdkFontPrivateX GdkFontPrivateX; + +struct _GdkFontPrivateX +{ + GdkFontPrivate base; + /* XFontStruct *xfont; */ + /* generic pointer point to XFontStruct or XFontSet */ + gpointer xfont; + Display *xdisplay; + + GSList *names; +}; + static GHashTable *font_name_hash = NULL; static GHashTable *fontset_name_hash = NULL; @@ -648,3 +661,20 @@ gdk_text_extents_wc (GdkFont *font, } } + +Display * +gdk_x11_font_get_xdisplay (GdkFont *font) +{ + g_return_val_if_fail (font != NULL, NULL); + + return ((GdkFontPrivateX *)font)->xdisplay; +} + +gpointer +gdk_x11_font_get_xfont (GdkFont *font) +{ + g_return_val_if_fail (font != NULL, NULL); + + return ((GdkFontPrivateX *)font)->xfont; +} + diff --git a/gdk/x11/gdkgc-x11.c b/gdk/x11/gdkgc-x11.c index 34f90a0d28..ce3c60490e 100644 --- a/gdk/x11/gdkgc-x11.c +++ b/gdk/x11/gdkgc-x11.c @@ -62,7 +62,7 @@ static void gdk_gc_x11_finalize (GObject *object); static gpointer parent_class = NULL; GType -gdk_gc_x11_get_type (void) +_gdk_gc_x11_get_type (void) { static GType object_type = 0; @@ -139,7 +139,7 @@ _gdk_x11_gc_new (GdkDrawable *drawable, */ g_return_val_if_fail (GDK_IS_DRAWABLE_IMPL_X11 (drawable), NULL); - gc = g_object_new (gdk_gc_x11_get_type (), NULL); + gc = g_object_new (_gdk_gc_x11_get_type (), NULL); private = GDK_GC_X11 (gc); private->dirty_mask = 0; @@ -734,3 +734,26 @@ gdk_gc_copy (GdkGC *dst_gc, GdkGC *src_gc) x11_dst_gc->dirty_mask = x11_src_gc->dirty_mask; x11_dst_gc->fg_pixel = x11_src_gc->fg_pixel; } + +Display * +gdk_x11_gc_get_xdisplay (GdkGC *gc) +{ + g_return_val_if_fail (GDK_IS_GC_X11 (gc), NULL); + + return GDK_GC_X11(gc)->xdisplay; +} + +GC +gdk_x11_gc_get_xgc (GdkGC *gc) +{ + GdkGCX11 *gc_x11; + + g_return_val_if_fail (GDK_IS_GC_X11 (gc), NULL); + + gc_x11 = GDK_GC_X11 (gc); + + if (gc_x11->dirty_mask) + _gdk_x11_gc_flush (gc); + + return gc_x11->xgc; +} diff --git a/gdk/x11/gdkglobals-x11.c b/gdk/x11/gdkglobals-x11.c index 104b79f9ef..ffa30896c3 100644 --- a/gdk/x11/gdkglobals-x11.c +++ b/gdk/x11/gdkglobals-x11.c @@ -30,23 +30,15 @@ #include "gdkprivate-x11.h" #include "config.h" -gboolean gdk_use_xshm = TRUE; -gchar *gdk_display_name = NULL; +gboolean _gdk_use_xshm = TRUE; +gchar *_gdk_display_name = NULL; Display *gdk_display = NULL; -gint gdk_screen; -Window gdk_root_window; -Window gdk_leader_window; -Atom gdk_wm_delete_window; -Atom gdk_wm_take_focus; -Atom gdk_wm_protocols; -Atom gdk_wm_window_protocols[3]; -Atom gdk_selection_property; -gchar *gdk_progclass = NULL; -gboolean gdk_null_window_warnings = TRUE; +gint _gdk_screen; +Window _gdk_root_window; +Window _gdk_leader_window; +Atom _gdk_wm_window_protocols[3]; +Atom _gdk_selection_property; -gboolean gdk_xim_using; /* using XIM Protocol if TRUE */ -GdkWindow *gdk_xim_window; /* currently using Widow */ - -GdkWindowObject *gdk_xgrab_window = NULL; /* Window that currently holds the +GdkWindowObject *_gdk_xgrab_window = NULL; /* Window that currently holds the * x pointer grab */ diff --git a/gdk/x11/gdkimage-x11.c b/gdk/x11/gdkimage-x11.c index d957595ce3..21302d7e6f 100644 --- a/gdk/x11/gdkimage-x11.c +++ b/gdk/x11/gdkimage-x11.c @@ -52,6 +52,15 @@ #include "gdkprivate.h" #include "gdkprivate-x11.h" +typedef struct _GdkImagePrivateX11 GdkImagePrivateX11; + +struct _GdkImagePrivateX11 +{ + XImage *ximage; + Display *xdisplay; + gpointer x_shm_info; +}; + static GList *image_list = NULL; static gpointer parent_class = NULL; @@ -118,7 +127,7 @@ gdk_image_finalize (GObject *object) void -gdk_image_exit (void) +_gdk_image_exit (void) { GdkImage *image; @@ -187,11 +196,11 @@ gdk_image_check_xshm(Display *display) void _gdk_windowing_image_init (void) { - if (gdk_use_xshm) + if (_gdk_use_xshm) { if (!gdk_image_check_xshm (gdk_display)) { - gdk_use_xshm = False; + _gdk_use_xshm = False; } } } @@ -237,7 +246,7 @@ gdk_image_new (GdkImageType type, { case GDK_IMAGE_SHARED: #ifdef USE_SHM - if (gdk_use_xshm) + if (_gdk_use_xshm) { private->x_shm_info = g_new (XShmSegmentInfo, 1); x_shm_info = private->x_shm_info; @@ -249,7 +258,7 @@ gdk_image_new (GdkImageType type, if (private->ximage == NULL) { g_warning ("XShmCreateImage failed"); - gdk_use_xshm = FALSE; + _gdk_use_xshm = FALSE; goto error; } @@ -268,7 +277,7 @@ gdk_image_new (GdkImageType type, if (errno != EINVAL) { g_warning ("shmget failed: error %d (%s)", errno, g_strerror (errno)); - gdk_use_xshm = FALSE; + _gdk_use_xshm = FALSE; } goto error; @@ -285,7 +294,7 @@ gdk_image_new (GdkImageType type, * EMFILE, which would mean that we've exceeded the per-process * Shm segment limit. */ - gdk_use_xshm = FALSE; + _gdk_use_xshm = FALSE; goto error; } @@ -297,7 +306,7 @@ gdk_image_new (GdkImageType type, if (gdk_error_trap_pop ()) { /* this is the common failure case so omit warning */ - gdk_use_xshm = FALSE; + _gdk_use_xshm = FALSE; goto error; } @@ -408,7 +417,7 @@ _gdk_x11_get_image (GdkDrawable *drawable, /* Translate screen area into window coordinates */ XTranslateCoordinates (gdk_display, - gdk_root_window, + _gdk_root_window, impl->xid, 0, 0, &screen_rect.x, &screen_rect.y, @@ -599,7 +608,7 @@ gdk_x11_image_destroy (GdkImage *image) private = PRIVATE_DATA (image); - if (private == NULL) /* This means that gdk_image_exit() destroyed the + if (private == NULL) /* This means that _gdk_image_exit() destroyed the * image already, and now we're called a second * time from _finalize() */ @@ -640,3 +649,27 @@ gdk_x11_image_destroy (GdkImage *image) g_free (private); image->windowing_data = NULL; } + +Display * +gdk_x11_image_get_xdisplay (GdkImage *image) +{ + GdkImagePrivateX11 *private; + + g_return_val_if_fail (GDK_IS_IMAGE (image), NULL); + + private = PRIVATE_DATA (image); + + return private->xdisplay; +} + +XImage * +gdk_x11_image_get_ximage (GdkImage *image) +{ + GdkImagePrivateX11 *private; + + g_return_val_if_fail (GDK_IS_IMAGE (image), NULL); + + private = PRIVATE_DATA (image); + + return private->ximage; +} diff --git a/gdk/x11/gdkinput-gxi.c b/gdk/x11/gdkinput-gxi.c index b7469cea01..aecb850bed 100644 --- a/gdk/x11/gdkinput-gxi.c +++ b/gdk/x11/gdkinput-gxi.c @@ -49,30 +49,30 @@ static GdkDevicePrivate *gdk_input_current_device; static GdkDevicePrivate *gdk_input_core_pointer; void -gdk_input_init(void) +_gdk_input_init(void) { GList *tmp_list; _gdk_init_input_core (); - gdk_input_ignore_core = FALSE; + _gdk_input_ignore_core = FALSE; gdk_input_core_pointer = NULL; - if (!gdk_input_gxid_host) + if (!_gdk_input_gxid_host) { - gdk_input_gxid_host = getenv("GXID_HOST"); + _gdk_input_gxid_host = getenv("GXID_HOST"); } - if (!gdk_input_gxid_port) + if (!_gdk_input_gxid_port) { char *t = getenv("GXID_PORT"); if (t) - gdk_input_gxid_port = atoi(t); + _gdk_input_gxid_port = atoi(t); } gdk_input_common_init(TRUE); /* find initial core pointer */ - for (tmp_list = gdk_input_devices; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = _gdk_input_devices; tmp_list; tmp_list = tmp_list->next) { GdkDevicePrivate *gdkdev = (GdkDevicePrivate *)tmp_list->data; if (gdk_input_is_extension_device (gdkdev)) @@ -94,7 +94,7 @@ gdk_input_gxi_select_notify (GdkDevicePrivate *gdkdev) ChangeDeviceNotify (gdkdev->xdevice, gdkdev->changenotify_type, class); - XSelectExtensionEvent (gdk_display, gdk_root_window, &class, 1); + XSelectExtensionEvent (gdk_display, _gdk_root_window, &class, 1); } /* Set the core pointer. Device should already be enabled. */ @@ -167,7 +167,7 @@ gdk_device_set_mode (GdkDevice *device, if (old_mode != GDK_MODE_DISABLED) { - for (tmp_list = gdk_input_windows; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next) { input_window = (GdkInputWindow *)tmp_list->data; if (input_window->mode != GDK_EXTENSION_EVENTS_CURSOR) @@ -177,7 +177,7 @@ gdk_device_set_mode (GdkDevice *device, if (mode != GDK_MODE_DISABLED) { - for (tmp_list = gdk_input_windows; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next) { input_window = (GdkInputWindow *)tmp_list->data; if (input_window->mode != GDK_EXTENSION_EVENTS_CURSOR) @@ -320,7 +320,7 @@ gdk_input_gxi_update_device (GdkDevicePrivate *gdkdev) } if (gdkdev->needs_update && gdkdev->xdevice) { - for (t = gdk_input_windows; t; t = t->next) + for (t = _gdk_input_windows; t; t = t->next) gdk_input_common_select_events (((GdkInputWindow *)t->data)->window, gdkdev); gdkdev->needs_update = 0; @@ -365,7 +365,7 @@ _gdk_input_enable_window (GdkWindow *window, GdkDevicePrivate *gdkdev) if (!gdkdev->claimed) { - if (gxid_claim_device(gdk_input_gxid_host, gdk_input_gxid_port, + if (gxid_claim_device(_gdk_input_gxid_host, _gdk_input_gxid_port, gdkdev->deviceid, GDK_WINDOW_XWINDOW(window), FALSE) != GXID_RETURN_OK) @@ -394,7 +394,7 @@ _gdk_input_disable_window (GdkWindow *window, GdkDevicePrivate *gdkdev) if (gdkdev->claimed) { - gxid_release_device(gdk_input_gxid_host, gdk_input_gxid_port, + gxid_release_device(_gdk_input_gxid_host, _gdk_input_gxid_port, gdkdev->deviceid, GDK_WINDOW_XWINDOW(window)); @@ -529,7 +529,7 @@ _gdk_input_grab_pointer (GdkWindow * window, GdkInputWindow *input_window; GdkDevicePrivate *gdkdev; - tmp_list = gdk_input_windows; + tmp_list = _gdk_input_windows; while (tmp_list) { input_window = (GdkInputWindow *)tmp_list->data; @@ -542,7 +542,7 @@ _gdk_input_grab_pointer (GdkWindow * window, tmp_list = tmp_list->next; } - tmp_list = gdk_input_devices; + tmp_list = _gdk_input_devices; while (tmp_list) { gdkdev = (GdkDevicePrivate *)tmp_list->data; @@ -563,7 +563,7 @@ _gdk_input_ungrab_pointer (guint32 time) GdkInputWindow *input_window; GList *tmp_list; - tmp_list = gdk_input_windows; + tmp_list = _gdk_input_windows; while (tmp_list) { input_window = (GdkInputWindow *)tmp_list->data; diff --git a/gdk/x11/gdkinput-none.c b/gdk/x11/gdkinput-none.c index 3295169d5d..616809afc9 100644 --- a/gdk/x11/gdkinput-none.c +++ b/gdk/x11/gdkinput-none.c @@ -27,12 +27,12 @@ */ void -gdk_input_init (void) +_gdk_input_init (void) { _gdk_init_input_core (); - gdk_input_devices = g_list_append (NULL, gdk_core_pointer); + _gdk_input_devices = g_list_append (NULL, _gdk_core_pointer); - gdk_input_ignore_core = FALSE; + _gdk_input_ignore_core = FALSE; } void diff --git a/gdk/x11/gdkinput-x11.c b/gdk/x11/gdkinput-x11.c index dfdae3d949..770c9b874a 100644 --- a/gdk/x11/gdkinput-x11.c +++ b/gdk/x11/gdkinput-x11.c @@ -47,7 +47,7 @@ static guint gdk_input_translate_state(guint state, guint device_state); GdkDevicePrivate * gdk_input_find_device (guint32 id) { - GList *tmp_list = gdk_input_devices; + GList *tmp_list = _gdk_input_devices; GdkDevicePrivate *gdkdev; while (tmp_list) { @@ -386,7 +386,7 @@ gdk_input_common_init(gint include_core) for (loop = 0; loop < num_extensions && (strcmp(extensions[loop], "XInputExtension") != 0); loop++); XFreeExtensionList(extensions); - gdk_input_devices = NULL; + _gdk_input_devices = NULL; if (loop < num_extensions) { /* XInput extension found */ @@ -398,12 +398,12 @@ gdk_input_common_init(gint include_core) GdkDevicePrivate *gdkdev = gdk_input_device_new(&devices[loop], include_core); if (gdkdev) - gdk_input_devices = g_list_append(gdk_input_devices, gdkdev); + _gdk_input_devices = g_list_append(_gdk_input_devices, gdkdev); } XFreeDeviceList(devices); } - gdk_input_devices = g_list_append (gdk_input_devices, gdk_core_pointer); + _gdk_input_devices = g_list_append (_gdk_input_devices, _gdk_core_pointer); return TRUE; } diff --git a/gdk/x11/gdkinput-xfree.c b/gdk/x11/gdkinput-xfree.c index e2260934e9..fe7cafdebc 100644 --- a/gdk/x11/gdkinput-xfree.c +++ b/gdk/x11/gdkinput-xfree.c @@ -31,10 +31,10 @@ static void gdk_input_check_proximity (void); void -gdk_input_init(void) +_gdk_input_init(void) { _gdk_init_input_core (); - gdk_input_ignore_core = FALSE; + _gdk_input_ignore_core = FALSE; gdk_input_common_init(FALSE); } @@ -61,7 +61,7 @@ gdk_device_set_mode (GdkDevice *device, if (mode == GDK_MODE_WINDOW) { device->has_cursor = FALSE; - for (tmp_list = gdk_input_windows; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next) { input_window = (GdkInputWindow *)tmp_list->data; if (input_window->mode != GDK_EXTENSION_EVENTS_CURSOR) @@ -74,13 +74,13 @@ gdk_device_set_mode (GdkDevice *device, else if (mode == GDK_MODE_SCREEN) { device->has_cursor = TRUE; - for (tmp_list = gdk_input_windows; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next) _gdk_input_enable_window (((GdkInputWindow *)tmp_list->data)->window, gdkdev); } else /* mode == GDK_MODE_DISABLED */ { - for (tmp_list = gdk_input_windows; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next) { input_window = (GdkInputWindow *)tmp_list->data; if (old_mode != GDK_MODE_WINDOW || @@ -97,7 +97,7 @@ static void gdk_input_check_proximity (void) { gint new_proximity = 0; - GList *tmp_list = gdk_input_devices; + GList *tmp_list = _gdk_input_devices; while (tmp_list && !new_proximity) { @@ -132,7 +132,7 @@ gdk_input_check_proximity (void) tmp_list = tmp_list->next; } - gdk_input_ignore_core = new_proximity; + _gdk_input_ignore_core = new_proximity; } void @@ -202,14 +202,14 @@ _gdk_input_other_event (GdkEvent *event, && input_window->mode == GDK_EXTENSION_EVENTS_CURSOR)) return FALSE; - if (!gdk_input_ignore_core) + if (!_gdk_input_ignore_core) gdk_input_check_proximity(); return_val = gdk_input_common_other_event (event, xevent, input_window, gdkdev); if (return_val > 0 && event->type == GDK_PROXIMITY_OUT && - gdk_input_ignore_core) + _gdk_input_ignore_core) gdk_input_check_proximity(); return return_val; @@ -245,7 +245,7 @@ _gdk_input_grab_pointer (GdkWindow * window, gint num_classes; gint result; - tmp_list = gdk_input_windows; + tmp_list = _gdk_input_windows; new_window = NULL; need_ungrab = FALSE; @@ -268,7 +268,7 @@ _gdk_input_grab_pointer (GdkWindow * window, { new_window->grabbed = TRUE; - tmp_list = gdk_input_devices; + tmp_list = _gdk_input_devices; while (tmp_list) { gdkdev = (GdkDevicePrivate *)tmp_list->data; @@ -293,7 +293,7 @@ _gdk_input_grab_pointer (GdkWindow * window, } else { - tmp_list = gdk_input_devices; + tmp_list = _gdk_input_devices; while (tmp_list) { gdkdev = (GdkDevicePrivate *)tmp_list->data; @@ -319,7 +319,7 @@ _gdk_input_ungrab_pointer (guint32 time) GdkDevicePrivate *gdkdev; GList *tmp_list; - tmp_list = gdk_input_windows; + tmp_list = _gdk_input_windows; while (tmp_list) { input_window = (GdkInputWindow *)tmp_list->data; @@ -332,7 +332,7 @@ _gdk_input_ungrab_pointer (guint32 time) { input_window->grabbed = FALSE; - tmp_list = gdk_input_devices; + tmp_list = _gdk_input_devices; while (tmp_list) { gdkdev = (GdkDevicePrivate *)tmp_list->data; diff --git a/gdk/x11/gdkinput.c b/gdk/x11/gdkinput.c index 7e952c4492..4f16a4f62a 100644 --- a/gdk/x11/gdkinput.c +++ b/gdk/x11/gdkinput.c @@ -39,31 +39,31 @@ static GdkDeviceAxis gdk_input_core_axes[] = { { GDK_AXIS_Y, 0, 0 } }; -GdkDevice *gdk_core_pointer = NULL; +GdkDevice *_gdk_core_pointer = NULL; /* Global variables */ /* information about network port and host for gxid daemon */ -gchar *gdk_input_gxid_host; -gint gdk_input_gxid_port; -gint gdk_input_ignore_core; +gchar *_gdk_input_gxid_host; +gint _gdk_input_gxid_port; +gint _gdk_input_ignore_core; -GList *gdk_input_devices; -GList *gdk_input_windows; +GList *_gdk_input_devices; +GList *_gdk_input_windows; void _gdk_init_input_core (void) { - gdk_core_pointer = g_object_new (GDK_TYPE_DEVICE, NULL); + _gdk_core_pointer = g_object_new (GDK_TYPE_DEVICE, NULL); - gdk_core_pointer->name = "Core Pointer"; - gdk_core_pointer->source = GDK_SOURCE_MOUSE; - gdk_core_pointer->mode = GDK_MODE_SCREEN; - gdk_core_pointer->has_cursor = TRUE; - gdk_core_pointer->num_axes = 2; - gdk_core_pointer->axes = gdk_input_core_axes; - gdk_core_pointer->num_keys = 0; - gdk_core_pointer->keys = NULL; + _gdk_core_pointer->name = "Core Pointer"; + _gdk_core_pointer->source = GDK_SOURCE_MOUSE; + _gdk_core_pointer->mode = GDK_MODE_SCREEN; + _gdk_core_pointer->has_cursor = TRUE; + _gdk_core_pointer->num_axes = 2; + _gdk_core_pointer->axes = gdk_input_core_axes; + _gdk_core_pointer->num_keys = 0; + _gdk_core_pointer->keys = NULL; } GType @@ -97,7 +97,7 @@ gdk_device_get_type (void) GList * gdk_devices_list (void) { - return gdk_input_devices; + return _gdk_input_devices; } void @@ -233,7 +233,7 @@ gdk_input_window_find(GdkWindow *window) { GList *tmp_list; - for (tmp_list=gdk_input_windows; tmp_list; tmp_list=tmp_list->next) + for (tmp_list=_gdk_input_windows; tmp_list; tmp_list=tmp_list->next) if (((GdkInputWindow *)(tmp_list->data))->window == window) return (GdkInputWindow *)(tmp_list->data); @@ -275,7 +275,7 @@ gdk_input_set_extension_events (GdkWindow *window, gint mask, iw->num_obscuring = 0; iw->grabbed = FALSE; - gdk_input_windows = g_list_append(gdk_input_windows,iw); + _gdk_input_windows = g_list_append(_gdk_input_windows,iw); window_private->extension_events = mask; /* Add enter window events to the event mask */ @@ -289,14 +289,14 @@ gdk_input_set_extension_events (GdkWindow *window, gint mask, iw = gdk_input_window_find (window); if (iw) { - gdk_input_windows = g_list_remove(gdk_input_windows,iw); + _gdk_input_windows = g_list_remove(_gdk_input_windows,iw); g_free(iw); } window_private->extension_events = 0; } - for (tmp_list = gdk_input_devices; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = _gdk_input_devices; tmp_list; tmp_list = tmp_list->next) { GdkDevicePrivate *gdkdev = tmp_list->data; @@ -319,17 +319,17 @@ gdk_input_window_destroy (GdkWindow *window) input_window = gdk_input_window_find (window); g_return_if_fail (input_window != NULL); - gdk_input_windows = g_list_remove (gdk_input_windows,input_window); + _gdk_input_windows = g_list_remove (_gdk_input_windows,input_window); g_free(input_window); } void -gdk_input_exit (void) +_gdk_input_exit (void) { GList *tmp_list; GdkDevicePrivate *gdkdev; - for (tmp_list = gdk_input_devices; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = _gdk_input_devices; tmp_list; tmp_list = tmp_list->next) { gdkdev = (GdkDevicePrivate *)(tmp_list->data); if (!GDK_IS_CORE (gdkdev)) @@ -346,12 +346,12 @@ gdk_input_exit (void) } } - g_list_free(gdk_input_devices); + g_list_free(_gdk_input_devices); - for (tmp_list = gdk_input_windows; tmp_list; tmp_list = tmp_list->next) + for (tmp_list = _gdk_input_windows; tmp_list; tmp_list = tmp_list->next) g_free(tmp_list->data); - g_list_free(gdk_input_windows); + g_list_free(_gdk_input_windows); } /** diff --git a/gdk/x11/gdkinputprivate.h b/gdk/x11/gdkinputprivate.h index acfb26d23d..cb19db41e1 100644 --- a/gdk/x11/gdkinputprivate.h +++ b/gdk/x11/gdkinputprivate.h @@ -124,15 +124,15 @@ struct _GdkInputWindow /* Global data */ -#define GDK_IS_CORE(d) (((GdkDevice *)(d)) == gdk_core_pointer) +#define GDK_IS_CORE(d) (((GdkDevice *)(d)) == _gdk_core_pointer) -extern GList *gdk_input_devices; -extern GList *gdk_input_windows; +extern GList *_gdk_input_devices; +extern GList *_gdk_input_windows; /* information about network port and host for gxid daemon */ -extern gchar *gdk_input_gxid_host; -extern gint gdk_input_gxid_port; -extern gint gdk_input_ignore_core; +extern gchar *_gdk_input_gxid_host; +extern gint _gdk_input_gxid_port; +extern gint _gdk_input_ignore_core; /* Function declarations */ diff --git a/gdk/x11/gdkkeys-x11.c b/gdk/x11/gdkkeys-x11.c index 63fa3cfb31..620d417525 100644 --- a/gdk/x11/gdkkeys-x11.c +++ b/gdk/x11/gdkkeys-x11.c @@ -194,7 +194,7 @@ get_keymap (void) } #if HAVE_XKB -PangoDirection +static PangoDirection get_direction (void) { XkbDescRec *xkb = get_xkb (); diff --git a/gdk/x11/gdkmain-x11.c b/gdk/x11/gdkmain-x11.c index 677a0214ac..0f6476fe44 100644 --- a/gdk/x11/gdkmain-x11.c +++ b/gdk/x11/gdkmain-x11.c @@ -103,12 +103,11 @@ static const int gdk_ndebug_keys = sizeof(gdk_debug_keys)/sizeof(GDebugKey); #endif /* G_ENABLE_DEBUG */ GdkArgDesc _gdk_windowing_args[] = { - { "display", GDK_ARG_STRING, &gdk_display_name, (GdkArgFunc)NULL }, + { "display", GDK_ARG_STRING, &_gdk_display_name, (GdkArgFunc)NULL }, { "sync", GDK_ARG_BOOL, &gdk_synchronize, (GdkArgFunc)NULL }, - { "no-xshm", GDK_ARG_NOBOOL, &gdk_use_xshm, (GdkArgFunc)NULL }, - { "class", GDK_ARG_STRING, &gdk_progclass, (GdkArgFunc)NULL }, - { "gxid-host", GDK_ARG_STRING, &gdk_input_gxid_host, (GdkArgFunc)NULL }, - { "gxid-port", GDK_ARG_INT, &gdk_input_gxid_port, (GdkArgFunc)NULL }, + { "no-xshm", GDK_ARG_NOBOOL, &_gdk_use_xshm, (GdkArgFunc)NULL }, + { "gxid-host", GDK_ARG_STRING, &_gdk_input_gxid_host, (GdkArgFunc)NULL }, + { "gxid-port", GDK_ARG_INT, &_gdk_input_gxid_port, (GdkArgFunc)NULL }, { NULL } }; @@ -122,46 +121,35 @@ _gdk_windowing_init_check (int argc, char **argv) XSetErrorHandler (gdk_x_error); XSetIOErrorHandler (gdk_x_io_error); - gdk_display = XOpenDisplay (gdk_display_name); + gdk_display = XOpenDisplay (_gdk_display_name); if (!gdk_display) return FALSE; if (gdk_synchronize) XSynchronize (gdk_display, True); - gdk_screen = DefaultScreen (gdk_display); - gdk_root_window = RootWindow (gdk_display, gdk_screen); + _gdk_screen = DefaultScreen (gdk_display); + _gdk_root_window = RootWindow (gdk_display, _gdk_screen); - gdk_leader_window = XCreateSimpleWindow(gdk_display, gdk_root_window, + _gdk_leader_window = XCreateSimpleWindow(gdk_display, _gdk_root_window, 10, 10, 10, 10, 0, 0 , 0); class_hint = XAllocClassHint(); class_hint->res_name = g_get_prgname (); - if (gdk_progclass == NULL) - { - gdk_progclass = g_strdup (g_get_prgname ()); - gdk_progclass[0] = toupper (gdk_progclass[0]); - } - class_hint->res_class = gdk_progclass; - XmbSetWMProperties (gdk_display, gdk_leader_window, + class_hint->res_class = gdk_get_program_class (); + XmbSetWMProperties (gdk_display, _gdk_leader_window, NULL, NULL, argv, argc, NULL, NULL, class_hint); XFree (class_hint); pid = getpid(); - XChangeProperty (gdk_display, gdk_leader_window, + XChangeProperty (gdk_display, _gdk_leader_window, gdk_atom_intern ("_NET_WM_PID", FALSE), XA_CARDINAL, 32, PropModeReplace, (guchar *)&pid, 1); - gdk_wm_delete_window = gdk_atom_intern ("WM_DELETE_WINDOW", FALSE); - gdk_wm_take_focus = gdk_atom_intern ("WM_TAKE_FOCUS", FALSE); - gdk_wm_protocols = gdk_atom_intern ("WM_PROTOCOLS", FALSE); - gdk_wm_window_protocols[0] = gdk_wm_delete_window; - gdk_wm_window_protocols[1] = gdk_wm_take_focus; - gdk_wm_window_protocols[2] = gdk_atom_intern ("_NET_WM_PING", FALSE); - gdk_selection_property = gdk_atom_intern ("GDK_SELECTION", FALSE); - + _gdk_selection_property = gdk_atom_intern ("GDK_SELECTION", FALSE); + XGetKeyboardControl (gdk_display, &keyboard_state); autorepeat = keyboard_state.global_auto_repeat; @@ -205,13 +193,13 @@ _gdk_windowing_init_check (int argc, char **argv) void gdk_set_use_xshm (gboolean use_xshm) { - gdk_use_xshm = use_xshm; + _gdk_use_xshm = use_xshm; } gboolean gdk_get_use_xshm (void) { - return gdk_use_xshm; + return _gdk_use_xshm; } static GdkGrabStatus @@ -295,10 +283,10 @@ gdk_pointer_grab (GdkWindow * window, xevent_mask = 0; - for (i = 0; i < gdk_nevent_masks; i++) + for (i = 0; i < _gdk_nenvent_masks; i++) { if (event_mask & (1 << (i + 1))) - xevent_mask |= gdk_event_mask_table[i]; + xevent_mask |= _gdk_event_mask_table[i]; } return_val = _gdk_input_grab_pointer (window, @@ -323,7 +311,7 @@ gdk_pointer_grab (GdkWindow * window, } if (return_val == GrabSuccess) - gdk_xgrab_window = (GdkWindowObject *)window; + _gdk_xgrab_window = (GdkWindowObject *)window; return gdk_x11_convert_grab_status (return_val); } @@ -349,7 +337,7 @@ gdk_pointer_ungrab (guint32 time) _gdk_input_ungrab_pointer (time); XUngrabPointer (gdk_display, time); - gdk_xgrab_window = NULL; + _gdk_xgrab_window = NULL; } /* @@ -370,7 +358,7 @@ gdk_pointer_ungrab (guint32 time) gboolean gdk_pointer_is_grabbed (void) { - return gdk_xgrab_window != NULL; + return _gdk_xgrab_window != NULL; } /* @@ -456,7 +444,7 @@ gdk_screen_width (void) { gint return_val; - return_val = DisplayWidth (gdk_display, gdk_screen); + return_val = DisplayWidth (gdk_display, _gdk_screen); return return_val; } @@ -481,7 +469,7 @@ gdk_screen_height (void) { gint return_val; - return_val = DisplayHeight (gdk_display, gdk_screen); + return_val = DisplayHeight (gdk_display, _gdk_screen); return return_val; } @@ -506,7 +494,7 @@ gdk_screen_width_mm (void) { gint return_val; - return_val = DisplayWidthMM (gdk_display, gdk_screen); + return_val = DisplayWidthMM (gdk_display, _gdk_screen); return return_val; } @@ -531,7 +519,7 @@ gdk_screen_height_mm (void) { gint return_val; - return_val = DisplayHeightMM (gdk_display, gdk_screen); + return_val = DisplayHeightMM (gdk_display, _gdk_screen); return return_val; } @@ -563,13 +551,13 @@ gdk_set_sm_client_id (const gchar* sm_client_id) { if (sm_client_id && strcmp (sm_client_id, "")) { - XChangeProperty (gdk_display, gdk_leader_window, + XChangeProperty (gdk_display, _gdk_leader_window, gdk_atom_intern ("SM_CLIENT_ID", FALSE), XA_STRING, 8, PropModeReplace, sm_client_id, strlen(sm_client_id)); } else - XDeleteProperty (gdk_display, gdk_leader_window, + XDeleteProperty (gdk_display, _gdk_leader_window, gdk_atom_intern ("SM_CLIENT_ID", FALSE)); } @@ -580,7 +568,7 @@ gdk_beep (void) } void -gdk_windowing_exit (void) +_gdk_windowing_exit (void) { pango_x_shutdown_display (gdk_display); @@ -599,7 +587,7 @@ gdk_windowing_exit (void) * * Results: * Either we were expecting some sort of error to occur, - * in which case we set the "gdk_error_code" flag, or this + * in which case we set the "_gdk_error_code" flag, or this * error was unexpected, in which case we will print an * error message and exit. (Since trying to continue will * most likely simply lead to more errors). @@ -615,7 +603,7 @@ gdk_x_error (Display *display, { if (error->error_code) { - if (gdk_error_warnings) + if (_gdk_error_warnings) { gchar buf[64]; gchar *msg; @@ -647,7 +635,7 @@ gdk_x_error (Display *display, exit(1); #endif /* G_ENABLE_DEBUG */ } - gdk_error_code = error->error_code; + _gdk_error_code = error->error_code; } return 0; @@ -707,7 +695,7 @@ gdk_x_io_error (Display *display) gchar * gdk_get_display (void) { - return (gchar *)XDisplayName (gdk_display_name); + return (gchar *)XDisplayName (_gdk_display_name); } gint @@ -715,16 +703,16 @@ gdk_send_xevent (Window window, gboolean propagate, glong event_mask, XEvent *event_send) { Status result; - gint old_warnings = gdk_error_warnings; + gint old_warnings = _gdk_error_warnings; - gdk_error_code = 0; + _gdk_error_code = 0; - gdk_error_warnings = 0; + _gdk_error_warnings = 0; result = XSendEvent (gdk_display, window, propagate, event_mask, event_send); XSync (gdk_display, False); - gdk_error_warnings = old_warnings; + _gdk_error_warnings = old_warnings; - return result && !gdk_error_code; + return result && !_gdk_error_code; } void @@ -769,3 +757,30 @@ gdk_x11_ungrab_server (void) if (grab_count == 0) XUngrabServer (gdk_display); } + +/** + * gdk_x11_get_default_screen: + * + * Gets the default GTK+ screen number. + * + * Return value: returns the screen number specified by + * the --display command line option on the DISPLAY environment + * variable gdk_init() calls XOpenDisplay(). + **/ +gint +gdk_x11_get_default_screen (void) +{ + return _gdk_screen; +} + +Window +gdk_x11_get_default_root_xwindow (void) +{ + return _gdk_root_window; +} + +Display * +gdk_x11_get_default_xdisplay (void) +{ + return gdk_display; +} diff --git a/gdk/x11/gdkpixmap-x11.c b/gdk/x11/gdkpixmap-x11.c index fe0b421a0c..3c69ed7aa2 100644 --- a/gdk/x11/gdkpixmap-x11.c +++ b/gdk/x11/gdkpixmap-x11.c @@ -32,7 +32,8 @@ #include <unistd.h> #include <X11/Xlib.h> -#include <gdk/gdkpixmap.h> +#include "gdkx.h" + #include "gdkpixmap-x11.h" #include "gdkprivate-x11.h" @@ -60,7 +61,7 @@ static void gdk_pixmap_impl_x11_finalize (GObject *object); static gpointer parent_class = NULL; -GType +static GType gdk_pixmap_impl_x11_get_type (void) { static GType object_type = 0; @@ -157,7 +158,7 @@ gdk_pixmap_new (GdkWindow *window, g_return_val_if_fail ((width != 0) && (height != 0), NULL); if (!window) - window = gdk_parent_root; + window = _gdk_parent_root; if (GDK_WINDOW_DESTROYED (window)) return NULL; @@ -188,7 +189,7 @@ gdk_pixmap_new (GdkWindow *window, gdk_drawable_set_colormap (pixmap, cmap); } - gdk_xid_table_insert (&GDK_PIXMAP_XID (pixmap), pixmap); + gdk_xid_table_insert (&draw_impl->xid, pixmap); return pixmap; } @@ -208,7 +209,7 @@ gdk_bitmap_create_from_data (GdkWindow *window, g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), NULL); if (!window) - window = gdk_parent_root; + window = _gdk_parent_root; if (GDK_WINDOW_DESTROYED (window)) return NULL; @@ -228,7 +229,7 @@ gdk_bitmap_create_from_data (GdkWindow *window, GDK_WINDOW_XID (window), (char *)data, width, height); - gdk_xid_table_insert (&GDK_PIXMAP_XID (pixmap), pixmap); + gdk_xid_table_insert (&draw_impl->xid, pixmap); return pixmap; } @@ -254,7 +255,7 @@ gdk_pixmap_create_from_data (GdkWindow *window, g_return_val_if_fail ((width != 0) && (height != 0), NULL); if (!window) - window = gdk_parent_root; + window = _gdk_parent_root; if (GDK_WINDOW_DESTROYED (window)) return NULL; @@ -278,7 +279,7 @@ gdk_pixmap_create_from_data (GdkWindow *window, (char *)data, width, height, fg->pixel, bg->pixel, depth); - gdk_xid_table_insert (&GDK_PIXMAP_XID (pixmap), pixmap); + gdk_xid_table_insert (&draw_impl->xid, pixmap); return pixmap; } @@ -321,7 +322,7 @@ gdk_pixmap_foreign_new (GdkNativeWindow anid) pix_impl->height = h_ret; GDK_PIXMAP_OBJECT (pixmap)->depth = depth_ret; - gdk_xid_table_insert(&GDK_PIXMAP_XID (pixmap), pixmap); + gdk_xid_table_insert(&draw_impl->xid, pixmap); return pixmap; } diff --git a/gdk/x11/gdkpixmap-x11.h b/gdk/x11/gdkpixmap-x11.h index 7fc626ab90..9dc6727ffb 100644 --- a/gdk/x11/gdkpixmap-x11.h +++ b/gdk/x11/gdkpixmap-x11.h @@ -63,8 +63,6 @@ struct _GdkPixmapImplX11Class }; -GType gdk_pixmap_impl_x11_get_type (void); - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h index 3dad11d434..bc8564825c 100644 --- a/gdk/x11/gdkprivate-x11.h +++ b/gdk/x11/gdkprivate-x11.h @@ -32,10 +32,59 @@ #define __GDK_PRIVATE_X11_H__ #include <gdk/gdkprivate.h> -#include "gdkx.h" +#include <gdk/x11/gdkwindow-x11.h> +#include <gdk/x11/gdkpixmap-x11.h> + +#include "gdkinternals.h" #include <config.h> +#define GDK_TYPE_GC_X11 (_gdk_gc_x11_get_type ()) +#define GDK_GC_X11(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GC_X11, GdkGCX11)) +#define GDK_GC_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GC_X11, GdkGCX11Class)) +#define GDK_IS_GC_X11(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GC_X11)) +#define GDK_IS_GC_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GC_X11)) +#define GDK_GC_X11_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GC_X11, GdkGCX11Class)) + +typedef struct _GdkCursorPrivate GdkCursorPrivate; +typedef struct _GdkVisualPrivate GdkVisualPrivate; +typedef struct _GdkGCX11 GdkGCX11; +typedef struct _GdkGCX11Class GdkGCX11Class; + +struct _GdkGCX11 +{ + GdkGC parent_instance; + + GC xgc; + Display *xdisplay; + GdkRegion *clip_region; + guint dirty_mask; + + /* We can't conditionalize on HAVE_XFT here, so we simply always + * have this here as a gpointer. + */ + gpointer xft_draw; + gulong fg_pixel; +}; + +struct _GdkGCX11Class +{ + GdkGCClass parent_class; +}; + +struct _GdkCursorPrivate +{ + GdkCursor cursor; + Cursor xcursor; + Display *xdisplay; +}; + +struct _GdkVisualPrivate +{ + GdkVisual visual; + Visual *xvisual; +}; + void gdk_xid_table_insert (XID *xid, gpointer data); void gdk_xid_table_remove (XID xid); @@ -44,6 +93,8 @@ gint gdk_send_xevent (Window window, glong event_mask, XEvent *event_send); +GType _gdk_gc_x11_get_type (void); + GdkGC *_gdk_x11_gc_new (GdkDrawable *drawable, GdkGCValues *values, GdkGCValuesMask values_mask); @@ -97,17 +148,21 @@ void _gdk_moveresize_configure_done (void); void _gdk_keymap_state_changed (void); +GC _gdk_x11_gc_flush (GdkGC *gc); + extern GdkDrawableClass _gdk_x11_drawable_class; -extern gboolean gdk_use_xshm; -extern Atom gdk_wm_delete_window; -extern Atom gdk_wm_take_focus; -extern Atom gdk_wm_protocols; -extern Atom gdk_wm_window_protocols[]; -extern gboolean gdk_null_window_warnings; -extern const int gdk_nevent_masks; -extern const int gdk_event_mask_table[]; - -extern GdkWindowObject *gdk_xgrab_window; /* Window that currently holds the +extern Window _gdk_root_window; +extern gboolean _gdk_use_xshm; +extern Atom _gdk_wm_window_protocols[]; +extern const int _gdk_nenvent_masks; +extern const int _gdk_event_mask_table[]; +extern gint _gdk_screen; +extern Atom _gdk_selection_property; +extern gchar *_gdk_display_name; + +extern Window _gdk_leader_window; + +extern GdkWindowObject *_gdk_xgrab_window; /* Window that currently holds the * x pointer grab */ diff --git a/gdk/x11/gdkproperty-x11.c b/gdk/x11/gdkproperty-x11.c index 3929729892..08c055dd29 100644 --- a/gdk/x11/gdkproperty-x11.c +++ b/gdk/x11/gdkproperty-x11.c @@ -68,13 +68,13 @@ gdk_atom_name (GdkAtom atom) /* If this atom doesn't exist, we'll die with an X error unless we take precautions */ - old_error_warnings = gdk_error_warnings; - gdk_error_warnings = 0; - gdk_error_code = 0; + old_error_warnings = _gdk_error_warnings; + _gdk_error_warnings = 0; + _gdk_error_code = 0; t = XGetAtomName (gdk_display, atom); - gdk_error_warnings = old_error_warnings; + _gdk_error_warnings = old_error_warnings; - if (gdk_error_code) + if (_gdk_error_code) { if (t) XFree (t); @@ -125,7 +125,7 @@ gdk_property_get (GdkWindow *window, else { xdisplay = gdk_display; - xwindow = gdk_root_window; + xwindow = _gdk_root_window; } ret_data = NULL; @@ -213,7 +213,7 @@ gdk_property_change (GdkWindow *window, else { xdisplay = gdk_display; - xwindow = gdk_root_window; + xwindow = _gdk_root_window; } XChangeProperty (xdisplay, xwindow, property, type, @@ -240,7 +240,7 @@ gdk_property_delete (GdkWindow *window, else { xdisplay = gdk_display; - xwindow = gdk_root_window; + xwindow = _gdk_root_window; } XDeleteProperty (xdisplay, xwindow, property); diff --git a/gdk/x11/gdkselection-x11.c b/gdk/x11/gdkselection-x11.c index 1b1e73553b..eae9020133 100644 --- a/gdk/x11/gdkselection-x11.c +++ b/gdk/x11/gdkselection-x11.c @@ -42,7 +42,7 @@ struct _OwnerInfo gulong serial; }; -GSList *owner_list; +static GSList *owner_list; /* When a window is destroyed we check if it is the owner * of any selections. This is somewhat inefficient, but @@ -170,7 +170,7 @@ gdk_selection_convert (GdkWindow *requestor, return; XConvertSelection (GDK_WINDOW_XDISPLAY (requestor), selection, target, - gdk_selection_property, GDK_WINDOW_XID (requestor), time); + _gdk_selection_property, GDK_WINDOW_XID (requestor), time); } gint @@ -199,7 +199,7 @@ gdk_selection_property_get (GdkWindow *requestor, t = NULL; XGetWindowProperty (GDK_WINDOW_XDISPLAY (requestor), GDK_WINDOW_XID (requestor), - gdk_selection_property, 0, 0, False, + _gdk_selection_property, 0, 0, False, AnyPropertyType, &prop_type, &prop_format, &nitems, &nbytes, &t); @@ -230,7 +230,7 @@ gdk_selection_property_get (GdkWindow *requestor, Otherwise there's no guarantee we'll win the race ... */ XGetWindowProperty (GDK_DRAWABLE_XDISPLAY (requestor), GDK_DRAWABLE_XID (requestor), - gdk_selection_property, 0, (nbytes + 3) / 4, False, + _gdk_selection_property, 0, (nbytes + 3) / 4, False, AnyPropertyType, &prop_type, &prop_format, &nitems, &nbytes, &t); diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c index 617b15dd94..66c42ff769 100644 --- a/gdk/x11/gdkvisual-x11.c +++ b/gdk/x11/gdkvisual-x11.c @@ -31,6 +31,11 @@ #include "gdkprivate-x11.h" #include "gdkinternals.h" +struct _GdkVisualClass +{ + GObjectClass parent_class; +}; + static void gdk_visual_add (GdkVisual *visual); static void gdk_visual_decompose_mask (gulong mask, gint *shift, @@ -109,7 +114,7 @@ gdk_visual_get_type (void) void -gdk_visual_init (void) +_gdk_visual_init (void) { static const gint possible_depths[7] = { 32, 24, 16, 15, 8, 4, 1 }; static const GdkVisualType possible_types[6] = @@ -132,14 +137,14 @@ gdk_visual_init (void) int nxvisuals; int i, j; - visual_template.screen = gdk_screen; + visual_template.screen = _gdk_screen; visual_list = XGetVisualInfo (gdk_display, VisualScreenMask, &visual_template, &nxvisuals); visuals = g_new (GdkVisualPrivate *, nxvisuals); for (i = 0; i < nxvisuals; i++) visuals[i] = g_object_new (GDK_TYPE_VISUAL, NULL); - default_xvisual = DefaultVisual (gdk_display, gdk_screen); + default_xvisual = DefaultVisual (gdk_display, _gdk_screen); nvisuals = 0; for (i = 0; i < nxvisuals; i++) @@ -262,7 +267,7 @@ gdk_visual_init (void) } #ifdef G_ENABLE_DEBUG - if (gdk_debug_flags & GDK_DEBUG_MISC) + if (_gdk_debug_flags & GDK_DEBUG_MISC) for (i = 0; i < nvisuals; i++) g_message ("visual: %s: %d", visual_names[visuals[i]->visual.type], @@ -484,3 +489,11 @@ gdk_visual_equal (Visual *a, { return (a->visualid == b->visualid); } + +Visual * +gdk_x11_visual_get_xvisual (GdkVisual *visual) +{ + g_return_val_if_fail (visual != NULL, NULL); + + return ((GdkVisualPrivate*) visual)->xvisual; +} diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 60e936241d..f5a65e6acd 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -48,7 +48,7 @@ #include <X11/extensions/shape.h> #endif -const int gdk_event_mask_table[21] = +const int _gdk_event_mask_table[21] = { ExposureMask, PointerMotionMask, @@ -72,7 +72,7 @@ const int gdk_event_mask_table[21] = SubstructureNotifyMask, ButtonPressMask /* SCROLL; on X mouse wheel events is treated as mouse button 4/5 */ }; -const int gdk_nevent_masks = sizeof (gdk_event_mask_table) / sizeof (int); +const int _gdk_nenvent_masks = sizeof (_gdk_event_mask_table) / sizeof (int); /* Forward declarations */ static gboolean gdk_window_gravity_works (void); @@ -274,19 +274,19 @@ _gdk_windowing_window_init (void) unsigned int depth; int x, y; - g_assert (gdk_parent_root == NULL); + g_assert (_gdk_parent_root == NULL); - XGetGeometry (gdk_display, gdk_root_window, &gdk_root_window, + XGetGeometry (gdk_display, _gdk_root_window, &_gdk_root_window, &x, &y, &width, &height, &border_width, &depth); - XGetWindowAttributes (gdk_display, gdk_root_window, &xattributes); + XGetWindowAttributes (gdk_display, _gdk_root_window, &xattributes); - gdk_parent_root = g_object_new (GDK_TYPE_WINDOW, NULL); - private = (GdkWindowObject *)gdk_parent_root; + _gdk_parent_root = g_object_new (GDK_TYPE_WINDOW, NULL); + private = (GdkWindowObject *)_gdk_parent_root; impl = GDK_WINDOW_IMPL_X11 (private->impl); draw_impl = GDK_DRAWABLE_IMPL_X11 (private->impl); draw_impl->xdisplay = gdk_display; - draw_impl->xid = gdk_root_window; + draw_impl->xid = _gdk_root_window; draw_impl->wrapper = GDK_DRAWABLE (private); private->window_type = GDK_WINDOW_ROOT; @@ -294,7 +294,7 @@ _gdk_windowing_window_init (void) impl->width = width; impl->height = height; - gdk_xid_table_insert (&gdk_root_window, gdk_parent_root); + gdk_xid_table_insert (&_gdk_root_window, _gdk_parent_root); } static GdkAtom wm_client_leader_atom = GDK_NONE; @@ -330,7 +330,7 @@ gdk_window_new (GdkWindow *parent, g_return_val_if_fail (attributes != NULL, NULL); if (!parent) - parent = gdk_parent_root; + parent = _gdk_parent_root; g_return_val_if_fail (GDK_IS_WINDOW (parent), NULL); @@ -393,10 +393,10 @@ gdk_window_new (GdkWindow *parent, xvisual = ((GdkVisualPrivate*) visual)->xvisual; xattributes.event_mask = StructureNotifyMask; - for (i = 0; i < gdk_nevent_masks; i++) + for (i = 0; i < _gdk_nenvent_masks; i++) { if (attributes->event_mask & (1 << (i + 1))) - xattributes.event_mask |= gdk_event_mask_table[i]; + xattributes.event_mask |= _gdk_event_mask_table[i]; } if (xattributes.event_mask) @@ -428,7 +428,7 @@ gdk_window_new (GdkWindow *parent, { g_warning (G_STRLOC "Toplevel windows must be created as children of\n" "of a window of type GDK_WINDOW_ROOT or GDK_WINDOW_FOREIGN"); - xparent = gdk_root_window; + xparent = _gdk_root_window; } case GDK_WINDOW_CHILD: break; @@ -465,12 +465,12 @@ gdk_window_new (GdkWindow *parent, } } - private->bg_color.pixel = BlackPixel (gdk_display, gdk_screen); + private->bg_color.pixel = BlackPixel (gdk_display, _gdk_screen); xattributes.background_pixel = private->bg_color.pixel; private->bg_pixmap = NULL; - xattributes.border_pixel = BlackPixel (gdk_display, gdk_screen); + xattributes.border_pixel = BlackPixel (gdk_display, _gdk_screen); xattributes_mask |= CWBorderPixel | CWBackPixel; if (private->guffaw_gravity) @@ -524,7 +524,7 @@ gdk_window_new (GdkWindow *parent, case GDK_WINDOW_TOPLEVEL: case GDK_WINDOW_TEMP: XSetWMProtocols (xdisplay, xid, - gdk_wm_window_protocols, 3); + _gdk_wm_window_protocols, 3); break; case GDK_WINDOW_CHILD: if ((attributes->wclass == GDK_INPUT_OUTPUT) && @@ -564,7 +564,7 @@ gdk_window_new (GdkWindow *parent, size_hints.height = impl->height; wm_hints.flags = StateHint | WindowGroupHint; - wm_hints.window_group = gdk_leader_window; + wm_hints.window_group = _gdk_leader_window; wm_hints.input = True; wm_hints.initial_state = NormalState; @@ -582,7 +582,7 @@ gdk_window_new (GdkWindow *parent, XChangeProperty (xdisplay, xid, wm_client_leader_atom, XA_WINDOW, 32, PropModeReplace, - (guchar*) &gdk_leader_window, 1); + (guchar*) &_gdk_leader_window, 1); if (attributes_mask & GDK_WA_TITLE) title = attributes->title; @@ -700,9 +700,9 @@ _gdk_windowing_window_destroy (GdkWindow *window, xevent.type = ClientMessage; xevent.window = GDK_WINDOW_XID (window); - xevent.message_type = gdk_wm_protocols; + xevent.message_type = gdk_atom_intern ("WM_PROTOCOLS", FALSE); xevent.format = 32; - xevent.data.l[0] = gdk_wm_delete_window; + xevent.data.l[0] = gdk_atom_intern ("WM_DELETE_WINDOW", FALSE); xevent.data.l[1] = CurrentTime; XSendEvent (GDK_WINDOW_XDISPLAY (window), @@ -1051,7 +1051,7 @@ gdk_window_reparent (GdkWindow *window, g_return_if_fail (GDK_WINDOW_TYPE (window) != GDK_WINDOW_ROOT); if (!new_parent) - new_parent = gdk_parent_root; + new_parent = _gdk_parent_root; window_private = (GdkWindowObject*) window; old_parent_private = (GdkWindowObject*)window_private->parent; @@ -1077,7 +1077,7 @@ gdk_window_reparent (GdkWindow *window, GDK_WINDOW_TYPE (window) = GDK_WINDOW_TOPLEVEL; XSetWMProtocols (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), - gdk_wm_window_protocols, 3); + _gdk_wm_window_protocols, 3); } case GDK_WINDOW_TOPLEVEL: case GDK_WINDOW_CHILD: @@ -1179,7 +1179,7 @@ gdk_window_focus (GdkWindow *window, xev.xclient.format = 32; xev.xclient.data.l[0] = 0; - XSendEvent (gdk_display, gdk_root_window, False, + XSendEvent (gdk_display, _gdk_root_window, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); } @@ -1323,7 +1323,7 @@ gdk_wmspec_change_state (gboolean add, xev.xclient.data.l[1] = state1; xev.xclient.data.l[2] = state2; - XSendEvent (gdk_display, gdk_root_window, False, + XSendEvent (gdk_display, _gdk_root_window, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); } @@ -1757,7 +1757,7 @@ gdk_window_get_geometry (GdkWindow *window, g_return_if_fail (window == NULL || GDK_IS_WINDOW (window)); if (!window) - window = gdk_parent_root; + window = _gdk_parent_root; if (!GDK_WINDOW_DESTROYED (window)) { @@ -1807,7 +1807,7 @@ gdk_window_get_origin (GdkWindow *window, { return_val = XTranslateCoordinates (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), - gdk_root_window, + _gdk_root_window, 0, 0, &tx, &ty, &child); @@ -2017,7 +2017,7 @@ _gdk_windowing_window_get_pointer (GdkWindow *window, g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), NULL); if (!window) - window = gdk_parent_root; + window = _gdk_parent_root; _gdk_windowing_window_get_offsets (window, &xoffset, &yoffset); @@ -2098,9 +2098,9 @@ gdk_window_get_events (GdkWindow *window) &attrs); event_mask = 0; - for (i = 0; i < gdk_nevent_masks; i++) + for (i = 0; i < _gdk_nenvent_masks; i++) { - if (attrs.your_event_mask & gdk_event_mask_table[i]) + if (attrs.your_event_mask & _gdk_event_mask_table[i]) event_mask |= 1 << (i + 1); } @@ -2121,10 +2121,10 @@ gdk_window_set_events (GdkWindow *window, if (!GDK_WINDOW_DESTROYED (window)) { xevent_mask = StructureNotifyMask; - for (i = 0; i < gdk_nevent_masks; i++) + for (i = 0; i < _gdk_nenvent_masks; i++) { if (event_mask & (1 << (i + 1))) - xevent_mask |= gdk_event_mask_table[i]; + xevent_mask |= _gdk_event_mask_table[i]; } XSelectInput (GDK_WINDOW_XDISPLAY (window), @@ -2360,7 +2360,7 @@ gdk_window_set_icon_list (GdkWindow *window, while (l) { pixbuf = l->data; - g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), FALSE); + g_return_if_fail (GDK_IS_PIXBUF (pixbuf)); width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); @@ -2588,7 +2588,7 @@ gdk_window_stick (GdkWindow *window) xev.xclient.data.l[0] = 0xFFFFFFFF; - XSendEvent (gdk_display, gdk_root_window, False, + XSendEvent (gdk_display, _gdk_root_window, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); } @@ -2626,7 +2626,7 @@ gdk_window_unstick (GdkWindow *window) /* Get current desktop, then set it; this is a race, but not * one that matters much in practice. */ - XGetWindowProperty (gdk_display, gdk_root_window, + XGetWindowProperty (gdk_display, _gdk_root_window, gdk_atom_intern ("_NET_CURRENT_DESKTOP", FALSE), 0, G_MAXLONG, False, XA_CARDINAL, &type, &format, &nitems, @@ -2644,7 +2644,7 @@ gdk_window_unstick (GdkWindow *window) xev.xclient.data.l[0] = *current_desktop; - XSendEvent (gdk_display, gdk_root_window, False, + XSendEvent (gdk_display, _gdk_root_window, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); @@ -3419,7 +3419,7 @@ gdk_window_xid_at_coords (gint x, unsigned int num; int i; - window = gdk_parent_root; + window = _gdk_parent_root; xdisplay = GDK_WINDOW_XDISPLAY (window); root = GDK_WINDOW_XID (window); num = g_list_length (excludes); @@ -3495,7 +3495,7 @@ wmspec_moveresize (GdkWindow *window, xev.xclient.data.l[3] = 0; xev.xclient.data.l[4] = 0; - XSendEvent (gdk_display, gdk_root_window, False, + XSendEvent (gdk_display, _gdk_root_window, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); } diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx.h index fdb3848fd5..09385de300 100644 --- a/gdk/x11/gdkx.h +++ b/gdk/x11/gdkx.h @@ -33,116 +33,66 @@ #include <X11/Xlib.h> #include <X11/Xutil.h> -#include <gdk/x11/gdkwindow-x11.h> -#include <gdk/x11/gdkpixmap-x11.h> - G_BEGIN_DECLS -typedef struct _GdkColormapPrivateX11 GdkColormapPrivateX11; -typedef struct _GdkCursorPrivate GdkCursorPrivate; -typedef struct _GdkImagePrivateX11 GdkImagePrivateX11; -typedef struct _GdkVisualPrivate GdkVisualPrivate; - -struct _GdkCursorPrivate -{ - GdkCursor cursor; - Cursor xcursor; - Display *xdisplay; -}; - -struct _GdkVisualPrivate -{ - GdkVisual visual; - Visual *xvisual; -}; - -struct _GdkVisualClass -{ - GObjectClass parent_class; -}; - -struct _GdkColormapPrivateX11 -{ - Colormap xcolormap; - Display *xdisplay; - gint private_val; - - GHashTable *hash; - GdkColorInfo *info; - time_t last_sync_time; -}; - -struct _GdkImagePrivateX11 -{ - XImage *ximage; - Display *xdisplay; - gpointer x_shm_info; -}; - - -typedef struct _GdkGCX11 GdkGCX11; -typedef struct _GdkGCX11Class GdkGCX11Class; - -#define GDK_TYPE_GC_X11 (gdk_gc_x11_get_type ()) -#define GDK_GC_X11(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_GC_X11, GdkGCX11)) -#define GDK_GC_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_GC_X11, GdkGCX11Class)) -#define GDK_IS_GC_X11(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_GC_X11)) -#define GDK_IS_GC_X11_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_GC_X11)) -#define GDK_GC_X11_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_GC_X11, GdkGCX11Class)) - -struct _GdkGCX11 -{ - GdkGC parent_instance; - - GC xgc; - Display *xdisplay; - GdkRegion *clip_region; - guint dirty_mask; - - /* We can't conditionalize on HAVE_XFT here, so we simply always - * have this here as a gpointer. - */ - gpointer xft_draw; - gulong fg_pixel; -}; - -struct _GdkGCX11Class -{ - GdkGCClass parent_class; - -}; - -GType gdk_gc_x11_get_type (void); - -#define GDK_ROOT_WINDOW() gdk_root_window -#define GDK_ROOT_PARENT() ((GdkWindow *)gdk_parent_root) +extern Display *gdk_display; + +Display *gdk_x11_drawable_get_xdisplay (GdkDrawable *drawable); +XID gdk_x11_drawable_get_xid (GdkDrawable *drawable); +Display *gdk_x11_image_get_xdisplay (GdkImage *image); +XImage *gdk_x11_image_get_ximage (GdkImage *image); +Display *gdk_x11_colormap_get_xdisplay (GdkColormap *colormap); +Colormap gdk_x11_colormap_get_xcolormap (GdkColormap *colormap); +Display *gdk_x11_cursor_get_xdisplay (GdkCursor *cursor); +Cursor gdk_x11_cursor_get_xcursor (GdkCursor *cursor); +Visual * gdk_x11_visual_get_xvisual (GdkVisual *visual); +Display *gdk_x11_gc_get_xdisplay (GdkGC *gc); +GC gdk_x11_gc_get_xgc (GdkGC *gc); +Window gdk_x11_get_default_root_xwindow (void); +Display *gdk_x11_get_default_xdisplay (void); +gint gdk_x11_get_default_screen (void); + +#define GDK_COLORMAP_XDISPLAY(cmap) (gdk_x11_colormap_get_xdisplay (cmap)) +#define GDK_COLORMAP_XCOLORMAP(cmap) (gdk_x11_colormap_get_xcolormap (cmap)) +#define GDK_CURSOR_XDISPLAY(win) (gdk_x11_cursor_get_xdisplay (win)) +#define GDK_CURSOR_XCURSOR(win) (gdk_x11_cursor_get_xid (win)) #define GDK_DISPLAY() gdk_display +#define GDK_IMAGE_XDISPLAY(image) (gdk_x11_image_get_xdisplay (image)) +#define GDK_IMAGE_XIMAGE(image) (gdk_x11_image_get_ximage (image)) + +#ifdef INSIDE_GDK_X11 + +#include "gdkprivate-x11.h" + +#define GDK_ROOT_WINDOW() _gdk_root_window +#define GDK_ROOT_PARENT() ((GdkWindow *)_gdk_parent_root) #define GDK_WINDOW_XDISPLAY(win) (GDK_DRAWABLE_IMPL_X11(((GdkWindowObject *)win)->impl)->xdisplay) #define GDK_WINDOW_XID(win) (GDK_DRAWABLE_IMPL_X11(((GdkWindowObject *)win)->impl)->xid) #define GDK_PIXMAP_XDISPLAY(win) (GDK_DRAWABLE_IMPL_X11(((GdkPixmapObject *)win)->impl)->xdisplay) #define GDK_PIXMAP_XID(win) (GDK_DRAWABLE_IMPL_X11(((GdkPixmapObject *)win)->impl)->xid) #define GDK_DRAWABLE_XDISPLAY(win) (GDK_IS_WINDOW (win) ? GDK_WINDOW_XDISPLAY (win) : GDK_PIXMAP_XDISPLAY (win)) #define GDK_DRAWABLE_XID(win) (GDK_IS_WINDOW (win) ? GDK_WINDOW_XID (win) : GDK_PIXMAP_XID (win)) -#define GDK_IMAGE_XDISPLAY(image) (((GdkImagePrivateX11 *) GDK_IMAGE (image)->windowing_data)->xdisplay) -#define GDK_IMAGE_XIMAGE(image) (((GdkImagePrivateX11 *) GDK_IMAGE (image)->windowing_data)->ximage) #define GDK_GC_XDISPLAY(gc) (GDK_GC_X11(gc)->xdisplay) -#define GDK_COLORMAP_XDISPLAY(cmap) (((GdkColormapPrivateX11 *)GDK_COLORMAP (cmap)->windowing_data)->xdisplay) -#define GDK_COLORMAP_XCOLORMAP(cmap) (((GdkColormapPrivateX11 *)GDK_COLORMAP (cmap)->windowing_data)->xcolormap) #define GDK_VISUAL_XVISUAL(vis) (((GdkVisualPrivate *) vis)->xvisual) - #define GDK_GC_XGC(gc) (GDK_GC_X11(gc)->xgc) -#define GDK_GC_GET_XGC(gc) (GDK_GC_X11(gc)->dirty_mask ? _gdk_x11_gc_flush (gc) : GDK_GC_XGC (gc)) +#define GDK_GC_GET_XGC(gc) (GDK_GC_X11(gc)->dirty_mask ? _gdk_x11_gc_flush (gc) : ((GdkGCX11 *)(gc))->xgc) #define GDK_WINDOW_XWINDOW GDK_DRAWABLE_XID -extern Display *gdk_display; -extern Window gdk_root_window; -extern gint gdk_screen; -extern gchar *gdk_display_name; -extern Window gdk_leader_window; +#else /* INSIDE_GDK_X11 */ -extern Atom gdk_selection_property; +#define GDK_ROOT_WINDOW() (gdk_x11_get_default_root_xwindow ()) +#define GDK_WINDOW_XDISPLAY(win) (gdk_x11_drawable_get_xdisplay (win)) +#define GDK_WINDOW_XID(win) (gdk_x11_drawable_get_xid (win)) +#define GDK_WINDOW_XWINDOW(win) (gdk_x11_drawable_get_xid (win)) +#define GDK_PIXMAP_XDISPLAY(win) (gdk_x11_drawable_get_xdisplay (win)) +#define GDK_PIXMAP_XID(win) (gdk_x11_drawable_get_xid (win)) +#define GDK_DRAWABLE_XDISPLAY(win) (gdk_x11_drawable_get_xdisplay (win)) +#define GDK_DRAWABLE_XID(win) (gdk_x11_drawable_get_xid (win)) +#define GDK_VISUAL_XVISUAL(visual) (gdk_x11_visual_get_xvisual (visual)) +#define GDK_GC_XDISPLAY(gc) (gdk_x11_gc_get_xdisplay (gc)) +#define GDK_GC_XGC(gc) (gdk_x11_gc_get_xgc (gc)) -extern gchar *gdk_progclass; +#endif /* INSIDE_GDK_X11 */ GdkVisual* gdkx_visual_get (VisualID xvisualid); /* XXX: Do not use this function until it is fixed. An X Colormap @@ -169,31 +119,16 @@ void gdk_x11_ungrab_server (void); /* returns TRUE if we support the given WM spec feature */ gboolean gdk_net_wm_supports (GdkAtom property); -void gdk_x11_grab_server (void); -void gdk_x11_ungrab_server (void); - #define gdk_window_lookup(xid) ((GdkWindow*) gdk_xid_table_lookup (xid)) #define gdk_pixmap_lookup(xid) ((GdkPixmap*) gdk_xid_table_lookup (xid)) -GC _gdk_x11_gc_flush (GdkGC *gc); - #ifndef GDK_DISABLE_DEPRECATED -typedef struct _GdkFontPrivateX GdkFontPrivateX; - -struct _GdkFontPrivateX -{ - GdkFontPrivate base; - /* XFontStruct *xfont; */ - /* generic pointer point to XFontStruct or XFontSet */ - gpointer xfont; - Display *xdisplay; - - GSList *names; -}; +Display *gdk_x11_font_get_xdisplay (GdkFont *font); +gpointer gdk_x11_font_get_xfont (GdkFont *font); -#define GDK_FONT_XDISPLAY(font) (((GdkFontPrivate *) font)->xdisplay) -#define GDK_FONT_XFONT(font) (((GdkFontPrivateX *)font)->xfont) +#define GDK_FONT_XDISPLAY(font) (gdk_x11_font_get_xdisplay (font)) +#define GDK_FONT_XFONT(font) (gdk_x11_font_get_xfont (font)) #define gdk_font_lookup(xid) ((GdkFont*) gdk_xid_table_lookup (xid)) diff --git a/gdk/x11/xsettings-common.h b/gdk/x11/xsettings-common.h index e3af4a662e..1e93f84d4d 100644 --- a/gdk/x11/xsettings-common.h +++ b/gdk/x11/xsettings-common.h @@ -27,6 +27,23 @@ extern "C" { #endif /* __cplusplus */ +/* Renames for GDK inclusion */ + +#define xsettings_byte_order _gdk_xsettings_byte_order +#define xsettings_client_destroy _gdk_xsettings_client_destroy +#define xsettings_client_get_setting _gdk_xsettings_client_get_setting +#define xsettings_client_new _gdk_xsettings_client_new +#define xsettings_client_process_event _gdk_xsettings_client_process_event +#define xsettings_list_copy _gdk_xsettings_list_copy +#define xsettings_list_delete _gdk_xsettings_list_delete +#define xsettings_list_free _gdk_xsettings_list_free +#define xsettings_list_insert _gdk_xsettings_list_insert +#define xsettings_list_lookup _gdk_xsettings_list_lookup +#define xsettings_setting_copy _gdk_xsettings_setting_copy +#define xsettings_setting_equal _gdk_xsettings_setting_equal +#define xsettings_setting_free _gdk_xsettings_setting_free + + typedef struct _XSettingsBuffer XSettingsBuffer; typedef struct _XSettingsColor XSettingsColor; typedef struct _XSettingsList XSettingsList; |