mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-04 18:26:39 +02:00
[FancyZones] Add setting to use mouse middle-click to toggle multiple zones spanning (#27603)
This commit is contained in:
@@ -76,12 +76,15 @@ void DraggingState::OnSecondaryMouseDown()
|
||||
|
||||
void DraggingState::OnMiddleMouseDown()
|
||||
{
|
||||
if (!this->IsDragging())
|
||||
if (FancyZonesSettings::settings().mouseMiddleClickSpanningMultipleZones)
|
||||
{
|
||||
return;
|
||||
m_middleMouseState = !m_middleMouseState;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_secondaryMouseState = !m_secondaryMouseState;
|
||||
}
|
||||
|
||||
m_middleMouseState = !m_middleMouseState;
|
||||
m_keyUpdateCallback();
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ namespace NonLocalizable
|
||||
// FancyZones settings descriptions are localized, but underlying toggle (spinner, color picker) names are not.
|
||||
const wchar_t ShiftDragID[] = L"fancyzones_shiftDrag";
|
||||
const wchar_t MouseSwitchID[] = L"fancyzones_mouseSwitch";
|
||||
const wchar_t MouseMiddleClickSpanningMultipleZonesID[] = L"fancyzones_mouseMiddleClickSpanningMultipleZones";
|
||||
const wchar_t OverrideSnapHotKeysID[] = L"fancyzones_overrideSnapHotkeys";
|
||||
const wchar_t MoveWindowAcrossMonitorsID[] = L"fancyzones_moveWindowAcrossMonitors";
|
||||
const wchar_t MoveWindowsBasedOnPositionID[] = L"fancyzones_moveWindowsBasedOnPosition";
|
||||
@@ -108,6 +109,7 @@ void FancyZonesSettings::LoadSettings()
|
||||
// flags
|
||||
SetBoolFlag(values, NonLocalizable::ShiftDragID, SettingId::ShiftDrag, m_settings.shiftDrag);
|
||||
SetBoolFlag(values, NonLocalizable::MouseSwitchID, SettingId::MouseSwitch, m_settings.mouseSwitch);
|
||||
SetBoolFlag(values, NonLocalizable::MouseMiddleClickSpanningMultipleZonesID, SettingId::MouseMiddleClickSpanningMultipleZones, m_settings.mouseMiddleClickSpanningMultipleZones);
|
||||
SetBoolFlag(values, NonLocalizable::OverrideSnapHotKeysID, SettingId::OverrideSnapHotkeys, m_settings.overrideSnapHotkeys);
|
||||
SetBoolFlag(values, NonLocalizable::MoveWindowAcrossMonitorsID, SettingId::MoveWindowAcrossMonitors, m_settings.moveWindowAcrossMonitors);
|
||||
SetBoolFlag(values, NonLocalizable::MoveWindowsBasedOnPositionID, SettingId::MoveWindowsBasedOnPosition, m_settings.moveWindowsBasedOnPosition);
|
||||
|
||||
@@ -26,6 +26,7 @@ struct Settings
|
||||
// The values specified here are the defaults.
|
||||
bool shiftDrag = true;
|
||||
bool mouseSwitch = false;
|
||||
bool mouseMiddleClickSpanningMultipleZones = false;
|
||||
bool displayChange_moveWindows = false;
|
||||
bool zoneSetChange_flashZones = false;
|
||||
bool zoneSetChange_moveWindows = false;
|
||||
|
||||
@@ -4,6 +4,7 @@ enum class SettingId
|
||||
{
|
||||
ShiftDrag = 0,
|
||||
MouseSwitch,
|
||||
MouseMiddleClickSpanningMultipleZones,
|
||||
OverrideSnapHotkeys,
|
||||
MoveWindowAcrossMonitors,
|
||||
MoveWindowsBasedOnPosition,
|
||||
|
||||
Reference in New Issue
Block a user