mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-07 03:36:44 +02:00
Option to disable zones activation by mouse (#2717)
* Added option to enable/disable mouse to activate zones, added telemetry and unit tests
This commit is contained in:
committed by
GitHub
parent
56c0a78c64
commit
bc53951648
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user