commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r7934 - trunk/gnue-forms/src/uidrivers/gtk2


From: johannes
Subject: [gnue] r7934 - trunk/gnue-forms/src/uidrivers/gtk2
Date: Wed, 28 Sep 2005 12:35:26 -0500 (CDT)

Author: johannes
Date: 2005-09-21 00:15:02 -0500 (Wed, 21 Sep 2005)
New Revision: 7934

Modified:
   trunk/gnue-forms/src/uidrivers/gtk2/ToolBar.py
Log:
Block- and Unblock toggle events when toggle called from outside


Modified: trunk/gnue-forms/src/uidrivers/gtk2/ToolBar.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/ToolBar.py      2005-09-20 17:16:02 UTC 
(rev 7933)
+++ trunk/gnue-forms/src/uidrivers/gtk2/ToolBar.py      2005-09-21 05:15:02 UTC 
(rev 7934)
@@ -88,10 +88,12 @@
     if self._useNewGTKAPI:
       if userAction.canToggle:
         button = gtk.ToggleToolButton ()
-        button.connect ('toggled', self._toggleEvent, userAction)
+        button._toggleHandler = button.connect ('toggled', self._toggleEvent,
+            userAction)
       else:
         button = gtk.ToolButton ()
         button.connect ('clicked', self._buttonPress, userAction)
+        button._toggleHandler = None
 
       button.set_icon_widget (icon)
       button.set_label (label)
@@ -171,13 +173,31 @@
   # ---------------------------------------------------------------------------
 
   def startingItem (self, item):
-    if item is not None:
-      item.set_active (1)
 
+    if item._toggleHandler:
+      item.handler_block (item._toggleHandler)
+
+    try:
+      if item is not None:
+        item.set_active (1)
+
+    finally:
+      if item._toggleHandler:
+        item.handler_unblock (item._toggleHandler)
+
   # ---------------------------------------------------------------------------
   # Set an item inactive
   # ---------------------------------------------------------------------------
 
   def endingItem (self, item):
-    if item is not None:
-      item.set_active (0)
+
+    if item._toggleHandler:
+      item.handler_block (item._toggleHandler)
+
+    try:
+      if item is not None:
+        item.set_active (0)
+
+    finally:
+      if item._toggleHandler:
+        item.handler_unblock (item._toggleHandler)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]