Index: code/branches/usability/data/defaultConfig/keybindings.ini
===================================================================
--- code/branches/usability/data/defaultConfig/keybindings.ini	(revision 8034)
+++ code/branches/usability/data/defaultConfig/keybindings.ini	(revision 8035)
@@ -19,5 +19,5 @@
 KeyDelete="scale 1 rotateRoll"
 KeyDivide=
-KeyDown="scale -1 moveFrontBack"
+KeyDown="scale -1 moveFrontBack | navigateGUI down"
 KeyE="scale -1 rotateRoll"
 KeyEnd=boost
@@ -52,5 +52,5 @@
 KeyKanji=
 KeyL=
-KeyLeft="scale -1 moveRightLeft"
+KeyLeft="scale -1 moveRightLeft | navigateGUI left"
 KeyLeftAlt=
 KeyLeftBracket=
@@ -93,5 +93,5 @@
 KeyNumpadAdd=
 KeyNumpadComma=
-KeyNumpadEnter=
+KeyNumpadEnter="navigateGUI enter"
 KeyNumpadEquals=
 KeyNumpadPeriod=
@@ -108,6 +108,6 @@
 KeyQ="scale 1 rotateRoll"
 KeyR="scale 1 moveUpDown"
-KeyReturn=
-KeyRight="scale 1 moveRightLeft"
+KeyReturn="navigateGUI enter"
+KeyRight="scale 1 moveRightLeft | navigateGUI right"
 KeyRightAlt=
 KeyRightBracket=
@@ -126,5 +126,5 @@
 KeyTab="NewHumanController changeMode"
 KeyU=""
-KeyUP="scale 1 moveFrontBack"
+KeyUP="scale 1 moveFrontBack | navigateGUI up"
 KeyUnassigned="InGameConsole openConsole"
 KeyUnderline=
Index: code/branches/usability/data/gui/scripts/GUISheet.lua
===================================================================
--- code/branches/usability/data/gui/scripts/GUISheet.lua	(revision 8034)
+++ code/branches/usability/data/gui/scripts/GUISheet.lua	(revision 8035)
@@ -29,5 +29,5 @@
 
 -- Override this function if you want to react on keystrokes
-function P:onKeyPressed()
+function P:onKeyPressed(mode)
 end
 
@@ -85,20 +85,20 @@
 
 -- Handles key pressed while the gui sheed is displayed
-function P:keyPressed()
+function P:keyPressed(mode)
     if self.buttons then
-        if code == "208" then     -- key down
+        if mode == "down" then     -- key down
             self:moveSelectionRow(1)
-        elseif code == "200" then -- key up
+        elseif mode == "up" then -- key up
             self:moveSelectionRow(-1)
-        elseif code == "205" then -- key right
+        elseif mode == "right" then -- key right
             self:moveSelectionColumn(1)
-        elseif code == "203" then -- key left
+        elseif mode == "left" then -- key left
             self:moveSelectionColumn(-1)
-        elseif code == "28" or code == "156"  then -- key enter or key numpad enter
+        elseif mode == "enter" then -- key enter or key numpad enter
             self:pressSelectedButton()
         end
     end
 
-    self:onKeyPressed()
+    self:onKeyPressed(mode)
 end
 
Index: code/branches/usability/data/gui/scripts/GraphicsMenu.lua
===================================================================
--- code/branches/usability/data/gui/scripts/GraphicsMenu.lua	(revision 8034)
+++ code/branches/usability/data/gui/scripts/GraphicsMenu.lua	(revision 8035)
@@ -1,5 +1,5 @@
 -- GraphicsMenu.lua
 
-local P = createMenuSheet("GraphicsMenu")
+local P = createMenuSheet("GraphicsMenu", true, TriBool.True, TriBool.True)
 
 P.resolutionList = {"custom", "640 x 480", "720 x 480", "720 x 576", "800 x 600", "1024 x 600", "1024 x 768", "1152 x 864", "1280 x 720", "1280 x 800", "1280 x 960", "1280 x 1024", "1360 x 768", "1440 x 900", "1600 x 900", "1600 x 1200", "1680 x 1050"}
