]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Added "Automatically capture mouse when window is activated" option.
authorToni Wilen <twilen@winuae.net>
Thu, 26 Jul 2018 16:58:42 +0000 (19:58 +0300)
committerToni Wilen <twilen@winuae.net>
Thu, 26 Jul 2018 16:58:42 +0000 (19:58 +0300)
include/options.h
od-win32/resources/winuae.rc
od-win32/win32.cpp
od-win32/win32gui.cpp

index 8f8b1800f82b32b55680338a0ebf5493f04747ef..60d51635375779017eea351be7bb1cdfb7104502 100644 (file)
@@ -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;
index b148433c155ecb5bf00d6fdc2887b4ac6fa81aba..9537c12ee8c2aea159c34403a451f30f661c55a7 100644 (file)
@@ -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"
index f2bcac69ec540b2ba60ac08bf9adfaee6d282cc4..0d8abb6523ca0474a363ec851f024781171f590f 100644 (file)
@@ -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;
index a9bc79b6642d85f31a248022e3229f7f61889e51..df3b3036e33080e800669c91a66359e2a705d3f3 100644 (file)
@@ -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 }
 };