[gnome-games] Support single-click game selection



commit 911d8236b47004cfad518d69266b11f91d4418a6
Author: Jim Ross <jimbo dimensia com>
Date:   Wed Apr 21 11:44:03 2010 +1000

    Support single-click game selection

 gnome-sudoku/src/lib/game_selector.py |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/gnome-sudoku/src/lib/game_selector.py b/gnome-sudoku/src/lib/game_selector.py
index ce461be..db38d3d 100644
--- a/gnome-sudoku/src/lib/game_selector.py
+++ b/gnome-sudoku/src/lib/game_selector.py
@@ -105,7 +105,9 @@ class NewOrSavedGameSelector:
             view.set_spacing(12)
             view.set_selection_mode(gtk.SELECTION_SINGLE)
         saved_game_view.connect('item-activated', self.saved_item_activated_cb)
+        saved_game_view.connect('button-press-event', self.item_clicked_cb)
         new_game_view.connect('item-activated', self.new_item_activated_cb)
+        new_game_view.connect('button-press-event', self.item_clicked_cb)
 
     @simple_debug
     def make_new_game_model (self):
@@ -180,6 +182,23 @@ class NewOrSavedGameSelector:
         self.resume_game(iconview.get_model()[path][3])
 
     @simple_debug
+    def item_clicked_cb (self, wdgt, evt):
+        '''Single click event handler
+
+        This callback activates the selected icon with a single click.
+        '''
+        if evt.button != 1:
+            return False
+        # See if the player clicked an icon
+        position = wdgt.get_path_at_pos(int(evt.x), int(evt.y))
+        if not position:
+            return False
+        # Select it, redraw it(strictly aesthetic), and then activate it
+        wdgt.select_path(position)
+        wdgt.get_parent_window().process_updates(False)
+        wdgt.item_activated(position)
+
+    @simple_debug
     def resume_game (self, jar):
         self.puzzle = (self.SAVED_GAME, jar)
         self.dialog.emit('response', gtk.RESPONSE_OK)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]