Index: code/branches/usability/data/gui/scripts/MenuSheet.lua
===================================================================
--- code/branches/usability/data/gui/scripts/MenuSheet.lua	(revision 8034)
+++ code/branches/usability/data/gui/scripts/MenuSheet.lua	(revision 8035)
@@ -16,5 +16,5 @@
     newSheet.bHidePrevious  = handleDefArg(_bHidePrevious,  true)
     newSheet.tShowCursor    = handleDefArg(_tShowCusor,     TriBool.True)
-    newSheet.tUseKeyboard   = handleDefArg(_tUseKeyboard,   TriBool.True)
+    newSheet.tUseKeyboard   = handleDefArg(_tUseKeyboard,   TriBool.Dontcare)
     newSheet.bBlockJoyStick = handleDefArg(_bBlockJoyStick, false)
 
Index: code/branches/usability/data/gui/scripts/SheetManager.lua
===================================================================
--- code/branches/usability/data/gui/scripts/SheetManager.lua	(revision 8034)
+++ code/branches/usability/data/gui/scripts/SheetManager.lua	(revision 8035)
@@ -5,7 +5,6 @@
 local activeMenuSheets = {size = 0, topSheetTuple = nil}
 local menuSheetsRoot = guiMgr:getMenuRootWindow()
-local bInGameConsoleClosed = false
 local mainMenuLoaded = false
-orxonox.GUIManager:subscribeEventHelper(menuSheetsRoot, "KeyDown", "keyPressed")
+--orxonox.GUIManager:subscribeEventHelper(menuSheetsRoot, "KeyDown", "keyPressed")
 orxonox.GUIManager:subscribeEventHelper(menuSheetsRoot, "Sized", "windowResized")
 
@@ -132,4 +131,8 @@
     if previous and previous.pressedEnter and menuSheet:hasSelection() == false then
         menuSheet:setSelectionNear(1, 1)
+    end
+
+    if activeMenuSheets.size > 0 then
+        guiMgr:guisActiveChanged(true)
     end
 
@@ -204,4 +207,8 @@
     end
 
+    if activeMenuSheets.size == 0 then
+        guiMgr:guisActiveChanged(false)
+    end
+
     sheetTuple.sheet:quit()
 end
@@ -217,11 +224,5 @@
     -- HUGE, very HUGE hacks!
 
-    -- If the InGameConsole is active, ignore the ESC command.
-    if bInGameConsoleClosed == true then
-        bInGameConsoleClosed = false
-        return
-    end
-
-    -- Count the number of sheets that don't need input till the first that does.
+    -- Count the number of sheets that don't need input until the first that does.
     local counter = noInputSheetIndex()
 
@@ -237,17 +238,9 @@
 end
 
-function keyPressed(e)
-    local we = tolua.cast(e, "CEGUI::KeyEventArgs")
+-- Function to navigate the GUI, is called by the GUIManager, whenever a relevant key is pressed.
+-- The mode specifies the action to be taken.
+function navigateGUI(mode)
     local sheet = activeMenuSheets[activeMenuSheets.size]
-    code = tostring(we.scancode)
-    -- Some preprocessing
-    if not mainMenuLoaded and not sheet.bNoInput then
-        if code == "1" then
-            keyESC()
-        elseif code == "0"then
-            orxonox.CommandExecutor:execute("InGameConsole openConsole")
-        end
-    end
-    sheet.sheet:keyPressed()
+    sheet.sheet:keyPressed(mode)
 end
 
@@ -293,8 +286,4 @@
     end
     return counter
-end
-
-function inGameConsoleClosed()
-    bInGameConsoleClosed = not bInGameConsoleClosed;
 end
 
