Index: ChangeLog =================================================================== RCS file: /cvs/gnome/gnome-panel/gnome-panel/ChangeLog,v retrieving revision 1.2631 diff -u -p -r1.2631 ChangeLog --- ChangeLog 5 May 2005 03:22:04 -0000 1.2631 +++ ChangeLog 11 May 2005 08:50:46 -0000 @@ -0,0 +1,13 @@ +2005-05-11 Mark McLoughlin + + Fix "dialogs pop up under panel dialogs" issue by + making each panel be in its own window group and + the dialogs part of the default group. Bug #303570 + + * panel-toplevel.c: (panel_toplevel_realize): + Just set the group leader to be the panel itself + rather than making a futile effort to foil gtk. + + * xstuff.[ch]: + (xstuff_set_no_group): remove. + Index: panel-toplevel.c =================================================================== RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-toplevel.c,v retrieving revision 1.90 diff -u -p -r1.90 panel-toplevel.c --- panel-toplevel.c 6 Feb 2005 12:49:07 -0000 1.90 +++ panel-toplevel.c 11 May 2005 08:50:48 -0000 @@ -44,7 +44,6 @@ #include "panel-widget.h" #include "panel-bindings.h" #include "panel-struts.h" -#include "xstuff.h" #include "panel-config-global.h" #include "panel-lockdown.h" @@ -2684,8 +2683,8 @@ panel_toplevel_realize (GtkWidget *widge panel_struts_set_window_hint (toplevel); panel_xutils_set_window_type (widget->window, PANEL_XUTILS_TYPE_DOCK); - xstuff_set_no_group (widget->window); + gdk_window_set_group (widget->window, widget->window); gdk_window_set_geometry_hints (widget->window, NULL, GDK_HINT_POS); panel_toplevel_move_resize_window (toplevel, TRUE, TRUE); Index: xstuff.c =================================================================== RCS file: /cvs/gnome/gnome-panel/gnome-panel/xstuff.c,v retrieving revision 1.66 diff -u -p -r1.66 xstuff.c --- xstuff.c 26 Nov 2004 17:00:43 -0000 1.66 +++ xstuff.c 11 May 2005 08:50:48 -0000 @@ -183,37 +183,6 @@ xstuff_net_wm_supports (const char *hint return gdk_net_wm_supports (gdk_atom_intern (hint, FALSE)); } -void -xstuff_set_no_group (GdkWindow *win) -{ - XWMHints *old_wmhints; - XWMHints wmhints = {0}; - - XDeleteProperty (GDK_WINDOW_XDISPLAY (win), - GDK_WINDOW_XWINDOW (win), - panel_atom_get ("WM_CLIENT_LEADER")); - - old_wmhints = XGetWMHints (GDK_WINDOW_XDISPLAY (win), - GDK_WINDOW_XWINDOW (win)); - /* General paranoia */ - if (old_wmhints != NULL) { - memcpy (&wmhints, old_wmhints, sizeof (XWMHints)); - XFree (old_wmhints); - - wmhints.flags &= ~WindowGroupHint; - wmhints.window_group = 0; - } else { - /* General paranoia */ - wmhints.flags = StateHint; - wmhints.window_group = 0; - wmhints.initial_state = NormalState; - } - - XSetWMHints (GDK_WINDOW_XDISPLAY (win), - GDK_WINDOW_XWINDOW (win), - &wmhints); -} - /* This is such a broken stupid function. */ void xstuff_set_pos_size (GdkWindow *window, int x, int y, int w, int h) Index: xstuff.h =================================================================== RCS file: /cvs/gnome/gnome-panel/gnome-panel/xstuff.h,v retrieving revision 1.29 diff -u -p -r1.29 xstuff.h --- xstuff.h 7 Mar 2003 07:00:06 -0000 1.29 +++ xstuff.h 11 May 2005 08:50:48 -0000 @@ -9,8 +9,6 @@ void xstuff_delete_property (GdkWindow gboolean xstuff_is_compliant_wm (void); gboolean xstuff_net_wm_supports (const char *hint); -void xstuff_set_no_group (GdkWindow *win); - void xstuff_unsetup_desktop_area (void); void xstuff_set_pos_size (GdkWindow *window, int x, int y,