Here is a third patch that does all of the functionality correctly.
This fixes the bookmark and file panes.
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
#   5e9a85ozpm13r4yy
# target_branch: https://code.launchpad.net/~bzr-gtk/bzr-gtk/trunk
# testament_sha1: f879cce465f06e8279fb36cc32c1483f66b27f87
# timestamp: 2008-07-19 02:37:11 -0400
# source_branch: https://code.launchpad.net/~bzr-gtk/bzr-gtk/trunk
# base_revision_id: [EMAIL PROTECTED]
# 
# Begin patch
=== modified file 'olive.glade'
--- olive.glade	2008-03-30 14:12:10 +0000
+++ olive.glade	2008-07-19 06:36:14 +0000
@@ -515,7 +515,6 @@
                     <property name="can_focus">True</property>
                     <property name="headers_visible">False</property>
                     <signal name="button_press_event" handler="on_treeview_left_button_press_event"/>
-                    <signal name="button_release_event" handler="on_treeview_left_button_release_event"/>
                     <signal name="row_activated" handler="on_treeview_left_row_activated"/>
                   </widget>
                 </child>

=== modified file 'olive/__init__.py'
--- olive/__init__.py	2008-07-18 18:25:39 +0000
+++ olive/__init__.py	2008-07-19 06:36:14 +0000
@@ -202,7 +202,6 @@
                 "on_treeview_right_button_press_event": self.on_treeview_right_button_press_event,
                 "on_treeview_right_row_activated": self.on_treeview_right_row_activated,
                 "on_treeview_left_button_press_event": self.on_treeview_left_button_press_event,
-                "on_treeview_left_button_release_event": self.on_treeview_left_button_release_event,
                 "on_treeview_left_row_activated": self.on_treeview_left_row_activated,
                 "on_button_location_up_clicked": self.on_button_location_up_clicked,
                 "on_button_location_jump_clicked": self.on_button_location_jump_clicked,
@@ -822,34 +821,34 @@
             self.refresh_right()
             
     def on_treeview_left_button_press_event(self, widget, event):
-        """ Occurs when somebody right-clicks in the bookmark list. """
-        if event.button == 3:
-            # Don't show context with nothing selected
-            if self.get_selected_left() == None:
-                return
-
-            # Create a menu
-            from menu import OliveMenu
-            menu = OliveMenu(path=self.get_path(),
-                             selected=self.get_selected_left(),
-                             app=self)
-            
-            menu.left_context_menu().popup(None, None, None, 0,
-                                           event.time)
-
-    def on_treeview_left_button_release_event(self, widget, event):
-        """ Occurs when somebody just clicks a bookmark. """
-        if event.button != 3:
-            # Allow one-click bookmark opening
-            if self.get_selected_left() == None:
-                return
-            
-            newdir = self.get_selected_left()
-            if newdir == None:
-                return
-
-            if self.set_path(newdir):
-                self.refresh_right()
+        """ Occurs when somebody clicks in the bookmark list. """
+        treepathpos = widget.get_path_at_pos(int(event.x), int(event.y))
+        treeselection = widget.get_selection()
+        if treepathpos is not None:
+            treeselection.select_path(treepathpos[0])
+            if event.button == 1:
+                newdir = self.get_selected_left()
+                if newdir == None:
+                    return
+
+                if self.set_path(newdir):
+                    self.refresh_right()
+            elif event.button == 3:
+                # Don't show context with nothing selected
+                if self.get_selected_left() == None:
+                    return
+
+                # Create a menu
+                from menu import OliveMenu
+                menu = OliveMenu(path=self.get_path(),
+                                 selected=self.get_selected_left(),
+                                 app=self)
+                
+                menu.left_context_menu().popup(None, None, None, 0,
+                                               event.time)
+        else:
+            if treeselection is not None:
+                treeselection.unselect_all()
 
     def on_treeview_left_row_activated(self, treeview, path, view_column):
         """ Occurs when somebody double-clicks or enters an item in the
@@ -863,8 +862,19 @@
             self.refresh_right()
 
     def on_treeview_right_button_press_event(self, widget, event):
-        """ Occurs when somebody right-clicks in the file list. """
-        if event.button == 3:
+        """ Occurs when somebody clicks in the file list. """
+        treepathpos = widget.get_path_at_pos(int(event.x), int(event.y))
+        if event.button == 1:
+            if treepathpos is None and widget.get_selection is not None:
+                treeselection = widget.get_selection()
+                treeselection.unselect_all()
+        elif event.button == 3:
+            treeselection = widget.get_selection()
+            if treepathpos is not None:
+                treeselection.select_path(treepathpos[0])
+            else:
+                if treeselection is not None:
+                    treeselection.unselect_all()
             # Create a menu
             from menu import OliveMenu
             menu = OliveMenu(path=self.get_path(),
@@ -874,6 +884,7 @@
             m_open = menu.ui.get_widget('/context_right/open')
             m_add = menu.ui.get_widget('/context_right/add')
             m_remove = menu.ui.get_widget('/context_right/remove')
+            m_remove_and_delete = menu.ui.get_widget('/context_right/remove_and_delete')
             m_rename = menu.ui.get_widget('/context_right/rename')
             m_revert = menu.ui.get_widget('/context_right/revert')
             m_commit = menu.ui.get_widget('/context_right/commit')
@@ -887,24 +898,40 @@
                     m_open.set_sensitive(False)
                     m_add.set_sensitive(False)
                     m_remove.set_sensitive(False)
+                    m_remove_and_delete.set_sensitive(False)
                     m_rename.set_sensitive(False)
                     m_revert.set_sensitive(False)
                     m_commit.set_sensitive(False)
                     m_annotate.set_sensitive(False)
                     m_diff.set_sensitive(False)
                 else:
+                    if treepathpos is None:
+                        m_open.set_sensitive(False)
+                        m_add.set_sensitive(False)
+                        m_remove.set_sensitive(False)
+                        m_remove_and_delete.set_sensitive(False)
+                        m_rename.set_sensitive(False)
+                        m_annotate.set_sensitive(False)
+                        m_diff.set_sensitive(False)
+                        m_revert.set_sensitive(False)
+                    else:
+                        m_open.set_sensitive(True)
+                        m_add.set_sensitive(True)
+                        m_remove.set_sensitive(True)
+                        m_remove_and_delete.set_sensitive(True)
+                        m_rename.set_sensitive(True)
+                        m_annotate.set_sensitive(True)
+                        m_diff.set_sensitive(True)
+                        m_revert.set_sensitive(True)
+                    m_commit.set_sensitive(True)
+            except bzrerrors.NotBranchError:
+                if treepathpos is None:
+                    m_open.set_sensitive(False)
+                else:
                     m_open.set_sensitive(True)
-                    m_add.set_sensitive(True)
-                    m_remove.set_sensitive(True)
-                    m_rename.set_sensitive(True)
-                    m_revert.set_sensitive(True)
-                    m_commit.set_sensitive(True)
-                    m_annotate.set_sensitive(True)
-                    m_diff.set_sensitive(True)
-            except bzrerrors.NotBranchError:
-                m_open.set_sensitive(True)
                 m_add.set_sensitive(False)
                 m_remove.set_sensitive(False)
+                m_remove_and_delete.set_sensitive(False)
                 m_rename.set_sensitive(False)
                 m_revert.set_sensitive(False)
                 m_commit.set_sensitive(False)

# Begin bundle
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
-- 
bzr-gtk mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.canonical.com/mailman/listinfo/bzr-gtk

Reply via email to