|
@@ -20,6 +20,12 @@
|
|
|
#include "camera.h"
|
|
#include "camera.h"
|
|
|
#include "graphicsPipeSelection.h"
|
|
#include "graphicsPipeSelection.h"
|
|
|
|
|
|
|
|
|
|
+#ifdef WIN32
|
|
|
|
|
+#include <windows.h> // For SystemParametersInfo()
|
|
|
|
|
+STICKYKEYS g_StartupStickyKeys = {sizeof(STICKYKEYS), 0};
|
|
|
|
|
+TOGGLEKEYS g_StartupToggleKeys = {sizeof(TOGGLEKEYS), 0};
|
|
|
|
|
+FILTERKEYS g_StartupFilterKeys = {sizeof(FILTERKEYS), 0};
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
ConfigureDef(config_showbase);
|
|
ConfigureDef(config_showbase);
|
|
|
ConfigureFn(config_showbase) {
|
|
ConfigureFn(config_showbase) {
|
|
@@ -85,6 +91,61 @@ query_fullscreen_testresult(int xsize, int ysize) {
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+void
|
|
|
|
|
+store_accessibility_shortcut_keys() {
|
|
|
|
|
+#ifdef WIN32
|
|
|
|
|
+ SystemParametersInfo(SPI_GETSTICKYKEYS, sizeof(STICKYKEYS), &g_StartupStickyKeys, 0);
|
|
|
|
|
+ SystemParametersInfo(SPI_GETTOGGLEKEYS, sizeof(TOGGLEKEYS), &g_StartupToggleKeys, 0);
|
|
|
|
|
+ SystemParametersInfo(SPI_GETFILTERKEYS, sizeof(FILTERKEYS), &g_StartupFilterKeys, 0);
|
|
|
|
|
+#endif
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void
|
|
|
|
|
+allow_accessibility_shortcut_keys(bool allowKeys) {
|
|
|
|
|
+#ifdef WIN32
|
|
|
|
|
+ if( allowKeys )
|
|
|
|
|
+ {
|
|
|
|
|
+ // Restore StickyKeys/etc to original state and enable Windows key
|
|
|
|
|
+ SystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(STICKYKEYS), &g_StartupStickyKeys, 0);
|
|
|
|
|
+ SystemParametersInfo(SPI_SETTOGGLEKEYS, sizeof(TOGGLEKEYS), &g_StartupToggleKeys, 0);
|
|
|
|
|
+ SystemParametersInfo(SPI_SETFILTERKEYS, sizeof(FILTERKEYS), &g_StartupFilterKeys, 0);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // Disable StickyKeys/etc shortcuts but if the accessibility feature is on,
|
|
|
|
|
+ // then leave the settings alone as its probably being usefully used
|
|
|
|
|
+
|
|
|
|
|
+ STICKYKEYS skOff = g_StartupStickyKeys;
|
|
|
|
|
+ if( (skOff.dwFlags & SKF_STICKYKEYSON) == 0 )
|
|
|
|
|
+ {
|
|
|
|
|
+ // Disable the hotkey and the confirmation
|
|
|
|
|
+ skOff.dwFlags &= ~SKF_HOTKEYACTIVE;
|
|
|
|
|
+ skOff.dwFlags &= ~SKF_CONFIRMHOTKEY;
|
|
|
|
|
+
|
|
|
|
|
+ SystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(STICKYKEYS), &skOff, 0);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ TOGGLEKEYS tkOff = g_StartupToggleKeys;
|
|
|
|
|
+ if( (tkOff.dwFlags & TKF_TOGGLEKEYSON) == 0 )
|
|
|
|
|
+ {
|
|
|
|
|
+ // Disable the hotkey and the confirmation
|
|
|
|
|
+ tkOff.dwFlags &= ~TKF_HOTKEYACTIVE;
|
|
|
|
|
+ tkOff.dwFlags &= ~TKF_CONFIRMHOTKEY;
|
|
|
|
|
+
|
|
|
|
|
+ SystemParametersInfo(SPI_SETTOGGLEKEYS, sizeof(TOGGLEKEYS), &tkOff, 0);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ FILTERKEYS fkOff = g_StartupFilterKeys;
|
|
|
|
|
+ if( (fkOff.dwFlags & FKF_FILTERKEYSON) == 0 )
|
|
|
|
|
+ {
|
|
|
|
|
+ // Disable the hotkey and the confirmation
|
|
|
|
|
+ fkOff.dwFlags &= ~FKF_HOTKEYACTIVE;
|
|
|
|
|
+ fkOff.dwFlags &= ~FKF_CONFIRMHOTKEY;
|
|
|
|
|
+
|
|
|
|
|
+ SystemParametersInfo(SPI_SETFILTERKEYS, sizeof(FILTERKEYS), &fkOff, 0);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+#endif
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
#if 0
|
|
#if 0
|
|
|
int TempGridZoneManager::
|
|
int TempGridZoneManager::
|
|
|
add_grid_zone(unsigned int x,
|
|
add_grid_zone(unsigned int x,
|