[libwnck] core: Add Screen argument to _wnck_get_text_property(), ...



commit d7cebcf30700deae62583ec8aec00ddc344c3c4f
Author: Vincent Untz <vuntz gnome org>
Date:   Wed Jan 19 22:39:59 2011 +0100

    core: Add Screen argument to _wnck_get_text_property(), ...
    
    ... _wnck_get_name(), _wnck_get_icon_name().

 libwnck/application.c |    7 +++++--
 libwnck/window.c      |    6 ++++--
 libwnck/xutils.c      |   18 ++++++++++++------
 libwnck/xutils.h      |    9 ++++++---
 4 files changed, 27 insertions(+), 13 deletions(-)
---
diff --git a/libwnck/application.c b/libwnck/application.c
index 85d7506..97ffed9 100644
--- a/libwnck/application.c
+++ b/libwnck/application.c
@@ -517,6 +517,7 @@ _wnck_application_create (Window      xwindow,
                           WnckScreen *screen)
 {
   WnckApplication *application;
+  Screen          *xscreen;
 
   if (app_hash == NULL)
     app_hash = g_hash_table_new (_wnck_xid_hash, _wnck_xid_equal);
@@ -524,11 +525,13 @@ _wnck_application_create (Window      xwindow,
   g_return_val_if_fail (g_hash_table_lookup (app_hash, &xwindow) == NULL,
                         NULL);
 
+  xscreen = WNCK_SCREEN_XSCREEN (screen);
+
   application = g_object_new (WNCK_TYPE_APPLICATION, NULL);
   application->priv->xwindow = xwindow;
   application->priv->screen = screen;
 
-  application->priv->name = _wnck_get_name (xwindow);
+  application->priv->name = _wnck_get_name (xscreen, xwindow);
 
   if (application->priv->name == NULL)
     application->priv->name = _wnck_get_res_class_utf8 (xwindow);
@@ -536,7 +539,7 @@ _wnck_application_create (Window      xwindow,
   if (application->priv->name)
     application->priv->name_from_leader = TRUE;
 
-  application->priv->pid = _wnck_get_pid (WNCK_SCREEN_XSCREEN (screen),
+  application->priv->pid = _wnck_get_pid (xscreen,
                                           application->priv->xwindow);
 
   application->priv->startup_id = _wnck_get_utf8_property (application->priv->xwindow,
diff --git a/libwnck/window.c b/libwnck/window.c
index 68e7647..dc8241d 100644
--- a/libwnck/window.c
+++ b/libwnck/window.c
@@ -2764,7 +2764,8 @@ update_name (WnckWindow *window)
 
   window->priv->need_update_name = FALSE;
 
-  new_name = _wnck_get_name (window->priv->xwindow);
+  new_name = _wnck_get_name (WNCK_SCREEN_XSCREEN (window->priv->screen),
+                             window->priv->xwindow);
 
   if (g_strcmp0 (window->priv->name, new_name) != 0)
     window->priv->need_emit_name_changed = TRUE;
@@ -2783,7 +2784,8 @@ update_icon_name (WnckWindow *window)
 
   window->priv->need_update_icon_name = FALSE;
 
-  new_name = _wnck_get_icon_name (window->priv->xwindow);
+  new_name = _wnck_get_icon_name (WNCK_SCREEN_XSCREEN (window->priv->screen),
+                                  window->priv->xwindow);
 
   if (g_strcmp0 (window->priv->icon_name, new_name) != 0)
     window->priv->need_emit_name_changed = TRUE;
diff --git a/libwnck/xutils.c b/libwnck/xutils.c
index 3352341..9b38163 100644
--- a/libwnck/xutils.c
+++ b/libwnck/xutils.c
@@ -282,16 +282,20 @@ text_property_to_utf8 (const XTextProperty *prop)
 }
 
 char*
-_wnck_get_text_property (Window  xwindow,
+_wnck_get_text_property (Screen *screen,
+                         Window  xwindow,
                          Atom    atom)
 {
+  Display *display;
   XTextProperty text;
   char *retval;
 
+  display = DisplayOfScreen (screen);
+
   _wnck_error_trap_push ();
 
   text.nitems = 0;
-  if (XGetTextProperty (_wnck_get_default_display(),
+  if (XGetTextProperty (display,
                         xwindow,
                         &text,
                         atom))
@@ -1173,7 +1177,8 @@ _wnck_get_pid (Screen *screen,
 }
 
 char*
-_wnck_get_name (Window xwindow)
+_wnck_get_name (Screen *screen,
+                Window  xwindow)
 {
   char *name;
 
@@ -1185,14 +1190,15 @@ _wnck_get_name (Window xwindow)
                                     _wnck_atom_get ("_NET_WM_NAME"));
 
   if (name == NULL)
-    name = _wnck_get_text_property (xwindow,
+    name = _wnck_get_text_property (screen, xwindow,
                                     XA_WM_NAME);
 
   return name;
 }
 
 char*
-_wnck_get_icon_name (Window xwindow)
+_wnck_get_icon_name (Screen *screen,
+                     Window  xwindow)
 {
   char *name;
 
@@ -1204,7 +1210,7 @@ _wnck_get_icon_name (Window xwindow)
                                     _wnck_atom_get ("_NET_WM_ICON_NAME"));
 
   if (name == NULL)
-    name = _wnck_get_text_property (xwindow,
+    name = _wnck_get_text_property (screen, xwindow,
                                     XA_WM_ICON_NAME);
 
   return name;
diff --git a/libwnck/xutils.h b/libwnck/xutils.h
index 17c152b..59ad071 100644
--- a/libwnck/xutils.h
+++ b/libwnck/xutils.h
@@ -56,7 +56,8 @@ gboolean _wnck_get_atom          (Screen *screen,
                                   Window  xwindow,
                                   Atom    atom,
                                   Atom   *val);
-char*    _wnck_get_text_property (Window  xwindow,
+char*    _wnck_get_text_property (Screen *screen,
+                                  Window  xwindow,
                                   Atom    atom);
 char*    _wnck_get_utf8_property (Window  xwindow,
                                   Atom    atom);
@@ -120,8 +121,10 @@ char*  _wnck_get_session_id     (Screen *screen,
                                  Window xwindow);
 int    _wnck_get_pid            (Screen *screen,
                                  Window  xwindow);
-char*  _wnck_get_name           (Window xwindow);
-char*  _wnck_get_icon_name      (Window xwindow);
+char*  _wnck_get_name           (Screen *screen,
+                                 Window  xwindow);
+char*  _wnck_get_icon_name      (Screen *screen,
+                                 Window  xwindow);
 char*  _wnck_get_res_class_utf8 (Window xwindow);
 void   _wnck_get_wmclass        (Window xwindow,
                                  char **res_class,



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