Commit cf51750b authored by Benjamin Otte's avatar Benjamin Otte
Browse files

API: x11: gdk_drawable_get_xid => gdk_window_get_xid

Also moves the function implementations to gtkwindow-x11.c.
parent 86390c99
......@@ -1007,7 +1007,7 @@ gdk_x11_display_error_trap_pop_ignored
gdk_x11_display_set_cursor_theme
gdk_x11_register_standard_event_type
gdk_x11_drawable_get_xdisplay
gdk_x11_drawable_get_xid
gdk_x11_window_get_xid
gdk_x11_get_default_root_xwindow
gdk_x11_get_default_screen
gdk_x11_get_default_xdisplay
......
......@@ -13,7 +13,7 @@
longer correct to assume that each window has an associated XID.
Code that makes this assumption can sometimes be fixed by calling
gdk_window_ensure_native() on the windows in question.
Calling gdk_x11_drawable_get_xid() (or GDK_WINDOW_XID()) from the
Calling gdk_x11_window_get_xid() (or GDK_WINDOW_XID()) from the
X11-specific API on a non-native window will explicitly call
gdk_window_ensure_native(), so old code using this will continue to
work. A small gotcha is that the GDK_WINDOW_XID() call is no longer a
......
......@@ -224,7 +224,7 @@ int main (int argc, char **argv)
gtk_main_iteration ();
}
id = gdk_x11_drawable_get_xid (GDK_DRAWABLE (window));
id = gdk_x11_window_get_xid (window);
screenshot = take_window_shot (id, info->include_decorations);
filename = g_strdup_printf ("./%s.png", info->name);
gdk_pixbuf_save (screenshot, filename, "png", NULL, NULL);
......
......@@ -548,7 +548,6 @@ gdk_x11_display_set_cursor_theme
gdk_x11_display_set_startup_notification_id
gdk_x11_display_ungrab
gdk_x11_drawable_get_xdisplay
gdk_x11_drawable_get_xid
gdk_x11_get_default_root_xwindow
gdk_x11_get_default_screen
gdk_x11_get_default_xdisplay
......@@ -569,6 +568,7 @@ gdk_x11_screen_supports_net_wm_hint
gdk_x11_ungrab_server
gdk_x11_visual_get_xvisual
gdk_x11_window_get_drawable_impl
gdk_x11_window_get_xid
gdk_x11_window_move_to_current_desktop
gdk_x11_window_set_user_time
gdk_x11_xatom_to_atom
......
......@@ -9606,7 +9606,7 @@ gdk_window_print (GdkWindowObject *window,
if (gdk_window_has_impl (window))
{
#ifdef GDK_WINDOWING_X11
g_print (" impl(0x%lx)", gdk_x11_drawable_get_xid (GDK_DRAWABLE (window)));
g_print (" impl(0x%lx)", gdk_x11_window_get_xid (window));
#endif
}
......
......@@ -134,52 +134,6 @@ gdk_x11_drawable_get_xdisplay (GdkDrawable *drawable)
return GDK_SCREEN_XDISPLAY (GDK_DRAWABLE_IMPL_X11 (get_impl_drawable (drawable))->screen);
}
/**
* gdk_x11_drawable_get_xid:
* @drawable: a #GdkDrawable.
*
* Returns the X resource (window) belonging to a #GdkDrawable.
*
* Return value: the ID of @drawable's X resource.
**/
XID
gdk_x11_drawable_get_xid (GdkDrawable *drawable)
{
GdkDrawable *impl;
if (GDK_IS_WINDOW (drawable))
{
GdkWindow *window = (GdkWindow *)drawable;
/* Try to ensure the window has a native window */
if (!_gdk_window_has_impl (window))
{
gdk_window_ensure_native (window);
/* We sync here to ensure the window is created in the Xserver when
* this function returns. This is required because the returned XID
* for this window must be valid immediately, even with another
* connection to the Xserver */
gdk_display_sync (gdk_window_get_display (window));
}
if (!GDK_WINDOW_IS_X11 (window))
{
g_warning (G_STRLOC " drawable is not a native X11 window");
return None;
}
impl = ((GdkWindowObject *)drawable)->impl;
}
else
{
g_warning (G_STRLOC " drawable is not a window");
return None;
}
return ((GdkDrawableImplX11 *)impl)->xid;
}
GdkDrawable *
gdk_x11_window_get_drawable_impl (GdkWindow *window)
{
......
......@@ -5584,3 +5584,40 @@ gdk_x11_get_server_time (GdkWindow *window)
return xevent.xproperty.time;
}
/**
* gdk_x11_window_get_xid:
* @window: a native #GdkWindow.
*
* Returns the X resource (window) belonging to a #GdkWindow.
*
* Return value: the ID of @drawable's X resource.
**/
XID
gdk_x11_window_get_xid (GdkWindow *window)
{
GdkDrawable *impl;
/* Try to ensure the window has a native window */
if (!_gdk_window_has_impl (window))
{
gdk_window_ensure_native (window);
/* We sync here to ensure the window is created in the Xserver when
* this function returns. This is required because the returned XID
* for this window must be valid immediately, even with another
* connection to the Xserver */
gdk_display_sync (gdk_window_get_display (window));
}
if (!GDK_WINDOW_IS_X11 (window))
{
g_warning (G_STRLOC " drawable is not a native X11 window");
return None;
}
impl = ((GdkWindowObject *) window)->impl;
return ((GdkDrawableImplX11 *)impl)->xid;
}
......@@ -56,7 +56,7 @@ G_BEGIN_DECLS
Display *gdk_x11_drawable_get_xdisplay (GdkDrawable *drawable);
XID gdk_x11_drawable_get_xid (GdkDrawable *drawable);
Window gdk_x11_window_get_xid (GdkWindow *window);
GdkDrawable *gdk_x11_window_get_drawable_impl (GdkWindow *window);
Display *gdk_x11_cursor_get_xdisplay (GdkCursor *cursor);
Cursor gdk_x11_cursor_get_xcursor (GdkCursor *cursor);
......@@ -186,16 +186,16 @@ gint gdk_x11_get_default_screen (void);
*
* Returns: the Xlib <type>Window</type> of @win.
*/
#define GDK_WINDOW_XID(win) (gdk_x11_drawable_get_xid (win))
#define GDK_WINDOW_XID(win) (gdk_x11_window_get_xid (win))
/**
* GDK_WINDOW_XWINDOW:
*
* Another name for GDK_DRAWABLE_XID().
*/
#define GDK_WINDOW_XWINDOW(win) (gdk_x11_drawable_get_xid (win))
#define GDK_WINDOW_XWINDOW(win) (gdk_x11_window_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_DRAWABLE_XID(win) (gdk_x11_window_get_xid (win))
#define GDK_SCREEN_XDISPLAY(screen) (gdk_x11_display_get_xdisplay (gdk_screen_get_display (screen)))
#define GDK_SCREEN_XSCREEN(screen) (gdk_x11_screen_get_xscreen (screen))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment