From ab248d7ca302305a166607dea10c5a6c701755a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jard=C3=B3n?= Date: Sat, 11 Sep 2010 04:24:54 +0200 Subject: [PATCH] Revert "gtk/gtkmain.c: Use accessor functions to access GtkWindowGroup" This reverts commit 65b9fc3e5bbae5b5efb4568c02df60939956f722. --- gtk/gtkmain.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index d2c44d3dc7..6d9eca5a7f 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -1606,8 +1606,8 @@ gtk_main_do_event (GdkEvent *event) if (device) grab_widget = gtk_window_group_get_current_device_grab (window_group, device); - if (!grab_widget) - grab_widget = gtk_window_group_get_current_grab (window_group); + if (!grab_widget && window_group->grabs) + grab_widget = window_group->grabs->data; /* If the grab widget is an ancestor of the event widget * then we send the event to the original event widget. @@ -1650,8 +1650,7 @@ gtk_main_do_event (GdkEvent *event) case GDK_DELETE: g_object_ref (event_widget); - grab_widget = gtk_window_group_get_current_grab (window_group); - if ((!grab_widget || gtk_widget_get_toplevel (grab_widget) == event_widget) && + if ((!window_group->grabs || gtk_widget_get_toplevel (window_group->grabs->data) == event_widget) && !gtk_widget_event (event_widget, event)) gtk_widget_destroy (event_widget); g_object_unref (event_widget); @@ -2014,10 +2013,13 @@ gtk_grab_add (GtkWidget *widget) group = gtk_main_get_window_group (widget); - old_grab_widget = gtk_window_group_get_current_grab (group); + if (group->grabs) + old_grab_widget = (GtkWidget *)group->grabs->data; + else + old_grab_widget = NULL; g_object_ref (widget); - //group->grabs = g_slist_prepend (group->grabs, widget); + group->grabs = g_slist_prepend (group->grabs, widget); gtk_grab_notify (group, NULL, old_grab_widget, widget, TRUE); } @@ -2030,7 +2032,9 @@ gtk_grab_get_current (void) group = gtk_main_get_window_group (NULL); - return gtk_window_group_get_current_grab (group); + if (group->grabs) + return GTK_WIDGET (group->grabs->data); + return NULL; } void @@ -2046,9 +2050,12 @@ gtk_grab_remove (GtkWidget *widget) _gtk_widget_set_has_grab (widget, FALSE); group = gtk_main_get_window_group (widget); - //group->grabs = g_slist_remove (group->grabs, widget); - - new_grab_widget = gtk_window_group_get_current_grab (group); + group->grabs = g_slist_remove (group->grabs, widget); + + if (group->grabs) + new_grab_widget = (GtkWidget *)group->grabs->data; + else + new_grab_widget = NULL; gtk_grab_notify (group, NULL, widget, new_grab_widget, FALSE);