From 87f072e0002193c9ec3ccb990ef7519052d15599 Mon Sep 17 00:00:00 2001 From: Martin Schaaf Date: Wed, 28 Sep 2005 11:10:58 +0000 Subject: [PATCH] 2005-09-28 [martin] 1.9.14cvs60 * src/plugins/trayicon/libeggtrayicon/eggtrayicon.c fix bug #790 (Crash when restarting window manager (fluxbox)) --- ChangeLog-gtk2.claws | 5 +++ PATCHSETS | 1 + configure.ac | 2 +- .../trayicon/libeggtrayicon/eggtrayicon.c | 38 ++++++++++++++++--- 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/ChangeLog-gtk2.claws b/ChangeLog-gtk2.claws index 76334d5be..2609094ce 100644 --- a/ChangeLog-gtk2.claws +++ b/ChangeLog-gtk2.claws @@ -1,3 +1,8 @@ +2005-09-28 [martin] 1.9.14cvs60 + + * src/plugins/trayicon/libeggtrayicon/eggtrayicon.c + fix bug #790 (Crash when restarting window manager (fluxbox)) + 2005-09-28 [paul] 1.9.14cvs59 * src/gtk/gtkaspell.c diff --git a/PATCHSETS b/PATCHSETS index ec7d0aeb1..958215bc1 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -828,3 +828,4 @@ ( cvs diff -u -r 1.1.2.5 -r 1.1.2.6 src/prefs_quote.c; ) > 1.9.14cvs57.patchset ( cvs diff -u -r 1.1.2.8 -r 1.1.2.9 src/plugins/pgpcore/sgpgme.c; ) > 1.9.14cvs58.patchset ( cvs diff -u -r 1.9.2.29 -r 1.9.2.30 src/gtk/gtkaspell.c; ) > 1.9.14cvs59.patchset +( cvs diff -u -r 1.1.4.5 -r 1.1.4.6 src/plugins/trayicon/libeggtrayicon/eggtrayicon.c; ) > 1.9.14cvs60.patchset diff --git a/configure.ac b/configure.ac index 595883b45..2f6030079 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=9 MICRO_VERSION=14 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=59 +EXTRA_VERSION=60 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/plugins/trayicon/libeggtrayicon/eggtrayicon.c b/src/plugins/trayicon/libeggtrayicon/eggtrayicon.c index a3e3baa16..f10ca9f5e 100644 --- a/src/plugins/trayicon/libeggtrayicon/eggtrayicon.c +++ b/src/plugins/trayicon/libeggtrayicon/eggtrayicon.c @@ -153,8 +153,12 @@ egg_tray_icon_get_orientation_property (EggTrayIcon *icon) int error, result; g_assert (icon->manager_window != None); - + +#ifndef GDK_MULTIHEAD_SAFE + xdisplay = gdk_display; +#else xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +#endif gdk_error_trap_push (); type = None; @@ -228,8 +232,12 @@ egg_tray_icon_unrealize (GtkWidget *widget) { GdkWindow *gdkwin; +#ifndef GDK_MULTIHEAD_SAFE + gdkwin = gdk_window_lookup (icon->manager_window); +#else gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget), - icon->manager_window); + icon->manager_window); +#endif gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); } @@ -263,8 +271,12 @@ egg_tray_icon_send_manager_message (EggTrayIcon *icon, ev.data.l[3] = data2; ev.data.l[4] = data3; +#ifndef GDK_MULTIHEAD_SAFE + display = gdk_display; +#else display = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); - +#endif + gdk_error_trap_push (); XSendEvent (display, icon->manager_window, False, NoEventMask, (XEvent *)&ev); @@ -287,14 +299,22 @@ egg_tray_icon_update_manager_window (EggTrayIcon *icon) { Display *xdisplay; +#ifndef GDK_MULTIHEAD_SAFE + xdisplay = gdk_display; +#else xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); - +#endif + if (icon->manager_window != None) { GdkWindow *gdkwin; +#ifndef GDK_MULTIHEAD_SAFE + gdkwin = gdk_window_lookup (icon->manager_window); +#else gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), icon->manager_window); +#endif gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); } @@ -315,9 +335,13 @@ egg_tray_icon_update_manager_window (EggTrayIcon *icon) { GdkWindow *gdkwin; +#ifndef GDK_MULTIHEAD_SAFE + gdkwin = gdk_window_lookup (icon->manager_window); +#else gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), icon->manager_window); - +#endif + gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon); /* Send a request that we'd like to dock */ @@ -428,7 +452,11 @@ egg_tray_icon_send_message (EggTrayIcon *icon, XClientMessageEvent ev; Display *xdisplay; +#ifndef GDK_MULTIHEAD_SAFE + xdisplay = gdk_display; +#else xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +#endif ev.type = ClientMessage; ev.window = (Window)gtk_plug_get_id (GTK_PLUG (icon)); -- 2.25.1