From 016ebbe292fefea010641542010fcd3be995fca2 Mon Sep 17 00:00:00 2001
From: Aleksey Lim <alsroot@member.fsf.org>
Date: Sun, 6 Sep 2009 16:38:50 +0000
Subject: Journal title editing unexpected behaviour requires two clicks to edit #1283
---
src/jarabe/journal/listview.py | 32 +++++++++++++++++++++++++++++++-
1 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py
index badeb24..3726ee7 100644
a
|
b
|
class ListView(BaseListView): |
474 | 474 | |
475 | 475 | def __init__(self): |
476 | 476 | BaseListView.__init__(self) |
| 477 | self._is_dragging = False |
| 478 | |
| 479 | self.tree_view.connect('drag-begin', self.__drag_begin_cb) |
| 480 | self.tree_view.connect('button-release-event', |
| 481 | self.__button_release_event_cb) |
477 | 482 | |
478 | | self.cell_title.props.editable = True |
479 | 483 | self.cell_title.connect('edited', self.__cell_title_edited_cb) |
| 484 | self.cell_title.connect('editing-canceled', self.__editing_canceled_cb) |
480 | 485 | |
481 | 486 | self.cell_icon.connect('clicked', self.__icon_clicked_cb) |
482 | 487 | self.cell_icon.connect('detail-clicked', self.__detail_clicked_cb) |
… |
… |
class ListView(BaseListView): |
490 | 495 | column.pack_start(cell_detail) |
491 | 496 | self.tree_view.append_column(column) |
492 | 497 | |
| 498 | def __drag_begin_cb(self, widget, drag_context): |
| 499 | self._is_dragging = True |
| 500 | |
| 501 | def __button_release_event_cb(self, tree_view, event): |
| 502 | try: |
| 503 | if self._is_dragging: |
| 504 | return |
| 505 | finally: |
| 506 | self._is_dragging = False |
| 507 | |
| 508 | pos = tree_view.get_path_at_pos(int(event.x), int(event.y)) |
| 509 | if pos is None: |
| 510 | return |
| 511 | |
| 512 | path, column, x_, y_ = pos |
| 513 | if column != self._title_column: |
| 514 | return |
| 515 | |
| 516 | self.cell_title.props.editable = True |
| 517 | tree_view.set_cursor_on_cell(path, column, start_editing=True) |
| 518 | |
493 | 519 | def __detail_cell_clicked_cb(self, cell, path): |
494 | 520 | row = self.tree_view.get_model()[path] |
495 | 521 | self.emit('detail-clicked', row[ListModel.COLUMN_UID]) |
… |
… |
class ListView(BaseListView): |
507 | 533 | metadata = model.get(row[ListModel.COLUMN_UID]) |
508 | 534 | metadata['title'] = new_text |
509 | 535 | model.write(metadata, update_mtime=False) |
| 536 | self.cell_title.props.editable = False |
| 537 | |
| 538 | def __editing_canceled_cb(self, cell): |
| 539 | self.cell_title.props.editable = False |
510 | 540 | |
511 | 541 | class CellRendererFavorite(CellRendererIcon): |
512 | 542 | __gtype_name__ = 'JournalCellRendererFavorite' |