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)



_______________________________________________
Commit-gnue mailing list
Commit-gnue@gnu.org
http://lists.gnu.org/mailman/listinfo/commit-gnue

Reply via email to