[gtk+] Revert "gtk/gtkmain.c: Use accessor functions to access GtkWindowGroup"



commit ab248d7ca302305a166607dea10c5a6c701755a4
Author: Javier Jardón <jjardon gnome org>
Date:   Sat Sep 11 04:24:54 2010 +0200

    Revert "gtk/gtkmain.c: Use accessor functions to access GtkWindowGroup"
    
    This reverts commit 65b9fc3e5bbae5b5efb4568c02df60939956f722.

 gtk/gtkmain.c |   27 +++++++++++++++++----------
 1 files changed, 17 insertions(+), 10 deletions(-)
---
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index d2c44d3..6d9eca5 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);
       



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]