[libwnck] core: Add _wnck_gdk_window_lookup_from_window()



commit 52181fcb1ce189b7f7e48dda3e6439faad067fd3
Author: Vincent Untz <vuntz gnome org>
Date:   Thu Jan 20 00:28:23 2011 +0100

    core: Add _wnck_gdk_window_lookup_from_window()
    
    This avoids duplicating code to lookup a GdkWindow from a Window,
    without using gdk_display_get_default().

 libwnck/xutils.c |   37 +++++++++++++++++++++++--------------
 libwnck/xutils.h |    3 +++
 2 files changed, 26 insertions(+), 14 deletions(-)
---
diff --git a/libwnck/xutils.c b/libwnck/xutils.c
index 5256124..2551762 100644
--- a/libwnck/xutils.c
+++ b/libwnck/xutils.c
@@ -838,8 +838,7 @@ _wnck_deiconify (Screen *screen,
    */
   GdkWindow *gdkwindow;
 
-  gdkwindow = gdk_x11_window_lookup_for_display (gdk_display_get_default (),
-                                                 xwindow);
+  gdkwindow = _wnck_gdk_window_lookup_from_window (screen, xwindow);
 
   _wnck_error_trap_push ();
   if (gdkwindow)
@@ -1362,21 +1361,12 @@ _wnck_select_input (Screen *screen,
                     Window  xwindow,
                     int     mask)
 {
-  Display    *display;
-  GdkDisplay *gdkdisplay;
-  GdkWindow  *gdkwindow;
+  Display   *display;
+  GdkWindow *gdkwindow;
 
   display = DisplayOfScreen (screen);
-  gdkdisplay = gdk_x11_lookup_xdisplay (display);
 
-  if (gdkdisplay)
-    gdkwindow = gdk_x11_window_lookup_for_display (gdkdisplay, xwindow);
-  else
-    {
-      g_warning ("No GdkDisplay matching Display \"%s\" was found.\n",
-                 DisplayString (display));
-      gdkwindow = NULL;
-    }
+  gdkwindow = _wnck_gdk_window_lookup_from_window (screen, xwindow);
 
   _wnck_error_trap_push ();
   if (gdkwindow)
@@ -2432,6 +2422,25 @@ _wnck_set_icon_geometry  (Screen *screen,
   _wnck_error_trap_pop ();
 }
 
+GdkWindow*
+_wnck_gdk_window_lookup_from_window (Screen *screen,
+                                     Window  xwindow)
+{
+  Display    *display;
+  GdkDisplay *gdkdisplay;
+
+  display = DisplayOfScreen (screen);
+  gdkdisplay = gdk_x11_lookup_xdisplay (display);
+
+  if (gdkdisplay)
+    return gdk_x11_window_lookup_for_display (gdkdisplay, xwindow);
+
+  g_warning ("No GdkDisplay matching Display \"%s\" was found.\n",
+             DisplayString (display));
+
+  return NULL;
+}
+
 /* orientation of pager */
 #define _NET_WM_ORIENTATION_HORZ 0
 #define _NET_WM_ORIENTATION_VERT 1
diff --git a/libwnck/xutils.h b/libwnck/xutils.h
index 2b334a3..ed4bffe 100644
--- a/libwnck/xutils.h
+++ b/libwnck/xutils.h
@@ -221,6 +221,9 @@ void _wnck_set_desktop_layout (Screen *xscreen,
 GdkPixbuf* _wnck_gdk_pixbuf_get_from_pixmap (Screen *screen,
                                              Pixmap  xpixmap);
 
+GdkWindow* _wnck_gdk_window_lookup_from_window (Screen *screen,
+                                                Window  xwindow);
+
 #define WNCK_NO_MANAGER_TOKEN 0
 
 int      _wnck_try_desktop_layout_manager           (Screen *xscreen,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]