gedit-plugins r365 - trunk/plugins/bracketcompletion



Author: sfre
Date: Sun Jun 15 09:15:26 2008
New Revision: 365
URL: http://svn.gnome.org/viewvc/gedit-plugins?rev=365&view=rev

Log:
BracketCompletion: Drop reference to the GeditView when closing a tab

References to GeditViews were created on tab-added event but not
removed on tab-removed event. This caused Gedit not to remember the
last position of the cursor in the file.

Based on a patch by Oleg Andreev. Fixes bug 496504.


Modified:
   trunk/plugins/bracketcompletion/bracketcompletion.py

Modified: trunk/plugins/bracketcompletion/bracketcompletion.py
==============================================================================
--- trunk/plugins/bracketcompletion/bracketcompletion.py	(original)
+++ trunk/plugins/bracketcompletion/bracketcompletion.py	Sun Jun 15 09:15:26 2008
@@ -230,14 +230,17 @@
     def activate(self, window):
         for view in window.get_views():
             self.add_helper(view)
-            
-        handler_id = window.connect("tab-added",
-                                    lambda w, t: self.add_helper(t.get_view()))
-        window.set_data(self.WINDOW_DATA_KEY, handler_id)
+
+        added_hid = window.connect("tab-added",
+                                   lambda w, t: self.add_helper(t.get_view()))
+        removed_hid = window.connect("tab-removed",
+                                     lambda w, t: self.remove_helper(t.get_view()))
+        window.set_data(self.WINDOW_DATA_KEY, (added_hid, removed_hid))
     
     def deactivate(self, window):
-        handler_id = window.get_data(self.WINDOW_DATA_KEY)
-        window.disconnect(handler_id)
+        handlers = window.get_data(self.WINDOW_DATA_KEY)
+        for handler_id in handlers:
+            window.disconnect(handler)
         window.set_data(self.WINDOW_DATA_KEY, None)
         
         for view in window.get_views():



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