diff --git a/Changes.txt b/Changes.txt
index c6489c0d4..897c712b9 100644
--- a/Changes.txt
+++ b/Changes.txt
@@ -35,6 +35,9 @@
* The 'listdelay' command now accepts a value of zero, indicating that
list-skipping (jumping to a line in a list by keypress) is disabled.
+ * The 'ctrlcombo' command now has a GUI item, allowing it to be changed
+ from within the application.
+
* Added 'Shift-Alt/Shift-Cmd s' keyboard shortcut, to enable continuous
snapshot mode for each frame. This is really only useful if you
save snapshots in 1x mode; using it in high-resolution mode is
diff --git a/docs/graphics/eventmapping_devsports.png b/docs/graphics/eventmapping_devsports.png
index a06b12958..af7762d98 100644
Binary files a/docs/graphics/eventmapping_devsports.png and b/docs/graphics/eventmapping_devsports.png differ
diff --git a/docs/index.html b/docs/index.html
index 57f3bf78d..9e87fa858 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -2617,7 +2617,9 @@
Mouse paddle sensitivity | Sensitivity used when emulating a paddle using a mouse | -msense |
Allow all 4 ... | Allow all 4 joystick directions to be pressed simultaneously | -joyallow4 |
Grab mouse ... | Keep mouse in window in emulation mode | -grabmouse |
- Always hide mouse ... | completely disable showing the mouse cursor | -hidemouse |
+ Always hide mouse ... | Completely disable showing the mouse cursor | -hidemouse |
+ Use Control key combos | Enable using Control key in keyboard actions | -ctrlcombo |
+ Show Joystick Database | Show all joysticks that Stella knows about, with the option to remove them | |
diff --git a/src/gui/InputDialog.cxx b/src/gui/InputDialog.cxx
index 5e5e4def3..bc84e3613 100644
--- a/src/gui/InputDialog.cxx
+++ b/src/gui/InputDialog.cxx
@@ -47,7 +47,7 @@ InputDialog::InputDialog(OSystem& osystem, DialogContainer& parent,
// Set real dimensions
_w = BSPF_min(50 * fontWidth + 10, max_w);
- _h = BSPF_min(14 * (lineHeight + 4) + 14, max_h);
+ _h = BSPF_min(15 * (lineHeight + 4) + 14, max_h);
// The tab widget
xpos = 2; ypos = vBorder;
@@ -202,11 +202,18 @@ void InputDialog::addDevicePortTab(const GUI::Font& font)
myHideCursor->clearFlags(WIDGET_ENABLED);
#endif
+ // Enable/disable control key-combos
+ ypos += lineHeight + 4;
+ myCtrlCombo = new CheckboxWidget(myTab, font, xpos, ypos,
+ "Use Control key combos");
+ wid.push_back(myCtrlCombo);
+
// Show joystick database
xpos += 20; ypos += lineHeight + 8;
myJoyDlgButton = new ButtonWidget(myTab, font, xpos, ypos,
font.getStringWidth("Show Joystick Database") + 20, font.getLineHeight() + 4,
"Show Joystick Database", kDBButtonPressed);
+ wid.push_back(myJoyDlgButton);
// Add items for virtual device ports
addToFocusList(wid, myTab, tabID);
@@ -244,6 +251,9 @@ void InputDialog::loadConfig()
// Hide cursor
myHideCursor->setState(instance().settings().getBool("hidecursor"));
+ // Enable/disable control key-combos
+ myCtrlCombo->setState(instance().settings().getBool("ctrlcombo"));
+
myTab->loadConfig();
}
@@ -283,6 +293,9 @@ void InputDialog::saveConfig()
instance().settings().setValue("grabmouse", myGrabMouse->getState());
instance().settings().setValue("hidecursor", myHideCursor->getState());
instance().frameBuffer().setCursorState();
+
+ // Enable/disable control key-combos
+ instance().settings().setValue("ctrlcombo", myCtrlCombo->getState());
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -328,6 +341,9 @@ void InputDialog::setDefaults()
// Hide cursor
myHideCursor->setState(false);
+ // Enable/disable control key-combos
+ myCtrlCombo->setState(true);
+
break;
}
diff --git a/src/gui/InputDialog.hxx b/src/gui/InputDialog.hxx
index 4f8d9dead..50f1183de 100644
--- a/src/gui/InputDialog.hxx
+++ b/src/gui/InputDialog.hxx
@@ -82,6 +82,7 @@ class InputDialog : public Dialog
CheckboxWidget* myAllowAll4;
CheckboxWidget* myGrabMouse;
CheckboxWidget* myHideCursor;
+ CheckboxWidget* myCtrlCombo;
ButtonWidget* myJoyDlgButton;