aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen VanDine <ken.vandine@canonical.com>2012-01-12 00:49:05 +0100
committerKen VanDine <ken.vandine@canonical.com>2012-01-12 00:49:05 +0100
commit4471ef23e5e4849360a1a08b34ac54351c03c885 (patch)
tree2f2315401dea6ea542ed01cd39abca00c04ab6f2
parent97ead2117550eb6092676bcbeda633bb55c71ebb (diff)
downloadayatana-ido-4471ef23e5e4849360a1a08b34ac54351c03c885.tar.gz
ayatana-ido-4471ef23e5e4849360a1a08b34ac54351c03c885.tar.bz2
ayatana-ido-4471ef23e5e4849360a1a08b34ac54351c03c885.zip
Patch from ~covox (LP: #867649)
In method ido_offscreen_proxy_realize(), a call is made to gdk_screen_get_rgba_visual() to get a GdkVisual handle, which is then passed as part of a GdkWindowAttr structure to gdk_window_new(). What's not taken into account is that gdk_screen_get_rgba_visual() will return NULL if RGBA isn't supported by the destination window manager (e.g. if someone turned the Composite extension off). In this case, as the field is always marked as valid for use (GDK_WA_VISUAL), gdk_window_new will fall over. Attached is a patch to fall back on gdk_screen_get_system_visual() if RGBA isn't available. With this, unity-panel-service no longer crashes after interacting with the Sound indicator if the Composite extension is switched off.
-rw-r--r--src/idooffscreenproxy.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/idooffscreenproxy.c b/src/idooffscreenproxy.c
index 50a087d..79cb626 100644
--- a/src/idooffscreenproxy.c
+++ b/src/idooffscreenproxy.c
@@ -211,6 +211,10 @@ ido_offscreen_proxy_realize (GtkWidget *widget)
| GDK_ENTER_NOTIFY_MASK
| GDK_LEAVE_NOTIFY_MASK;
attributes.visual = gdk_screen_get_rgba_visual (gdk_screen_get_default ());//gtk_widget_get_visual (widget);
+ if (!attributes.visual)
+ {
+ attributes.visual = gdk_screen_get_system_visual (gdk_screen_get_default ());
+ }
attributes.wclass = GDK_INPUT_OUTPUT;
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;