From bc53951648ead790d0c7abafcf82d5ae5b036a76 Mon Sep 17 00:00:00 2001 From: Yevhenii Holovachov <55396981+yevhenii44@users.noreply.github.com> Date: Thu, 7 May 2020 02:21:32 +0300 Subject: [PATCH] Option to disable zones activation by mouse (#2717) * Added option to enable/disable mouse to activate zones, added telemetry and unit tests --- src/modules/fancyzones/lib/Settings.cpp | 3 +- src/modules/fancyzones/lib/Settings.h | 1 + .../fancyzones/lib/WindowMoveHandler.cpp | 2 + src/modules/fancyzones/lib/fancyzones.rc | 3 +- src/modules/fancyzones/lib/resource.h | 49 ++++++++++--------- src/modules/fancyzones/lib/trace.cpp | 1 + .../tests/UnitTests/FancyZones.Spec.cpp | 7 +++ .../UnitTests/FancyZonesSettings.Spec.cpp | 14 ++++++ .../FancyZonesSettingsTests.cs | 38 +++++++------- src/tests/win-app-driver/PowerToysSession.cs | 2 +- 10 files changed, 75 insertions(+), 45 deletions(-) diff --git a/src/modules/fancyzones/lib/Settings.cpp b/src/modules/fancyzones/lib/Settings.cpp index 1db305e5c..c6f8cd093 100644 --- a/src/modules/fancyzones/lib/Settings.cpp +++ b/src/modules/fancyzones/lib/Settings.cpp @@ -36,8 +36,9 @@ private: PCWSTR name; bool* value; int resourceId; - } m_configBools[10 /* 11 */] = { // "Turning FLASHING_ZONE option off" + } m_configBools[11 /* 12 */] = { // "Turning FLASHING_ZONE option off" { L"fancyzones_shiftDrag", &m_settings.shiftDrag, IDS_SETTING_DESCRIPTION_SHIFTDRAG }, + { L"fancyzones_mouseSwitch", &m_settings.mouseSwitch, IDS_SETTING_DESCRIPTION_MOUSESWITCH }, { L"fancyzones_overrideSnapHotkeys", &m_settings.overrideSnapHotkeys, IDS_SETTING_DESCRIPTION_OVERRIDE_SNAP_HOTKEYS }, { L"fancyzones_moveWindowAcrossMonitors", &m_settings.moveWindowAcrossMonitors, IDS_SETTING_DESCRIPTION_MOVE_WINDOW_ACROSS_MONITORS }, // "Turning FLASHING_ZONE option off" diff --git a/src/modules/fancyzones/lib/Settings.h b/src/modules/fancyzones/lib/Settings.h index 0ea4e323f..d4abb961e 100644 --- a/src/modules/fancyzones/lib/Settings.h +++ b/src/modules/fancyzones/lib/Settings.h @@ -7,6 +7,7 @@ struct Settings { // The values specified here are the defaults. bool shiftDrag = true; + bool mouseSwitch = false; bool displayChange_moveWindows = false; bool virtualDesktopChange_moveWindows = false; bool zoneSetChange_flashZones = false; diff --git a/src/modules/fancyzones/lib/WindowMoveHandler.cpp b/src/modules/fancyzones/lib/WindowMoveHandler.cpp index 4d1d07c9c..a73f0fb2e 100644 --- a/src/modules/fancyzones/lib/WindowMoveHandler.cpp +++ b/src/modules/fancyzones/lib/WindowMoveHandler.cpp @@ -346,6 +346,8 @@ void WindowMoveHandlerPrivate::UpdateDragState(HWND window) noexcept mouse |= mouseR; } + mouse &= m_settings->GetSettings()->mouseSwitch; + if (m_settings->GetSettings()->shiftDrag) { m_dragEnabled = (shift | mouse); diff --git a/src/modules/fancyzones/lib/fancyzones.rc b/src/modules/fancyzones/lib/fancyzones.rc index 3b1444bd5..01e98c487 100644 --- a/src/modules/fancyzones/lib/fancyzones.rc +++ b/src/modules/fancyzones/lib/fancyzones.rc @@ -6,7 +6,8 @@ STRINGTABLE BEGIN IDS_SETTING_DESCRIPTION "Create window layouts to help make multi-tasking easy" - IDS_SETTING_DESCRIPTION_SHIFTDRAG "On: Hold Shift key or any non-primary mouse button to enable zones while dragging" + IDS_SETTING_DESCRIPTION_SHIFTDRAG "Hold Shift key to activate zones while dragging" + IDS_SETTING_DESCRIPTION_MOUSESWITCH "Hold a non-primary mouse button to activate zones while dragging" IDS_SETTING_DESCRIPTION_OVERRIDE_SNAP_HOTKEYS "Override Windows Snap hotkeys (win+arrow) to move windows between zones" IDS_SETTING_DESCRIPTION_MOVE_WINDOW_ACROSS_MONITORS "Move windows between zones across all monitors when snapping with win+arrow" IDS_SETTING_DESCRIPTION_DISPLAYCHANGE_MOVEWINDOWS "Keep windows in their zones when the screen resolution changes" diff --git a/src/modules/fancyzones/lib/resource.h b/src/modules/fancyzones/lib/resource.h index 984207a5b..95d8f901a 100644 --- a/src/modules/fancyzones/lib/resource.h +++ b/src/modules/fancyzones/lib/resource.h @@ -1,25 +1,26 @@ #define IDS_SETTING_DESCRIPTION_SHIFTDRAG 101 -#define IDS_SETTING_DESCRIPTION_OVERRIDE_SNAP_HOTKEYS 102 -#define IDS_SETTING_DESCRIPTION_MOVE_WINDOW_ACROSS_MONITORS 103 -#define IDS_SETTING_DESCRIPTION_DISPLAYCHANGE_MOVEWINDOWS 104 -#define IDS_SETTING_DESCRIPTION_ZONESETCHANGE_MOVEWINDOWS 105 -#define IDS_SETTING_DESCRIPTION_ZONESETCHANGE_FLASHZONES 106 -#define IDS_SETTING_DESCRIPTION_VIRTUALDESKTOPCHANGE_MOVEWINDOWS 107 -#define IDS_SETTING_DESCRIPTION_SHOW_FANCY_ZONES_ON_ALL_MONITORS 108 -#define IDS_SETTING_DESCRIPTION_MAKE_DRAGGED_WINDOW_TRANSPARENT 109 -#define IDS_SETTING_DESCRIPTION_ZONECOLOR 110 -#define IDS_SETTING_DESCRIPTION_ZONE_BORDER_COLOR 111 -#define IDS_SETTING_DESCRIPTION_ZONEHIGHLIGHTCOLOR 112 -#define IDS_SETTING_DESCRIPTION_APPLASTZONE_MOVEWINDOWS 113 -#define IDS_SETTING_DESCRIPTION_USE_CURSORPOS_EDITOR_STARTUPSCREEN 114 -#define IDS_SETTING_DESCRIPTION 115 -#define IDS_SETTING_LAUNCH_EDITOR_LABEL 116 -#define IDS_SETTING_LAUNCH_EDITOR_BUTTON 117 -#define IDS_SETTING_LAUNCH_EDITOR_DESCRIPTION 118 -#define IDS_SETTING_LAUNCH_EDITOR_HOTKEY_LABEL 119 -#define IDS_SETTING_EXCLCUDED_APPS_DESCRIPTION 120 -#define IDS_SETTINGS_HIGHLIGHT_OPACITY 121 -#define IDS_FANCYZONES 122 -#define IDS_CANT_DRAG_ELEVATED 123 -#define IDS_CANT_DRAG_ELEVATED_LEARN_MORE 124 -#define IDS_CANT_DRAG_ELEVATED_DIALOG_DONT_SHOW_AGAIN 125 +#define IDS_SETTING_DESCRIPTION_MOUSESWITCH 102 +#define IDS_SETTING_DESCRIPTION_OVERRIDE_SNAP_HOTKEYS 103 +#define IDS_SETTING_DESCRIPTION_MOVE_WINDOW_ACROSS_MONITORS 104 +#define IDS_SETTING_DESCRIPTION_DISPLAYCHANGE_MOVEWINDOWS 105 +#define IDS_SETTING_DESCRIPTION_ZONESETCHANGE_MOVEWINDOWS 106 +#define IDS_SETTING_DESCRIPTION_ZONESETCHANGE_FLASHZONES 107 +#define IDS_SETTING_DESCRIPTION_VIRTUALDESKTOPCHANGE_MOVEWINDOWS 108 +#define IDS_SETTING_DESCRIPTION_SHOW_FANCY_ZONES_ON_ALL_MONITORS 109 +#define IDS_SETTING_DESCRIPTION_MAKE_DRAGGED_WINDOW_TRANSPARENT 110 +#define IDS_SETTING_DESCRIPTION_ZONECOLOR 111 +#define IDS_SETTING_DESCRIPTION_ZONE_BORDER_COLOR 112 +#define IDS_SETTING_DESCRIPTION_ZONEHIGHLIGHTCOLOR 113 +#define IDS_SETTING_DESCRIPTION_APPLASTZONE_MOVEWINDOWS 114 +#define IDS_SETTING_DESCRIPTION_USE_CURSORPOS_EDITOR_STARTUPSCREEN 115 +#define IDS_SETTING_DESCRIPTION 116 +#define IDS_SETTING_LAUNCH_EDITOR_LABEL 117 +#define IDS_SETTING_LAUNCH_EDITOR_BUTTON 118 +#define IDS_SETTING_LAUNCH_EDITOR_DESCRIPTION 119 +#define IDS_SETTING_LAUNCH_EDITOR_HOTKEY_LABEL 120 +#define IDS_SETTING_EXCLCUDED_APPS_DESCRIPTION 121 +#define IDS_SETTINGS_HIGHLIGHT_OPACITY 122 +#define IDS_FANCYZONES 123 +#define IDS_CANT_DRAG_ELEVATED 124 +#define IDS_CANT_DRAG_ELEVATED_LEARN_MORE 125 +#define IDS_CANT_DRAG_ELEVATED_DIALOG_DONT_SHOW_AGAIN 126 diff --git a/src/modules/fancyzones/lib/trace.cpp b/src/modules/fancyzones/lib/trace.cpp index 9f51c7d2a..2d5c22acf 100644 --- a/src/modules/fancyzones/lib/trace.cpp +++ b/src/modules/fancyzones/lib/trace.cpp @@ -173,6 +173,7 @@ void Trace::SettingsChanged(const Settings& settings) noexcept ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance), TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE), TraceLoggingBoolean(settings.shiftDrag, "ShiftDrag"), + TraceLoggingBoolean(settings.mouseSwitch, "MouseSwitch"), TraceLoggingBoolean(settings.displayChange_moveWindows, "MoveWindowsOnDisplayChange"), TraceLoggingBoolean(settings.virtualDesktopChange_moveWindows, "MoveWindowsOnVirtualDesktopChange"), TraceLoggingBoolean(settings.zoneSetChange_flashZones, "FlashZonesOnZoneSetChange"), diff --git a/src/modules/fancyzones/tests/UnitTests/FancyZones.Spec.cpp b/src/modules/fancyzones/tests/UnitTests/FancyZones.Spec.cpp index 273f5a803..7c31818c8 100644 --- a/src/modules/fancyzones/tests/UnitTests/FancyZones.Spec.cpp +++ b/src/modules/fancyzones/tests/UnitTests/FancyZones.Spec.cpp @@ -61,6 +61,7 @@ namespace FancyZonesUnitTests ptSettings.add_hotkey(L"fancyzones_editor_hotkey", IDS_SETTING_LAUNCH_EDITOR_HOTKEY_LABEL, settings.editorHotkey); ptSettings.add_bool_toogle(L"fancyzones_shiftDrag", IDS_SETTING_DESCRIPTION_SHIFTDRAG, settings.shiftDrag); + ptSettings.add_bool_toogle(L"fancyzones_mouseSwitch", IDS_SETTING_DESCRIPTION_MOUSESWITCH, settings.mouseSwitch); ptSettings.add_bool_toogle(L"fancyzones_overrideSnapHotkeys", IDS_SETTING_DESCRIPTION_OVERRIDE_SNAP_HOTKEYS, settings.overrideSnapHotkeys); ptSettings.add_bool_toogle(L"fancyzones_moveWindowAcrossMonitors", IDS_SETTING_DESCRIPTION_MOVE_WINDOW_ACROSS_MONITORS, settings.moveWindowAcrossMonitors); ptSettings.add_bool_toogle(L"fancyzones_zoneSetChange_flashZones", IDS_SETTING_DESCRIPTION_ZONESETCHANGE_FLASHZONES, settings.zoneSetChange_flashZones); @@ -106,6 +107,7 @@ namespace FancyZonesUnitTests const auto expected = RGB(171, 175, 238); const Settings settings{ .shiftDrag = true, + .mouseSwitch = true, .displayChange_moveWindows = true, .virtualDesktopChange_moveWindows = true, .zoneSetChange_flashZones = false, @@ -135,6 +137,7 @@ namespace FancyZonesUnitTests const auto expected = RGB(171, 175, 238); const Settings settings{ .shiftDrag = true, + .mouseSwitch = true, .displayChange_moveWindows = true, .virtualDesktopChange_moveWindows = true, .zoneSetChange_flashZones = false, @@ -164,6 +167,7 @@ namespace FancyZonesUnitTests const auto expected = RGB(171, 175, 238); const Settings settings{ .shiftDrag = true, + .mouseSwitch = true, .displayChange_moveWindows = true, .virtualDesktopChange_moveWindows = true, .zoneSetChange_flashZones = false, @@ -195,6 +199,7 @@ namespace FancyZonesUnitTests const auto expected = 88; const Settings settings{ .shiftDrag = true, + .mouseSwitch = true, .displayChange_moveWindows = true, .virtualDesktopChange_moveWindows = true, .zoneSetChange_flashZones = false, @@ -226,6 +231,7 @@ namespace FancyZonesUnitTests const auto expected = true; const Settings settings{ .shiftDrag = true, + .mouseSwitch = true, .displayChange_moveWindows = true, .virtualDesktopChange_moveWindows = true, .zoneSetChange_flashZones = false, @@ -279,6 +285,7 @@ namespace FancyZonesUnitTests ptSettings.add_hotkey(L"fancyzones_editor_hotkey", IDS_SETTING_LAUNCH_EDITOR_HOTKEY_LABEL, settings.editorHotkey); ptSettings.add_bool_toogle(L"fancyzones_shiftDrag", IDS_SETTING_DESCRIPTION_SHIFTDRAG, settings.shiftDrag); + ptSettings.add_bool_toogle(L"fancyzones_mouseSwitch", IDS_SETTING_DESCRIPTION_MOUSESWITCH, settings.mouseSwitch); ptSettings.add_bool_toogle(L"fancyzones_overrideSnapHotkeys", IDS_SETTING_DESCRIPTION_OVERRIDE_SNAP_HOTKEYS, settings.overrideSnapHotkeys); ptSettings.add_bool_toogle(L"fancyzones_moveWindowAcrossMonitors", IDS_SETTING_DESCRIPTION_MOVE_WINDOW_ACROSS_MONITORS, settings.moveWindowAcrossMonitors); ptSettings.add_bool_toogle(L"fancyzones_zoneSetChange_flashZones", IDS_SETTING_DESCRIPTION_ZONESETCHANGE_FLASHZONES, settings.zoneSetChange_flashZones); diff --git a/src/modules/fancyzones/tests/UnitTests/FancyZonesSettings.Spec.cpp b/src/modules/fancyzones/tests/UnitTests/FancyZonesSettings.Spec.cpp index 1e4edd995..2d7bb6439 100644 --- a/src/modules/fancyzones/tests/UnitTests/FancyZonesSettings.Spec.cpp +++ b/src/modules/fancyzones/tests/UnitTests/FancyZonesSettings.Spec.cpp @@ -27,6 +27,7 @@ namespace FancyZonesUnitTests void compareSettings(const Settings& expected, const Settings& actual) { Assert::AreEqual(expected.shiftDrag, actual.shiftDrag); + Assert::AreEqual(expected.mouseSwitch, actual.mouseSwitch); Assert::AreEqual(expected.displayChange_moveWindows, actual.displayChange_moveWindows); Assert::AreEqual(expected.virtualDesktopChange_moveWindows, actual.virtualDesktopChange_moveWindows); Assert::AreEqual(expected.zoneSetChange_flashZones, actual.zoneSetChange_flashZones); @@ -105,6 +106,7 @@ namespace FancyZonesUnitTests PowerToysSettings::PowerToyValues values(m_moduleName); values.add_property(L"fancyzones_shiftDrag", expected.shiftDrag); + values.add_property(L"fancyzones_mouseSwitch", expected.mouseSwitch); values.add_property(L"fancyzones_displayChange_moveWindows", expected.displayChange_moveWindows); values.add_property(L"fancyzones_virtualDesktopChange_moveWindows", expected.virtualDesktopChange_moveWindows); values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); @@ -141,6 +143,7 @@ namespace FancyZonesUnitTests PowerToysSettings::PowerToyValues values(m_moduleName); values.add_property(L"fancyzones_shiftDrag", expected.shiftDrag); + values.add_property(L"fancyzones_mouseSwitch", expected.mouseSwitch); values.add_property(L"fancyzones_displayChange_moveWindows", expected.displayChange_moveWindows); values.add_property(L"fancyzones_virtualDesktopChange_moveWindows", expected.virtualDesktopChange_moveWindows); values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); @@ -171,6 +174,7 @@ namespace FancyZonesUnitTests { const Settings expected{ .shiftDrag = m_defaultSettings.shiftDrag, + .mouseSwitch = m_defaultSettings.mouseSwitch, .displayChange_moveWindows = m_defaultSettings.displayChange_moveWindows, .virtualDesktopChange_moveWindows = m_defaultSettings.virtualDesktopChange_moveWindows, .zoneSetChange_flashZones = m_defaultSettings.zoneSetChange_flashZones, @@ -214,6 +218,7 @@ namespace FancyZonesUnitTests PowerToysSettings::PowerToyValues values(m_moduleName); values.add_property(L"fancyzones_shiftDrag", expected.shiftDrag); + values.add_property(L"fancyzones_mouseSwitch", expected.mouseSwitch); values.add_property(L"fancyzones_displayChange_moveWindows", expected.displayChange_moveWindows); values.add_property(L"fancyzones_virtualDesktopChange_moveWindows", expected.virtualDesktopChange_moveWindows); values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); @@ -244,6 +249,7 @@ namespace FancyZonesUnitTests PowerToysSettings::PowerToyValues values(m_moduleName); values.add_property(L"fancyzones_shiftDrag", expected.shiftDrag); + values.add_property(L"fancyzones_mouseSwitch", expected.mouseSwitch); values.add_property(L"fancyzones_displayChange_moveWindows", expected.displayChange_moveWindows); values.add_property(L"fancyzones_virtualDesktopChange_moveWindows", expected.virtualDesktopChange_moveWindows); values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); @@ -275,6 +281,7 @@ namespace FancyZonesUnitTests PowerToysSettings::PowerToyValues values(m_moduleName); values.add_property(L"fancyzones_shiftDrag", expected.shiftDrag); + values.add_property(L"fancyzones_mouseSwitch", expected.mouseSwitch); values.add_property(L"fancyzones_displayChange_moveWindows", expected.displayChange_moveWindows); values.add_property(L"fancyzones_virtualDesktopChange_moveWindows", expected.virtualDesktopChange_moveWindows); values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); @@ -307,6 +314,7 @@ namespace FancyZonesUnitTests PowerToysSettings::PowerToyValues values(m_moduleName); values.add_property(L"fancyzones_shiftDrag", expected.shiftDrag); + values.add_property(L"fancyzones_mouseSwitch", expected.mouseSwitch); values.add_property(L"fancyzones_displayChange_moveWindows", expected.displayChange_moveWindows); values.add_property(L"fancyzones_virtualDesktopChange_moveWindows", expected.virtualDesktopChange_moveWindows); values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); @@ -420,6 +428,7 @@ namespace FancyZonesUnitTests HINSTANCE hInst = (HINSTANCE)GetModuleHandleW(nullptr); const Settings expected{ .shiftDrag = false, + .mouseSwitch = false, .displayChange_moveWindows = true, .virtualDesktopChange_moveWindows = true, .zoneSetChange_flashZones = true, @@ -441,6 +450,7 @@ namespace FancyZonesUnitTests PowerToysSettings::PowerToyValues values(m_moduleName); values.add_property(L"fancyzones_shiftDrag", expected.shiftDrag); + values.add_property(L"fancyzones_mouseSwitch", expected.mouseSwitch); values.add_property(L"fancyzones_displayChange_moveWindows", expected.displayChange_moveWindows); values.add_property(L"fancyzones_virtualDesktopChange_moveWindows", expected.virtualDesktopChange_moveWindows); values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); @@ -558,6 +568,7 @@ namespace FancyZonesUnitTests IDS_SETTING_LAUNCH_EDITOR_DESCRIPTION); ptSettings.add_hotkey(L"fancyzones_editor_hotkey", IDS_SETTING_LAUNCH_EDITOR_HOTKEY_LABEL, settings.editorHotkey); ptSettings.add_bool_toogle(L"fancyzones_shiftDrag", IDS_SETTING_DESCRIPTION_SHIFTDRAG, settings.shiftDrag); + ptSettings.add_bool_toogle(L"fancyzones_mouseSwitch", IDS_SETTING_DESCRIPTION_MOUSESWITCH, settings.mouseSwitch); ptSettings.add_bool_toogle(L"fancyzones_overrideSnapHotkeys", IDS_SETTING_DESCRIPTION_OVERRIDE_SNAP_HOTKEYS, settings.overrideSnapHotkeys); ptSettings.add_bool_toogle(L"fancyzones_moveWindowAcrossMonitors", IDS_SETTING_DESCRIPTION_MOVE_WINDOW_ACROSS_MONITORS, settings.moveWindowAcrossMonitors); ptSettings.add_bool_toogle(L"fancyzones_zoneSetChange_flashZones", IDS_SETTING_DESCRIPTION_ZONESETCHANGE_FLASHZONES, settings.zoneSetChange_flashZones); @@ -586,6 +597,7 @@ namespace FancyZonesUnitTests PowerToysSettings::PowerToyValues values(m_moduleName); values.add_property(L"fancyzones_shiftDrag", expected.shiftDrag); + values.add_property(L"fancyzones_mouseSwitch", expected.mouseSwitch); values.add_property(L"fancyzones_displayChange_moveWindows", expected.displayChange_moveWindows); values.add_property(L"fancyzones_virtualDesktopChange_moveWindows", expected.virtualDesktopChange_moveWindows); //values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); @@ -621,6 +633,7 @@ namespace FancyZonesUnitTests IDS_SETTING_LAUNCH_EDITOR_DESCRIPTION); m_ptSettings->add_hotkey(L"fancyzones_editor_hotkey", IDS_SETTING_LAUNCH_EDITOR_HOTKEY_LABEL, expected.editorHotkey); m_ptSettings->add_bool_toogle(L"fancyzones_shiftDrag", IDS_SETTING_DESCRIPTION_SHIFTDRAG, expected.shiftDrag); + m_ptSettings->add_bool_toogle(L"fancyzones_mouseSwitch", IDS_SETTING_DESCRIPTION_MOUSESWITCH, expected.mouseSwitch); m_ptSettings->add_bool_toogle(L"fancyzones_overrideSnapHotkeys", IDS_SETTING_DESCRIPTION_OVERRIDE_SNAP_HOTKEYS, expected.overrideSnapHotkeys); m_ptSettings->add_bool_toogle(L"fancyzones_moveWindowAcrossMonitors", IDS_SETTING_DESCRIPTION_MOVE_WINDOW_ACROSS_MONITORS, expected.moveWindowAcrossMonitors); //m_ptSettings->add_bool_toogle(L"fancyzones_zoneSetChange_flashZones", IDS_SETTING_DESCRIPTION_ZONESETCHANGE_FLASHZONES, expected.zoneSetChange_flashZones); @@ -690,6 +703,7 @@ namespace FancyZonesUnitTests const Settings expected{ .shiftDrag = true, + .mouseSwitch = true, .displayChange_moveWindows = true, .virtualDesktopChange_moveWindows = true, .zoneSetChange_flashZones = false, diff --git a/src/tests/win-app-driver/FancyZonesTests/FancyZonesSettingsTests.cs b/src/tests/win-app-driver/FancyZonesTests/FancyZonesSettingsTests.cs index d1ece9216..a7d19a1d9 100644 --- a/src/tests/win-app-driver/FancyZonesTests/FancyZonesSettingsTests.cs +++ b/src/tests/win-app-driver/FancyZonesTests/FancyZonesSettingsTests.cs @@ -304,15 +304,16 @@ namespace PowerToysTests //check saved settings JObject savedProps = GetProperties(); Assert.AreNotEqual(toggleValues[0], GetPropertyValue(savedProps, "fancyzones_shiftDrag")); - Assert.AreNotEqual(toggleValues[1], GetPropertyValue(savedProps, "fancyzones_overrideSnapHotkeys")); - Assert.AreNotEqual(toggleValues[2], GetPropertyValue(savedProps, "fancyzones_moveWindowAcrossMonitors")); - Assert.AreNotEqual(toggleValues[3], GetPropertyValue(savedProps, "fancyzones_displayChange_moveWindows")); - Assert.AreNotEqual(toggleValues[4], GetPropertyValue(savedProps, "fancyzones_zoneSetChange_moveWindows")); - Assert.AreNotEqual(toggleValues[5], GetPropertyValue(savedProps, "fancyzones_virtualDesktopChange_moveWindows")); - Assert.AreNotEqual(toggleValues[6], GetPropertyValue(savedProps, "fancyzones_appLastZone_moveWindows")); - Assert.AreNotEqual(toggleValues[7], GetPropertyValue(savedProps, "use_cursorpos_editor_startupscreen")); - Assert.AreNotEqual(toggleValues[8], GetPropertyValue(savedProps, "fancyzones_show_on_all_monitors")); - Assert.AreNotEqual(toggleValues[9], GetPropertyValue(savedProps, "fancyzones_makeDraggedWindowTransparent")); + Assert.AreNotEqual(toggleValues[1], GetPropertyValue(savedProps, "fancyzones_mouseSwitch")); + Assert.AreNotEqual(toggleValues[2], GetPropertyValue(savedProps, "fancyzones_overrideSnapHotkeys")); + Assert.AreNotEqual(toggleValues[3], GetPropertyValue(savedProps, "fancyzones_moveWindowAcrossMonitors")); + Assert.AreNotEqual(toggleValues[4], GetPropertyValue(savedProps, "fancyzones_displayChange_moveWindows")); + Assert.AreNotEqual(toggleValues[5], GetPropertyValue(savedProps, "fancyzones_zoneSetChange_moveWindows")); + Assert.AreNotEqual(toggleValues[6], GetPropertyValue(savedProps, "fancyzones_virtualDesktopChange_moveWindows")); + Assert.AreNotEqual(toggleValues[7], GetPropertyValue(savedProps, "fancyzones_appLastZone_moveWindows")); + Assert.AreNotEqual(toggleValues[8], GetPropertyValue(savedProps, "use_cursorpos_editor_startupscreen")); + Assert.AreNotEqual(toggleValues[9], GetPropertyValue(savedProps, "fancyzones_show_on_all_monitors")); + Assert.AreNotEqual(toggleValues[10], GetPropertyValue(savedProps, "fancyzones_makeDraggedWindowTransparent")); } /* @@ -343,15 +344,16 @@ namespace PowerToysTests JObject savedProps = GetProperties(); Assert.AreEqual(toggleValues[0], GetPropertyValue(savedProps, "fancyzones_shiftDrag")); - Assert.AreEqual(toggleValues[1], GetPropertyValue(savedProps, "fancyzones_overrideSnapHotkeys")); - Assert.AreEqual(toggleValues[2], GetPropertyValue(savedProps, "fancyzones_moveWindowAcrossMonitors")); - Assert.AreEqual(toggleValues[3], GetPropertyValue(savedProps, "fancyzones_displayChange_moveWindows")); - Assert.AreEqual(toggleValues[4], GetPropertyValue(savedProps, "fancyzones_zoneSetChange_moveWindows")); - Assert.AreEqual(toggleValues[5], GetPropertyValue(savedProps, "fancyzones_virtualDesktopChange_moveWindows")); - Assert.AreEqual(toggleValues[6], GetPropertyValue(savedProps, "fancyzones_appLastZone_moveWindows")); - Assert.AreEqual(toggleValues[7], GetPropertyValue(savedProps, "use_cursorpos_editor_startupscreen")); - Assert.AreEqual(toggleValues[8], GetPropertyValue(savedProps, "fancyzones_show_on_all_monitors")); - Assert.AreEqual(toggleValues[9], GetPropertyValue(savedProps, "fancyzones_makeDraggedWindowTransparent")); + Assert.AreEqual(toggleValues[1], GetPropertyValue(savedProps, "fancyzones_mouseSwitch")); + Assert.AreEqual(toggleValues[2], GetPropertyValue(savedProps, "fancyzones_overrideSnapHotkeys")); + Assert.AreEqual(toggleValues[3], GetPropertyValue(savedProps, "fancyzones_moveWindowAcrossMonitors")); + Assert.AreEqual(toggleValues[4], GetPropertyValue(savedProps, "fancyzones_displayChange_moveWindows")); + Assert.AreEqual(toggleValues[5], GetPropertyValue(savedProps, "fancyzones_zoneSetChange_moveWindows")); + Assert.AreEqual(toggleValues[6], GetPropertyValue(savedProps, "fancyzones_virtualDesktopChange_moveWindows")); + Assert.AreEqual(toggleValues[7], GetPropertyValue(savedProps, "fancyzones_appLastZone_moveWindows")); + Assert.AreEqual(toggleValues[8], GetPropertyValue(savedProps, "use_cursorpos_editor_startupscreen")); + Assert.AreEqual(toggleValues[9], GetPropertyValue(savedProps, "fancyzones_show_on_all_monitors")); + Assert.AreEqual(toggleValues[10], GetPropertyValue(savedProps, "fancyzones_makeDraggedWindowTransparent")); } [TestMethod] diff --git a/src/tests/win-app-driver/PowerToysSession.cs b/src/tests/win-app-driver/PowerToysSession.cs index 7adfa5c4f..66bc8e14e 100644 --- a/src/tests/win-app-driver/PowerToysSession.cs +++ b/src/tests/win-app-driver/PowerToysSession.cs @@ -26,7 +26,7 @@ namespace PowerToysTests protected static string _initialSettings = ""; protected static string _initialZoneSettings = ""; - protected const string _defaultSettings = "{\"version\":\"1.0\",\"name\":\"FancyZones\",\"properties\":{\"fancyzones_shiftDrag\":{\"value\":true},\"fancyzones_overrideSnapHotkeys\":{\"value\":false},\"fancyzones_moveWindowAcrossMonitors\":{\"value\":false},\"fancyzones_zoneSetChange_flashZones\":{\"value\":false},\"fancyzones_displayChange_moveWindows\":{\"value\":false},\"fancyzones_zoneSetChange_moveWindows\":{\"value\":false},\"fancyzones_virtualDesktopChange_moveWindows\":{\"value\":false},\"fancyzones_appLastZone_moveWindows\":{\"value\":false},\"use_cursorpos_editor_startupscreen\":{\"value\":true},\"fancyzones_zoneHighlightColor\":{\"value\":\"#0078D7\"},\"fancyzones_highlight_opacity\":{\"value\":90},\"fancyzones_editor_hotkey\":{\"value\":{\"win\":true,\"ctrl\":false,\"alt\":false,\"shift\":false,\"code\":192,\"key\":\"`\"}},\"fancyzones_excluded_apps\":{\"value\":\"\"}}}"; + protected const string _defaultSettings = "{\"version\":\"1.0\",\"name\":\"FancyZones\",\"properties\":{\"fancyzones_shiftDrag\":{\"value\":true},\"fancyzones_mouseSwitch\":{\"value\":false},\"fancyzones_overrideSnapHotkeys\":{\"value\":false},\"fancyzones_moveWindowAcrossMonitors\":{\"value\":false},\"fancyzones_zoneSetChange_flashZones\":{\"value\":false},\"fancyzones_displayChange_moveWindows\":{\"value\":false},\"fancyzones_zoneSetChange_moveWindows\":{\"value\":false},\"fancyzones_virtualDesktopChange_moveWindows\":{\"value\":false},\"fancyzones_appLastZone_moveWindows\":{\"value\":false},\"use_cursorpos_editor_startupscreen\":{\"value\":true},\"fancyzones_zoneHighlightColor\":{\"value\":\"#0078D7\"},\"fancyzones_highlight_opacity\":{\"value\":90},\"fancyzones_editor_hotkey\":{\"value\":{\"win\":true,\"ctrl\":false,\"alt\":false,\"shift\":false,\"code\":192,\"key\":\"`\"}},\"fancyzones_excluded_apps\":{\"value\":\"\"}}}"; protected const string _defaultZoneSettings = "{\"app-zone-history\":[],\"devices\":[],\"custom-zone-sets\":[]}";