From: Toni Wilen Date: Thu, 26 Jul 2018 16:58:42 +0000 (+0300) Subject: Added "Automatically capture mouse when window is activated" option. X-Git-Tag: 4100~137 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=cf294bee2c64a7139390064608ee1ad387bf1511;p=francis%2Fwinuae.git Added "Automatically capture mouse when window is activated" option. --- diff --git a/include/options.h b/include/options.h index 8f8b1800..60d51635 100644 --- a/include/options.h +++ b/include/options.h @@ -771,6 +771,7 @@ struct uae_prefs { bool win32_main_alwaysontop; bool win32_powersavedisabled; bool win32_minimize_inactive; + bool win32_capture_always; int win32_statusbar; bool win32_start_minimized; bool win32_start_uncaptured; diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index b148433c..9537c12e 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -2131,7 +2131,7 @@ END STRINGTABLE BEGIN - IDS_MISCLISTITEMS4 "Windows shutdown/logoff notification\nWarn when attempting to close window\nPower led dims when audio filter is disabled\n" + IDS_MISCLISTITEMS4 "Windows shutdown/logoff notification\nWarn when attempting to close window\nPower led dims when audio filter is disabled\nAutomatically capture mouse when window is activated\n" IDS_SHUTDOWN_NOTIFICATION "Emulation session active" IDS_QUIT_WARNING "Are you sure you want to quit WinUAE?" IDS_UNMAPPED_ADDRESS "Floating\nAll zeros\nAll ones\n" diff --git a/od-win32/win32.cpp b/od-win32/win32.cpp index f2bcac69..0d8abb65 100644 --- a/od-win32/win32.cpp +++ b/od-win32/win32.cpp @@ -1133,7 +1133,7 @@ static void winuae_active(struct AmigaMonitor *mon, HWND hwnd, int minimized) getcapslock (); wait_keyrelease (); inputdevice_acquire (TRUE); - if (isfullscreen () > 0 && !gui_active) + if ((isfullscreen () > 0 || currprefs.win32_capture_always) && !gui_active) setmouseactive(mon->monitor_id, 1); #ifdef LOGITECHLCD if (!minimized) @@ -4056,6 +4056,7 @@ void target_default_options (struct uae_prefs *p, int type) p->win32_soundcard = 0; p->win32_samplersoundcard = -1; p->win32_minimize_inactive = 0; + p->win32_capture_always = false; p->win32_start_minimized = false; p->win32_start_uncaptured = false; p->win32_active_capture_priority = 1; @@ -4150,19 +4151,20 @@ void target_save_options (struct zfile *f, struct uae_prefs *p) #if 0 cfgfile_target_dwrite (f, _T("active_not_captured_priority"), _T("%d"), priorities[p->win32_active_nocapture_priority].value); #endif - cfgfile_target_dwrite_bool (f, _T("active_not_captured_nosound"), p->win32_active_nocapture_nosound); - cfgfile_target_dwrite_bool (f, _T("active_not_captured_pause"), p->win32_active_nocapture_pause); - cfgfile_target_dwrite (f, _T("inactive_priority"), _T("%d"), priorities[p->win32_inactive_priority].value); - cfgfile_target_dwrite_bool (f, _T("inactive_nosound"), p->win32_inactive_nosound); + cfgfile_target_dwrite_bool(f, _T("active_not_captured_nosound"), p->win32_active_nocapture_nosound); + cfgfile_target_dwrite_bool(f, _T("active_not_captured_pause"), p->win32_active_nocapture_pause); + cfgfile_target_dwrite(f, _T("inactive_priority"), _T("%d"), priorities[p->win32_inactive_priority].value); + cfgfile_target_dwrite_bool(f, _T("inactive_nosound"), p->win32_inactive_nosound); cfgfile_target_dwrite_bool(f, _T("inactive_pause"), p->win32_inactive_pause); cfgfile_target_dwrite(f, _T("inactive_input"), _T("%d"), p->win32_inactive_input); cfgfile_target_dwrite(f, _T("iconified_priority"), _T("%d"), priorities[p->win32_iconified_priority].value); - cfgfile_target_dwrite_bool (f, _T("iconified_nosound"), p->win32_iconified_nosound); + cfgfile_target_dwrite_bool(f, _T("iconified_nosound"), p->win32_iconified_nosound); cfgfile_target_dwrite_bool(f, _T("iconified_pause"), p->win32_iconified_pause); cfgfile_target_dwrite(f, _T("iconified_input"), _T("%d"), p->win32_iconified_input); cfgfile_target_dwrite_bool(f, _T("inactive_iconify"), p->win32_minimize_inactive); - cfgfile_target_dwrite_bool (f, _T("start_iconified"), p->win32_start_minimized); - cfgfile_target_dwrite_bool (f, _T("start_not_captured"), p->win32_start_uncaptured); + cfgfile_target_dwrite_bool(f, _T("active_capture_automatically"), p->win32_capture_always); + cfgfile_target_dwrite_bool(f, _T("start_iconified"), p->win32_start_minimized); + cfgfile_target_dwrite_bool(f, _T("start_not_captured"), p->win32_start_uncaptured); cfgfile_target_dwrite_bool (f, _T("ctrl_f11_is_quit"), p->win32_ctrl_F11_is_quit); @@ -4530,12 +4532,17 @@ int target_parse_option (struct uae_prefs *p, const TCHAR *option, const TCHAR * p->win32_active_nocapture_nosound = false; return 1; } + #if 0 if (cfgfile_intval (option, value, _T("active_not_captured_priority"), &v, 1)) { p->win32_active_nocapture_priority = fetchpri (v, 1); return 1; } #endif + + if (cfgfile_yesno(option, value, _T("active_capture_automatically"), &p->win32_capture_always)) + return 1; + if (cfgfile_intval (option, value, _T("inactive_priority"), &v, 1)) { p->win32_inactive_priority = fetchpri (v, 1); return 1; diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index a9bc79b6..df3b3036 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -4503,6 +4503,7 @@ static const struct miscentry misclist[] = { { 0, 0, _T("Windows shutdown/logoff notification"), &workprefs.win32_shutdown_notification }, { 0, 1, _T("Warn when attempting to close window"), &workprefs.win32_warn_exit }, { 0, 1, _T("Power led dims when audio filter is disabled"), NULL, &workprefs.power_led_dim, 128, 0 }, + { 0, 1, _T("Automatically capture mouse when window is activated"), &workprefs.win32_capture_always }, { 0, NULL } };