diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2006-09-13 17:23:14 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2006-09-13 17:23:14 +0000 |
commit | f2afe34b314ee81f8beb4bf0a90ea43d6a6986b8 (patch) | |
tree | 74677ff171f0f353122a4054dde05f120f710015 | |
parent | 91e69830af226ebfc70dec7a145645746dc65875 (diff) | |
download | gtk+-f2afe34b314ee81f8beb4bf0a90ea43d6a6986b8.tar.gz |
Fix the color picker with window groups
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | gtk/gtkcolorsel.c | 23 |
2 files changed, 23 insertions, 6 deletions
@@ -1,3 +1,9 @@ +2006-09-13 Matthias Clasen <mclasen@redhat.com> + + * gtk/gtkcolorsel.c: Use a GtkWindow instead of a GtkInvisible + for the grab widget, to make the color picker work with window + groups. + 2006-09-12 Hong Jen Yee <pcman.tw@gmail.com> signed off by: Dom Lachowicz diff --git a/gtk/gtkcolorsel.c b/gtk/gtkcolorsel.c index 6e66a000ce..9b21d3258e 100644 --- a/gtk/gtkcolorsel.c +++ b/gtk/gtkcolorsel.c @@ -1427,20 +1427,31 @@ get_screen_color (GtkWidget *button) GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (button)); GdkCursor *picker_cursor; GdkGrabStatus grab_status; + GtkWidget *grab_widget, *toplevel; + guint32 time = gtk_get_current_event_time (); if (priv->dropper_grab_widget == NULL) { - priv->dropper_grab_widget = gtk_invisible_new_for_screen (screen); + grab_widget = gtk_window_new (GTK_WINDOW_POPUP); + gtk_window_set_screen (GTK_WINDOW (grab_widget), screen); + gtk_window_resize (GTK_WINDOW (grab_widget), 1, 1); + gtk_window_move (GTK_WINDOW (grab_widget), -100, -100); + gtk_widget_show (grab_widget); - gtk_widget_add_events (priv->dropper_grab_widget, + gtk_widget_add_events (grab_widget, GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK); - gtk_widget_set_parent_window (priv->dropper_grab_widget, - GTK_WIDGET (colorsel)->window); - gtk_widget_show (priv->dropper_grab_widget); + toplevel = gtk_widget_get_toplevel (colorsel); + + if (GTK_IS_WINDOW (toplevel)) + { + if (GTK_WINDOW (toplevel)->group) + gtk_window_group_add_window (GTK_WINDOW (toplevel)->group, + GTK_WINDOW (grab_widget)); + } - gdk_window_set_user_data (priv->dropper_grab_widget->window, colorsel); + priv->dropper_grab_widget = grab_widget; } if (gdk_keyboard_grab (priv->dropper_grab_widget->window, |