From: Rémi Bernon rbernon@codeweavers.com
--- programs/winecfg/input.c | 13 +++++++++++++ programs/winecfg/resource.h | 1 + programs/winecfg/winecfg.rc | 1 + 3 files changed, 15 insertions(+)
diff --git a/programs/winecfg/input.c b/programs/winecfg/input.c index f2f035df80f..a9d83b45f00 100644 --- a/programs/winecfg/input.c +++ b/programs/winecfg/input.c @@ -65,6 +65,11 @@ static void init_dialog( HWND dialog ) else SendMessageW( layouts, CB_SELECTSTRING, -1, (LPARAM)buffer ); free( buffer );
+ buffer = get_reg_key( config_key, keypath( L"X11 Driver" ), L"KeyboardScancodeDetect", L"Y" ); + if (IS_OPTION_TRUE( *buffer )) CheckDlgButton( dialog, IDC_KEYBOARD_SCANCODE_DETECT, BST_CHECKED ); + else CheckDlgButton( dialog, IDC_KEYBOARD_SCANCODE_DETECT, BST_UNCHECKED ); + free( buffer ); + updating_ui = FALSE; }
@@ -93,6 +98,13 @@ static void on_keyboard_layout_changed( HWND dialog ) } }
+static void on_keyboard_scancode_detect_clicked( HWND dialog ) +{ + BOOL checked = IsDlgButtonChecked( dialog, IDC_KEYBOARD_SCANCODE_DETECT ) == BST_CHECKED; + if (checked) set_reg_key( config_key, keypath( L"X11 Driver" ), L"KeyboardScancodeDetect", L"Y" ); + else set_reg_key( config_key, keypath( L"X11 Driver" ), L"KeyboardScancodeDetect", L"N" ); +} + INT_PTR CALLBACK InputDlgProc( HWND dialog, UINT message, WPARAM wparam, LPARAM lparam ) { TRACE( "dialog %p, message %#x, wparam %#Ix, lparam %#Ix\n", dialog, message, wparam, lparam ); @@ -112,6 +124,7 @@ INT_PTR CALLBACK InputDlgProc( HWND dialog, UINT message, WPARAM wparam, LPARAM switch (LOWORD(wparam)) { case IDC_FULLSCREEN_GRAB: on_fullscreen_grab_clicked( dialog ); break; + case IDC_KEYBOARD_SCANCODE_DETECT: on_keyboard_scancode_detect_clicked( dialog ); break; } break;
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h index 276c5344bfd..652ad898aee 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h @@ -223,5 +223,6 @@ /* input tab */ #define IDC_FULLSCREEN_GRAB 1501 #define IDC_KEYBOARD_LAYOUT 1502 +#define IDC_KEYBOARD_SCANCODE_DETECT 1503
#define IDS_INPUT_AUTO_DETECT_LAYOUT 8501 diff --git a/programs/winecfg/winecfg.rc b/programs/winecfg/winecfg.rc index d84bd783629..77391f6f96e 100644 --- a/programs/winecfg/winecfg.rc +++ b/programs/winecfg/winecfg.rc @@ -325,6 +325,7 @@ BEGIN GROUPBOX "Keyboard settings",IDC_STATIC,8,70,244,64 LTEXT "&Layout:",IDC_STATIC,15,82,230,8 COMBOBOX IDC_KEYBOARD_LAYOUT,110,80,135,60,CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT | WS_VSCROLL | WS_TABSTOP + CONTROL "Enable keyboard scancode auto-detection",IDC_KEYBOARD_SCANCODE_DETECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,96,230,10 END
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL