[libwnck] core: Add Screen argument to _wnck_read_icons()
- From: Vincent Untz <vuntz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libwnck] core: Add Screen argument to _wnck_read_icons()
- Date: Thu, 20 Jan 2011 15:36:48 +0000 (UTC)
commit 5021fc4cb25cc55b58421a707b3daa67efc122d8
Author: Vincent Untz <vuntz gnome org>
Date: Wed Jan 19 23:37:28 2011 +0100
core: Add Screen argument to _wnck_read_icons()
libwnck/application.c | 3 ++-
libwnck/window.c | 3 ++-
libwnck/xutils.c | 35 ++++++++++++++++++++++++-----------
libwnck/xutils.h | 3 ++-
4 files changed, 30 insertions(+), 14 deletions(-)
---
diff --git a/libwnck/application.c b/libwnck/application.c
index c39bc1a..4b1c343 100644
--- a/libwnck/application.c
+++ b/libwnck/application.c
@@ -347,7 +347,8 @@ get_icons (WnckApplication *app)
icon = NULL;
mini_icon = NULL;
- if (_wnck_read_icons (app->priv->xwindow,
+ if (_wnck_read_icons (WNCK_SCREEN_XSCREEN (app->priv->screen),
+ app->priv->xwindow,
app->priv->icon_cache,
&icon,
DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT,
diff --git a/libwnck/window.c b/libwnck/window.c
index 69a6ceb..a147c89 100644
--- a/libwnck/window.c
+++ b/libwnck/window.c
@@ -2068,7 +2068,8 @@ get_icons (WnckWindow *window)
icon = NULL;
mini_icon = NULL;
- if (_wnck_read_icons (window->priv->xwindow,
+ if (_wnck_read_icons (WNCK_SCREEN_XSCREEN (window->priv->screen),
+ window->priv->xwindow,
window->priv->icon_cache,
&icon,
DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT,
diff --git a/libwnck/xutils.c b/libwnck/xutils.c
index 9054484..8c35dab 100644
--- a/libwnck/xutils.c
+++ b/libwnck/xutils.c
@@ -1550,7 +1550,8 @@ argbdata_to_pixdata (gulong *argb_data, int len, guchar **pixdata)
}
static gboolean
-read_rgb_icon (Window xwindow,
+read_rgb_icon (Screen *screen,
+ Window xwindow,
int ideal_width,
int ideal_height,
int ideal_mini_width,
@@ -1562,6 +1563,7 @@ read_rgb_icon (Window xwindow,
int *mini_height,
guchar **mini_pixdata)
{
+ Display *display;
Atom type;
int format;
gulong nitems;
@@ -1573,10 +1575,12 @@ read_rgb_icon (Window xwindow,
gulong *best_mini;
int mini_w, mini_h;
+ display = DisplayOfScreen (screen);
+
_wnck_error_trap_push ();
type = None;
data = NULL;
- result = XGetWindowProperty (_wnck_get_default_display (),
+ result = XGetWindowProperty (display,
xwindow,
_wnck_atom_get ("_NET_WM_ICON"),
0, G_MAXLONG,
@@ -1691,7 +1695,8 @@ _wnck_gdk_pixbuf_get_from_pixmap (Pixmap xpixmap)
}
static gboolean
-try_pixmap_and_mask (Pixmap src_pixmap,
+try_pixmap_and_mask (Screen *screen,
+ Pixmap src_pixmap,
Pixmap src_mask,
GdkPixbuf **iconp,
int ideal_width,
@@ -1789,10 +1794,12 @@ try_pixmap_and_mask (Pixmap src_pixmap,
}
static void
-get_kwm_win_icon (Window xwindow,
+get_kwm_win_icon (Screen *screen,
+ Window xwindow,
Pixmap *pixmap,
Pixmap *mask)
{
+ Display *display;
Atom type;
int format;
gulong nitems;
@@ -1800,12 +1807,14 @@ get_kwm_win_icon (Window xwindow,
Pixmap *icons;
int err, result;
+ display = DisplayOfScreen (screen);
+
*pixmap = None;
*mask = None;
_wnck_error_trap_push ();
icons = NULL;
- result = XGetWindowProperty (_wnck_get_default_display (), xwindow,
+ result = XGetWindowProperty (display, xwindow,
_wnck_atom_get ("KWM_WIN_ICON"),
0, G_MAXLONG,
False,
@@ -2043,7 +2052,8 @@ scaled_from_pixdata (guchar *pixdata,
}
gboolean
-_wnck_read_icons (Window xwindow,
+_wnck_read_icons (Screen *screen,
+ Window xwindow,
WnckIconCache *icon_cache,
GdkPixbuf **iconp,
int ideal_width,
@@ -2052,6 +2062,7 @@ _wnck_read_icons (Window xwindow,
int ideal_mini_width,
int ideal_mini_height)
{
+ Display *display;
guchar *pixdata;
int w, h;
guchar *mini_pixdata;
@@ -2064,6 +2075,8 @@ _wnck_read_icons (Window xwindow,
g_return_val_if_fail (icon_cache != NULL, FALSE);
+ display = DisplayOfScreen (screen);
+
*iconp = NULL;
*mini_iconp = NULL;
@@ -2098,7 +2111,7 @@ _wnck_read_icons (Window xwindow,
{
icon_cache->net_wm_icon_dirty = FALSE;
- if (read_rgb_icon (xwindow,
+ if (read_rgb_icon (screen, xwindow,
ideal_width, ideal_height,
ideal_mini_width, ideal_mini_height,
&w, &h, &pixdata,
@@ -2122,7 +2135,7 @@ _wnck_read_icons (Window xwindow,
icon_cache->wm_hints_dirty = FALSE;
_wnck_error_trap_push ();
- hints = XGetWMHints (_wnck_get_default_display (), xwindow);
+ hints = XGetWMHints (display, xwindow);
_wnck_error_trap_pop ();
pixmap = None;
mask = None;
@@ -2145,7 +2158,7 @@ _wnck_read_icons (Window xwindow,
mask != icon_cache->prev_mask) &&
pixmap != None)
{
- if (try_pixmap_and_mask (pixmap, mask,
+ if (try_pixmap_and_mask (screen, pixmap, mask,
iconp, ideal_width, ideal_height,
mini_iconp, ideal_mini_width, ideal_mini_height))
{
@@ -2165,13 +2178,13 @@ _wnck_read_icons (Window xwindow,
{
icon_cache->kwm_win_icon_dirty = FALSE;
- get_kwm_win_icon (xwindow, &pixmap, &mask);
+ get_kwm_win_icon (screen, xwindow, &pixmap, &mask);
if ((pixmap != icon_cache->prev_pixmap ||
mask != icon_cache->prev_mask) &&
pixmap != None)
{
- if (try_pixmap_and_mask (pixmap, mask,
+ if (try_pixmap_and_mask (screen, pixmap, mask,
iconp, ideal_width, ideal_height,
mini_iconp, ideal_mini_width, ideal_mini_height))
{
diff --git a/libwnck/xutils.h b/libwnck/xutils.h
index e19f028..502ecf3 100644
--- a/libwnck/xutils.h
+++ b/libwnck/xutils.h
@@ -169,7 +169,8 @@ void _wnck_icon_cache_set_want_fallback (WnckIconCache *icon_cache,
gboolean setting);
gboolean _wnck_icon_cache_get_is_fallback (WnckIconCache *icon_cache);
-gboolean _wnck_read_icons (Window xwindow,
+gboolean _wnck_read_icons (Screen *screen,
+ Window xwindow,
WnckIconCache *icon_cache,
GdkPixbuf **iconp,
int ideal_width,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]