X-Git-Url: https://harishankar.org/repos/?p=getaclue.git;a=blobdiff_plain;f=player_mainwindow.py;h=e167f039571f99f1196bbdf1b21dbd67a8b4cdf4;hp=24fabf6033992d2172ec260aab1a522d8f3d0899;hb=ccfc49515acfe83e5cab9878d095de25024dab97;hpb=f75d1272342c253939b762073bd87a9432efc11e
diff --git a/player_mainwindow.py b/player_mainwindow.py
index 24fabf6..e167f03 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
@@ -262,7 +259,7 @@ along with GetAClue. If not, see ."""
if self.puzzle:
# set a guess only if not revealed
if self.puzzle.data[self.selected_row][self.selected_col].revealed is False:
- self.puzzle.data[self.selected_row][self.selected_col].guess = guess_char.upper ()
+ self.puzzle.data[self.selected_row][self.selected_col].guess = guess_char
# across mode typing
if self.typing_mode == self.ACROSS:
# move by one character across but only if there is no block
@@ -324,9 +321,10 @@ along with GetAClue. If not, see ."""
return False
- # callback for puzzle grid key release event
- def on_puzzlegrid_key_press_event (self, drawarea, event):
+ # callback for main window key release event
+ def on_mainwindow_key_press_event (self, window, event):
if self.puzzle:
+ drawarea = self.ui.get_object ("puzzlegrid")
key = gtk.gdk.keyval_name (event.keyval).lower ()
if event.state == gtk.gdk.SHIFT_MASK and key == "up":
@@ -355,12 +353,18 @@ along with GetAClue. If not, see ."""
drawarea.queue_draw ()
# if it is A-Z or a-z then
elif len (key) == 1 and key.isalpha ():
- self.set_guess (key)
+ guess_char = key.upper ()
+ self.set_guess (guess_char)
drawarea.queue_draw ()
# if it is the delete key then delete character at selected row/col
- elif key == "delete" or key == "space":
+ elif key == "delete":
self.puzzle.data[self.selected_row][self.selected_col].guess = None
drawarea.queue_draw ()
+ # 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 ()
# 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