[libwnck] core: Add Screen argument to _wnck_get_text_property(), ...
- From: Vincent Untz <vuntz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libwnck] core: Add Screen argument to _wnck_get_text_property(), ...
- Date: Thu, 20 Jan 2011 15:35:52 +0000 (UTC)
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]