Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-09-07 12:08:35 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-09-07 12:08:35 (GMT)
commit0318d6a17195dcfc8f3b7e5b1d71ff7ad10fdfd8 (patch)
tree3d372ea05993bf796ac1e66a0b6c5ed487ddd13d
parentca7669e06afabdcf1ac9e7a46d9a0b092e36e11f (diff)
Journal title editing unexpected behaviour requires two clicks to edit #1283
-rw-r--r--src/jarabe/journal/listview.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py
index 5e829bc..df1a713 100644
--- a/src/jarabe/journal/listview.py
+++ b/src/jarabe/journal/listview.py
@@ -478,9 +478,14 @@ class ListView(BaseListView):
def __init__(self):
BaseListView.__init__(self)
+ self._is_dragging = False
+
+ self.tree_view.connect('drag-begin', self.__drag_begin_cb)
+ self.tree_view.connect('button-release-event',
+ self.__button_release_event_cb)
- self.cell_title.props.editable = True
self.cell_title.connect('edited', self.__cell_title_edited_cb)
+ self.cell_title.connect('editing-canceled', self.__editing_canceled_cb)
self.cell_icon.connect('clicked', self.__icon_clicked_cb)
self.cell_icon.connect('detail-clicked', self.__detail_clicked_cb)
@@ -494,6 +499,27 @@ class ListView(BaseListView):
column.pack_start(cell_detail)
self.tree_view.append_column(column)
+ def __drag_begin_cb(self, widget, drag_context):
+ self._is_dragging = True
+
+ def __button_release_event_cb(self, tree_view, event):
+ try:
+ if self._is_dragging:
+ return
+ finally:
+ self._is_dragging = False
+
+ pos = tree_view.get_path_at_pos(int(event.x), int(event.y))
+ if pos is None:
+ return
+
+ path, column, x_, y_ = pos
+ if column != self._title_column:
+ return
+
+ self.cell_title.props.editable = True
+ tree_view.set_cursor_on_cell(path, column, start_editing=True)
+
def __detail_cell_clicked_cb(self, cell, path):
row = self.tree_view.get_model()[path]
self.emit('detail-clicked', row[ListModel.COLUMN_UID])
@@ -511,6 +537,10 @@ class ListView(BaseListView):
metadata = model.get(row[ListModel.COLUMN_UID])
metadata['title'] = new_text
model.write(metadata, update_mtime=False)
+ self.cell_title.props.editable = False
+
+ def __editing_canceled_cb(self, cell):
+ self.cell_title.props.editable = False
class CellRendererFavorite(CellRendererIcon):
__gtype_name__ = 'JournalCellRendererFavorite'