X-Git-Url: https://harishankar.org/repos/?p=getaclue.git;a=blobdiff_plain;f=player_mainwindow.py;h=6ba91371cef65dd14317a6e0c9543f94ef87fe01;hp=8ffdb16c05ae8d142f80d29a92c9ded8af80b9a6;hb=HEAD;hpb=366da234706d16d54502d2a6501b43cfb29e9615 diff --git a/player_mainwindow.py b/player_mainwindow.py index 8ffdb16..6ba9137 100644 --- a/player_mainwindow.py +++ b/player_mainwindow.py @@ -199,9 +199,6 @@ along with GetAClue. If not, see .""" # update the puzzle grid puzgrid = self.ui.get_object ("puzzlegrid") - # set focus to the puzzle grid - self.window.set_focus (puzgrid) - puzgrid.queue_draw () # callback for tree view "across" being activated @@ -214,6 +211,10 @@ along with GetAClue. If not, see .""" self.set_selection_of_num (anum) + # focus on the drawing area + puzgrid = self.ui.get_object ("puzzlegrid") + self.window.set_focus (puzgrid) + return False # callback for tree view "down" being activated @@ -226,6 +227,10 @@ along with GetAClue. If not, see .""" self.set_selection_of_num (dnum, False) + # focus on the drawing area + puzgrid = self.ui.get_object ("puzzlegrid") + self.window.set_focus (puzgrid) + # moving the current selection in grid by one up or down def move_selection_updown (self, step): # increase or reduce the row by step until an occupied grid is found @@ -324,58 +329,65 @@ along with GetAClue. If not, see .""" return False - # callback for puzzle grid key release event + # callback for main window key release event def on_puzzlegrid_key_press_event (self, drawarea, event): if self.puzzle: key = gtk.gdk.keyval_name (event.keyval).lower () - if event.state == gtk.gdk.SHIFT_MASK and key == "up": + if key == "up": # reduce the row by 1 until you find an occupied grid and not a # black block self.move_selection_updown (-1) self.typing_mode = self.DOWN drawarea.queue_draw () - elif event.state == gtk.gdk.SHIFT_MASK and key == "down": + return True + elif key == "down": # increase the row by 1 until you find an occupied grid and not a # black block self.move_selection_updown (1) self.typing_mode = self.DOWN drawarea.queue_draw () - elif event.state == gtk.gdk.SHIFT_MASK and key == "right": + return True + elif key == "right": # increase the column by 1 until you find an occupied grid and not # a black block self.move_selection_across (1) self.typing_mode = self.ACROSS drawarea.queue_draw () - elif event.state == gtk.gdk.SHIFT_MASK and key == "left": + return True + elif key == "left": # decrease the column by 1 until you find an occupied grid and not # a black block self.move_selection_across (-1) self.typing_mode = self.ACROSS drawarea.queue_draw () + return True # if it is A-Z or a-z then elif len (key) == 1 and key.isalpha (): guess_char = key.upper () self.set_guess (guess_char) drawarea.queue_draw () + return True # if it is the delete key then delete character at selected row/col elif key == "delete": self.puzzle.data[self.selected_row][self.selected_col].guess = None drawarea.queue_draw () + return True # if the key is space key then delete character and move across or # down one step depending on the mode elif key == "space": self.set_guess (None) drawarea.queue_draw () + return True # if it is backspace key then delete character at previous row/col # depending on the input mode. If across editing mode, then delete # at previous column else at previous row elif key == "backspace": self.delete_prev_guess () drawarea.queue_draw () + return True return False - # puzzle grid focus in event def on_puzzlegrid_focus_out_event (self, drawarea, event): if self.puzzle: