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