Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/journal/listview.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/jarabe/journal/listview.py')
-rw-r--r--src/jarabe/journal/listview.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py
index d0bcc15..3366def 100644
--- a/src/jarabe/journal/listview.py
+++ b/src/jarabe/journal/listview.py
@@ -28,6 +28,7 @@ from sugar.graphics.icon import CellRendererIcon
from sugar.graphics.xocolor import XoColor
from sugar import util
+from jarabe.journal.source import Source
from jarabe.journal.listmodel import ListModel
from jarabe.journal.palettes import ObjectPalette, BuddyPalette
from jarabe.journal import model
@@ -39,7 +40,10 @@ class ListView(gtk.TreeView):
__gsignals__ = {
'detail-clicked': (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
- ([object]))
+ ([object])),
+ 'entry-activated': (gobject.SIGNAL_RUN_FIRST,
+ gobject.TYPE_NONE,
+ ([str])),
}
def __init__(self):
@@ -73,6 +77,24 @@ class ListView(gtk.TreeView):
self.connect('notify::hover-selection',
self.__notify_hover_selection_cb)
+ self.connect('button-release-event', self.__button_release_event_cb)
+
+ def __button_release_event_cb(self, tree_view, event):
+ if not tree_view.props.hover_selection:
+ return False
+
+ if event.window != tree_view.get_bin_window():
+ return False
+
+ pos = tree_view.get_path_at_pos(event.x, event.y)
+ if pos is None:
+ return False
+
+ path, column_, x_, y_ = pos
+ uid = tree_view.get_model()[path][Source.FIELD_UID]
+ self.emit('entry-activated', uid)
+
+ return False
def __notify_hover_selection_cb(self, widget, pspec):
self.cell_icon.props.show_palette = not self.props.hover_selection