From e6b74b10eb511cc47077f50f99969893dbd04c6a Mon Sep 17 00:00:00 2001 From: stefansjfw <57057282+stefansjfw@users.noreply.github.com> Date: Fri, 1 May 2020 16:17:16 +0200 Subject: [PATCH] [FancyZones] Make snapping windows using Windows Snap Hotkeys across monitors optional (#2583) * Make moving window across monitors optional * Update tests * Address PR comment: Update description of the toggle --- src/modules/fancyzones/lib/FancyZones.cpp | 2 +- src/modules/fancyzones/lib/Settings.cpp | 3 +- src/modules/fancyzones/lib/Settings.h | 1 + src/modules/fancyzones/lib/fancyzones.rc | 1 + src/modules/fancyzones/lib/resource.h | 45 ++++++++++--------- src/modules/fancyzones/lib/trace.cpp | 1 + .../tests/UnitTests/FancyZones.Spec.cpp | 7 +++ .../UnitTests/FancyZonesSettings.Spec.cpp | 14 ++++++ .../FancyZonesSettingsTests.cs | 30 +++++++------ src/tests/win-app-driver/PowerToysSession.cs | 2 +- 10 files changed, 67 insertions(+), 39 deletions(-) diff --git a/src/modules/fancyzones/lib/FancyZones.cpp b/src/modules/fancyzones/lib/FancyZones.cpp index 79c5e2365b..816f57f63a 100644 --- a/src/modules/fancyzones/lib/FancyZones.cpp +++ b/src/modules/fancyzones/lib/FancyZones.cpp @@ -771,7 +771,7 @@ bool FancyZones::OnSnapHotkey(DWORD vkCode) noexcept if (current) { std::vector monitorInfo = GetMonitorsSorted(); - if (monitorInfo.size() > 1) + if (monitorInfo.size() > 1 && m_settings->GetSettings()->moveWindowAcrossMonitors) { // Multi monitor environment. auto currMonitorInfo = std::find(std::begin(monitorInfo), std::end(monitorInfo), current); diff --git a/src/modules/fancyzones/lib/Settings.cpp b/src/modules/fancyzones/lib/Settings.cpp index cca1041f52..1db305e5c8 100644 --- a/src/modules/fancyzones/lib/Settings.cpp +++ b/src/modules/fancyzones/lib/Settings.cpp @@ -36,9 +36,10 @@ private: PCWSTR name; bool* value; int resourceId; - } m_configBools[9 /* 10 */] = { // "Turning FLASHING_ZONE option off" + } m_configBools[10 /* 11 */] = { // "Turning FLASHING_ZONE option off" { L"fancyzones_shiftDrag", &m_settings.shiftDrag, IDS_SETTING_DESCRIPTION_SHIFTDRAG }, { 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" //{ L"fancyzones_zoneSetChange_flashZones", &m_settings.zoneSetChange_flashZones, IDS_SETTING_DESCRIPTION_ZONESETCHANGE_FLASHZONES }, { L"fancyzones_displayChange_moveWindows", &m_settings.displayChange_moveWindows, IDS_SETTING_DESCRIPTION_DISPLAYCHANGE_MOVEWINDOWS }, diff --git a/src/modules/fancyzones/lib/Settings.h b/src/modules/fancyzones/lib/Settings.h index 6b6389d295..0ea4e323f8 100644 --- a/src/modules/fancyzones/lib/Settings.h +++ b/src/modules/fancyzones/lib/Settings.h @@ -12,6 +12,7 @@ struct Settings bool zoneSetChange_flashZones = false; bool zoneSetChange_moveWindows = false; bool overrideSnapHotkeys = false; + bool moveWindowAcrossMonitors = false; bool appLastZone_moveWindows = false; bool use_cursorpos_editor_startupscreen = true; bool showZonesOnAllMonitors = false; diff --git a/src/modules/fancyzones/lib/fancyzones.rc b/src/modules/fancyzones/lib/fancyzones.rc index 5a0bb1bb13..3b1444bd5e 100644 --- a/src/modules/fancyzones/lib/fancyzones.rc +++ b/src/modules/fancyzones/lib/fancyzones.rc @@ -8,6 +8,7 @@ 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_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" IDS_SETTING_DESCRIPTION_ZONESETCHANGE_MOVEWINDOWS "During zone layout changes, windows assigned to a zone will match new size/positions" IDS_SETTING_DESCRIPTION_VIRTUALDESKTOPCHANGE_MOVEWINDOWS "Keep windows pinned to multiple desktops in the same zone when the active desktop changes" diff --git a/src/modules/fancyzones/lib/resource.h b/src/modules/fancyzones/lib/resource.h index 0b860517bb..984207a5b7 100644 --- a/src/modules/fancyzones/lib/resource.h +++ b/src/modules/fancyzones/lib/resource.h @@ -1,24 +1,25 @@ #define IDS_SETTING_DESCRIPTION_SHIFTDRAG 101 #define IDS_SETTING_DESCRIPTION_OVERRIDE_SNAP_HOTKEYS 102 -#define IDS_SETTING_DESCRIPTION_DISPLAYCHANGE_MOVEWINDOWS 103 -#define IDS_SETTING_DESCRIPTION_ZONESETCHANGE_MOVEWINDOWS 104 -#define IDS_SETTING_DESCRIPTION_ZONESETCHANGE_FLASHZONES 105 -#define IDS_SETTING_DESCRIPTION_VIRTUALDESKTOPCHANGE_MOVEWINDOWS 106 -#define IDS_SETTING_DESCRIPTION_SHOW_FANCY_ZONES_ON_ALL_MONITORS 107 -#define IDS_SETTING_DESCRIPTION_MAKE_DRAGGED_WINDOW_TRANSPARENT 108 -#define IDS_SETTING_DESCRIPTION_ZONECOLOR 109 -#define IDS_SETTING_DESCRIPTION_ZONE_BORDER_COLOR 110 -#define IDS_SETTING_DESCRIPTION_ZONEHIGHLIGHTCOLOR 111 -#define IDS_SETTING_DESCRIPTION_APPLASTZONE_MOVEWINDOWS 112 -#define IDS_SETTING_DESCRIPTION_USE_CURSORPOS_EDITOR_STARTUPSCREEN 113 -#define IDS_SETTING_DESCRIPTION 114 -#define IDS_SETTING_LAUNCH_EDITOR_LABEL 115 -#define IDS_SETTING_LAUNCH_EDITOR_BUTTON 116 -#define IDS_SETTING_LAUNCH_EDITOR_DESCRIPTION 117 -#define IDS_SETTING_LAUNCH_EDITOR_HOTKEY_LABEL 118 -#define IDS_SETTING_EXCLCUDED_APPS_DESCRIPTION 119 -#define IDS_SETTINGS_HIGHLIGHT_OPACITY 120 -#define IDS_FANCYZONES 121 -#define IDS_CANT_DRAG_ELEVATED 122 -#define IDS_CANT_DRAG_ELEVATED_LEARN_MORE 123 -#define IDS_CANT_DRAG_ELEVATED_DIALOG_DONT_SHOW_AGAIN 124 +#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 diff --git a/src/modules/fancyzones/lib/trace.cpp b/src/modules/fancyzones/lib/trace.cpp index 91131cd95a..9f51c7d2a0 100644 --- a/src/modules/fancyzones/lib/trace.cpp +++ b/src/modules/fancyzones/lib/trace.cpp @@ -178,6 +178,7 @@ void Trace::SettingsChanged(const Settings& settings) noexcept TraceLoggingBoolean(settings.zoneSetChange_flashZones, "FlashZonesOnZoneSetChange"), TraceLoggingBoolean(settings.zoneSetChange_moveWindows, "MoveWindowsOnZoneSetChange"), TraceLoggingBoolean(settings.overrideSnapHotkeys, "OverrideSnapHotKeys"), + TraceLoggingBoolean(settings.moveWindowAcrossMonitors, "MoveWindowAcrossMonitors"), TraceLoggingBoolean(settings.appLastZone_moveWindows, "MoveWindowsToLastZoneOnAppOpening"), TraceLoggingBoolean(settings.use_cursorpos_editor_startupscreen, "UseCursorPosOnEditorStartup"), TraceLoggingBoolean(settings.showZonesOnAllMonitors, "ShowZonesOnAllMonitors"), diff --git a/src/modules/fancyzones/tests/UnitTests/FancyZones.Spec.cpp b/src/modules/fancyzones/tests/UnitTests/FancyZones.Spec.cpp index 1a7b6a05b6..273f5a803c 100644 --- a/src/modules/fancyzones/tests/UnitTests/FancyZones.Spec.cpp +++ b/src/modules/fancyzones/tests/UnitTests/FancyZones.Spec.cpp @@ -62,6 +62,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_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); ptSettings.add_bool_toogle(L"fancyzones_displayChange_moveWindows", IDS_SETTING_DESCRIPTION_DISPLAYCHANGE_MOVEWINDOWS, settings.displayChange_moveWindows); ptSettings.add_bool_toogle(L"fancyzones_zoneSetChange_moveWindows", IDS_SETTING_DESCRIPTION_ZONESETCHANGE_MOVEWINDOWS, settings.zoneSetChange_moveWindows); @@ -110,6 +111,7 @@ namespace FancyZonesUnitTests .zoneSetChange_flashZones = false, .zoneSetChange_moveWindows = true, .overrideSnapHotkeys = false, + .moveWindowAcrossMonitors = false, .appLastZone_moveWindows = true, .use_cursorpos_editor_startupscreen = true, .zoneColor = L"#abafee", @@ -138,6 +140,7 @@ namespace FancyZonesUnitTests .zoneSetChange_flashZones = false, .zoneSetChange_moveWindows = true, .overrideSnapHotkeys = false, + .moveWindowAcrossMonitors = false, .appLastZone_moveWindows = true, .use_cursorpos_editor_startupscreen = true, .zoneColor = L"#FAFAFA", @@ -166,6 +169,7 @@ namespace FancyZonesUnitTests .zoneSetChange_flashZones = false, .zoneSetChange_moveWindows = true, .overrideSnapHotkeys = false, + .moveWindowAcrossMonitors = false, .appLastZone_moveWindows = true, .use_cursorpos_editor_startupscreen = true, .showZonesOnAllMonitors = false, @@ -196,6 +200,7 @@ namespace FancyZonesUnitTests .zoneSetChange_flashZones = false, .zoneSetChange_moveWindows = true, .overrideSnapHotkeys = false, + .moveWindowAcrossMonitors = false, .appLastZone_moveWindows = true, .use_cursorpos_editor_startupscreen = true, .showZonesOnAllMonitors = false, @@ -226,6 +231,7 @@ namespace FancyZonesUnitTests .zoneSetChange_flashZones = false, .zoneSetChange_moveWindows = true, .overrideSnapHotkeys = false, + .moveWindowAcrossMonitors = false, .appLastZone_moveWindows = true, .use_cursorpos_editor_startupscreen = true, .showZonesOnAllMonitors = false, @@ -274,6 +280,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_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); ptSettings.add_bool_toogle(L"fancyzones_displayChange_moveWindows", IDS_SETTING_DESCRIPTION_DISPLAYCHANGE_MOVEWINDOWS, settings.displayChange_moveWindows); ptSettings.add_bool_toogle(L"fancyzones_zoneSetChange_moveWindows", IDS_SETTING_DESCRIPTION_ZONESETCHANGE_MOVEWINDOWS, settings.zoneSetChange_moveWindows); diff --git a/src/modules/fancyzones/tests/UnitTests/FancyZonesSettings.Spec.cpp b/src/modules/fancyzones/tests/UnitTests/FancyZonesSettings.Spec.cpp index 0115f35093..3fe1835132 100644 --- a/src/modules/fancyzones/tests/UnitTests/FancyZonesSettings.Spec.cpp +++ b/src/modules/fancyzones/tests/UnitTests/FancyZonesSettings.Spec.cpp @@ -32,6 +32,7 @@ namespace FancyZonesUnitTests Assert::AreEqual(expected.zoneSetChange_flashZones, actual.zoneSetChange_flashZones); Assert::AreEqual(expected.zoneSetChange_moveWindows, actual.zoneSetChange_moveWindows); Assert::AreEqual(expected.overrideSnapHotkeys, actual.overrideSnapHotkeys); + Assert::AreEqual(expected.moveWindowAcrossMonitors, actual.moveWindowAcrossMonitors); Assert::AreEqual(expected.appLastZone_moveWindows, actual.appLastZone_moveWindows); Assert::AreEqual(expected.use_cursorpos_editor_startupscreen, actual.use_cursorpos_editor_startupscreen); Assert::AreEqual(expected.showZonesOnAllMonitors, actual.showZonesOnAllMonitors); @@ -109,6 +110,7 @@ namespace FancyZonesUnitTests values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); values.add_property(L"fancyzones_zoneSetChange_moveWindows", expected.zoneSetChange_moveWindows); values.add_property(L"fancyzones_overrideSnapHotkeys", expected.overrideSnapHotkeys); + values.add_property(L"fancyzones_moveWindowAcrossMonitors", expected.moveWindowAcrossMonitors); values.add_property(L"fancyzones_appLastZone_moveWindows", expected.appLastZone_moveWindows); values.add_property(L"use_cursorpos_editor_startupscreen", expected.use_cursorpos_editor_startupscreen); values.add_property(L"fancyzones_show_on_all_monitors", expected.showZonesOnAllMonitors); @@ -144,6 +146,7 @@ namespace FancyZonesUnitTests values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); values.add_property(L"fancyzones_zoneSetChange_moveWindows", expected.zoneSetChange_moveWindows); values.add_property(L"fancyzones_overrideSnapHotkeys", expected.overrideSnapHotkeys); + values.add_property(L"fancyzones_moveWindowAcrossMonitors", expected.moveWindowAcrossMonitors); values.add_property(L"fancyzones_appLastZone_moveWindows", expected.appLastZone_moveWindows); values.add_property(L"use_cursorpos_editor_startupscreen", expected.use_cursorpos_editor_startupscreen); values.add_property(L"fancyzones_show_on_all_monitors", expected.showZonesOnAllMonitors); @@ -173,6 +176,7 @@ namespace FancyZonesUnitTests .zoneSetChange_flashZones = m_defaultSettings.zoneSetChange_flashZones, .zoneSetChange_moveWindows = m_defaultSettings.zoneSetChange_moveWindows, .overrideSnapHotkeys = m_defaultSettings.overrideSnapHotkeys, + .moveWindowAcrossMonitors = m_defaultSettings.moveWindowAcrossMonitors, .appLastZone_moveWindows = m_defaultSettings.appLastZone_moveWindows, .use_cursorpos_editor_startupscreen = m_defaultSettings.use_cursorpos_editor_startupscreen, .showZonesOnAllMonitors = m_defaultSettings.showZonesOnAllMonitors, @@ -215,6 +219,7 @@ namespace FancyZonesUnitTests values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); values.add_property(L"fancyzones_zoneSetChange_moveWindows", expected.zoneSetChange_moveWindows); values.add_property(L"fancyzones_overrideSnapHotkeys", expected.overrideSnapHotkeys); + values.add_property(L"fancyzones_moveWindowAcrossMonitors", expected.moveWindowAcrossMonitors); values.add_property(L"fancyzones_appLastZone_moveWindows", expected.appLastZone_moveWindows); values.add_property(L"use_cursorpos_editor_startupscreen", expected.use_cursorpos_editor_startupscreen); values.add_property(L"fancyzones_show_on_all_monitors", expected.showZonesOnAllMonitors); @@ -244,6 +249,7 @@ namespace FancyZonesUnitTests values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); values.add_property(L"fancyzones_zoneSetChange_moveWindows", expected.zoneSetChange_moveWindows); values.add_property(L"fancyzones_overrideSnapHotkeys", expected.overrideSnapHotkeys); + values.add_property(L"fancyzones_moveWindowAcrossMonitors", expected.moveWindowAcrossMonitors); values.add_property(L"fancyzones_appLastZone_moveWindows", expected.appLastZone_moveWindows); values.add_property(L"use_cursorpos_editor_startupscreen", expected.use_cursorpos_editor_startupscreen); values.add_property(L"fancyzones_show_on_all_monitors", expected.showZonesOnAllMonitors); @@ -274,6 +280,7 @@ namespace FancyZonesUnitTests values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); values.add_property(L"fancyzones_zoneSetChange_moveWindows", expected.zoneSetChange_moveWindows); values.add_property(L"fancyzones_overrideSnapHotkeys", expected.overrideSnapHotkeys); + values.add_property(L"fancyzones_moveWindowAcrossMonitors", expected.moveWindowAcrossMonitors); values.add_property(L"fancyzones_appLastZone_moveWindows", expected.appLastZone_moveWindows); values.add_property(L"use_cursorpos_editor_startupscreen", expected.use_cursorpos_editor_startupscreen); values.add_property(L"fancyzones_show_on_all_monitors", expected.showZonesOnAllMonitors); @@ -305,6 +312,7 @@ namespace FancyZonesUnitTests values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); values.add_property(L"fancyzones_zoneSetChange_moveWindows", expected.zoneSetChange_moveWindows); values.add_property(L"fancyzones_overrideSnapHotkeys", expected.overrideSnapHotkeys); + values.add_property(L"fancyzones_moveWindowAcrossMonitors", expected.moveWindowAcrossMonitors); values.add_property(L"fancyzones_appLastZone_moveWindows", expected.appLastZone_moveWindows); values.add_property(L"use_cursorpos_editor_startupscreen", expected.use_cursorpos_editor_startupscreen); values.add_property(L"fancyzones_show_on_all_monitors", expected.showZonesOnAllMonitors); @@ -415,6 +423,7 @@ namespace FancyZonesUnitTests .zoneSetChange_flashZones = true, .zoneSetChange_moveWindows = true, .overrideSnapHotkeys = false, + .moveWindowAcrossMonitors = false, .appLastZone_moveWindows = false, .use_cursorpos_editor_startupscreen = true, .showZonesOnAllMonitors = false, @@ -435,6 +444,7 @@ namespace FancyZonesUnitTests values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); values.add_property(L"fancyzones_zoneSetChange_moveWindows", expected.zoneSetChange_moveWindows); values.add_property(L"fancyzones_overrideSnapHotkeys", expected.overrideSnapHotkeys); + values.add_property(L"fancyzones_moveWindowAcrossMonitors", expected.moveWindowAcrossMonitors); values.add_property(L"fancyzones_appLastZone_moveWindows", expected.appLastZone_moveWindows); values.add_property(L"use_cursorpos_editor_startupscreen", expected.use_cursorpos_editor_startupscreen); values.add_property(L"fancyzones_show_on_all_monitors", expected.showZonesOnAllMonitors); @@ -547,6 +557,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_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); ptSettings.add_bool_toogle(L"fancyzones_displayChange_moveWindows", IDS_SETTING_DESCRIPTION_DISPLAYCHANGE_MOVEWINDOWS, settings.displayChange_moveWindows); ptSettings.add_bool_toogle(L"fancyzones_zoneSetChange_moveWindows", IDS_SETTING_DESCRIPTION_ZONESETCHANGE_MOVEWINDOWS, settings.zoneSetChange_moveWindows); @@ -578,6 +589,7 @@ namespace FancyZonesUnitTests //values.add_property(L"fancyzones_zoneSetChange_flashZones", expected.zoneSetChange_flashZones); values.add_property(L"fancyzones_zoneSetChange_moveWindows", expected.zoneSetChange_moveWindows); values.add_property(L"fancyzones_overrideSnapHotkeys", expected.overrideSnapHotkeys); + values.add_property(L"fancyzones_moveWindowAcrossMonitors", expected.moveWindowAcrossMonitors); values.add_property(L"fancyzones_appLastZone_moveWindows", expected.appLastZone_moveWindows); values.add_property(L"use_cursorpos_editor_startupscreen", expected.use_cursorpos_editor_startupscreen); values.add_property(L"fancyzones_show_on_all_monitors", expected.showZonesOnAllMonitors); @@ -608,6 +620,7 @@ namespace FancyZonesUnitTests 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_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); m_ptSettings->add_bool_toogle(L"fancyzones_displayChange_moveWindows", IDS_SETTING_DESCRIPTION_DISPLAYCHANGE_MOVEWINDOWS, expected.displayChange_moveWindows); m_ptSettings->add_bool_toogle(L"fancyzones_zoneSetChange_moveWindows", IDS_SETTING_DESCRIPTION_ZONESETCHANGE_MOVEWINDOWS, expected.zoneSetChange_moveWindows); @@ -680,6 +693,7 @@ namespace FancyZonesUnitTests .zoneSetChange_flashZones = false, .zoneSetChange_moveWindows = true, .overrideSnapHotkeys = false, + .moveWindowAcrossMonitors = false, .appLastZone_moveWindows = true, .use_cursorpos_editor_startupscreen = true, .showZonesOnAllMonitors = false, diff --git a/src/tests/win-app-driver/FancyZonesTests/FancyZonesSettingsTests.cs b/src/tests/win-app-driver/FancyZonesTests/FancyZonesSettingsTests.cs index d655b7960b..d1ece9216e 100644 --- a/src/tests/win-app-driver/FancyZonesTests/FancyZonesSettingsTests.cs +++ b/src/tests/win-app-driver/FancyZonesTests/FancyZonesSettingsTests.cs @@ -305,13 +305,14 @@ namespace PowerToysTests 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_displayChange_moveWindows")); - Assert.AreNotEqual(toggleValues[3], GetPropertyValue(savedProps, "fancyzones_zoneSetChange_moveWindows")); - Assert.AreNotEqual(toggleValues[4], GetPropertyValue(savedProps, "fancyzones_virtualDesktopChange_moveWindows")); - Assert.AreNotEqual(toggleValues[5], GetPropertyValue(savedProps, "fancyzones_appLastZone_moveWindows")); - Assert.AreNotEqual(toggleValues[6], GetPropertyValue(savedProps, "use_cursorpos_editor_startupscreen")); - Assert.AreNotEqual(toggleValues[7], GetPropertyValue(savedProps, "fancyzones_show_on_all_monitors")); - Assert.AreNotEqual(toggleValues[8], GetPropertyValue(savedProps, "fancyzones_makeDraggedWindowTransparent")); + 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")); } /* @@ -343,13 +344,14 @@ 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_displayChange_moveWindows")); - Assert.AreEqual(toggleValues[3], GetPropertyValue(savedProps, "fancyzones_zoneSetChange_moveWindows")); - Assert.AreEqual(toggleValues[4], GetPropertyValue(savedProps, "fancyzones_virtualDesktopChange_moveWindows")); - Assert.AreEqual(toggleValues[5], GetPropertyValue(savedProps, "fancyzones_appLastZone_moveWindows")); - Assert.AreEqual(toggleValues[6], GetPropertyValue(savedProps, "use_cursorpos_editor_startupscreen")); - Assert.AreEqual(toggleValues[7], GetPropertyValue(savedProps, "fancyzones_show_on_all_monitors")); - Assert.AreEqual(toggleValues[8], GetPropertyValue(savedProps, "fancyzones_makeDraggedWindowTransparent")); + 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")); } [TestMethod] diff --git a/src/tests/win-app-driver/PowerToysSession.cs b/src/tests/win-app-driver/PowerToysSession.cs index 150938367f..7adfa5c4f2 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_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_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\":[]}";