Changed input method for keyboard
[getaclue.git] / player_mainwindow.py
index 24fabf6..e167f03 100644 (file)
@@ -199,9 +199,6 @@ along with GetAClue.  If not, see <http://www.gnu.org/licenses/>."""
                # 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 <http://www.gnu.org/licenses/>."""
                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 <http://www.gnu.org/licenses/>."""
 
                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 <http://www.gnu.org/licenses/>."""
                                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