Add real-time updating of display distances when the sliders are moved
This commit is contained in:
parent
d54954e188
commit
67c70532fd
|
|
@ -39,6 +39,8 @@ BreezyDesktopEffectConfig::BreezyDesktopEffectConfig(QObject *parent, const KPlu
|
|||
|
||||
ui.shortcutsEditor->addCollection(actionCollection);
|
||||
connect(ui.shortcutsEditor, &KShortcutsEditor::keyChange, this, &BreezyDesktopEffectConfig::markAsChanged);
|
||||
connect(ui.kcfg_FocusedDisplayDistance, &QSlider::valueChanged, this, &BreezyDesktopEffectConfig::save);
|
||||
connect(ui.kcfg_AllDisplaysDistance, &QSlider::valueChanged, this, &BreezyDesktopEffectConfig::save);
|
||||
}
|
||||
|
||||
BreezyDesktopEffectConfig::~BreezyDesktopEffectConfig()
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ Node {
|
|||
screen: screens[index]
|
||||
monitorPlacement: monitorPlacements[index]
|
||||
property real monitorDistance: effect.allDisplaysDistance
|
||||
property real targetDistance: effect.allDisplaysDistance
|
||||
property real screenRotationY: displays.radianToDegree(monitorPlacement.rotationAngleRadians.y)
|
||||
property real screenRotationX: displays.radianToDegree(monitorPlacement.rotationAngleRadians.x)
|
||||
|
||||
|
|
@ -102,24 +103,33 @@ Node {
|
|||
breezyDesktop.screens.map(screen => screen.geometry)
|
||||
);
|
||||
|
||||
const focusedDisplay = focusedIndex !== -1 ? breezyDesktop.displayAtIndex(focusedIndex) : null;
|
||||
if (focusedIndex !== breezyDesktop.focusedMonitorIndex) {
|
||||
zoomOutAnimation.stop();
|
||||
zoomInAnimation.stop();
|
||||
zoomOnFocusSequence.stop();
|
||||
if (focusedIndex === -1) {
|
||||
if (focusedDisplay === null) {
|
||||
zoomOutAnimation.target = breezyDesktop.displayAtIndex(breezyDesktop.focusedMonitorIndex);
|
||||
zoomOutAnimation.target.targetDistance = zoomOutAnimation.to;
|
||||
zoomOutAnimation.start();
|
||||
} else {
|
||||
if (breezyDesktop.focusedMonitorIndex === -1) {
|
||||
zoomInAnimation.target = breezyDesktop.displayAtIndex(focusedIndex);
|
||||
zoomInAnimation.target = focusedDisplay;
|
||||
focusedDisplay.targetDistance = zoomInAnimation.to;
|
||||
zoomInAnimation.start();
|
||||
} else {
|
||||
zoomInSeqAnimation.target = breezyDesktop.displayAtIndex(focusedIndex);
|
||||
zoomInSeqAnimation.target = focusedDisplay;
|
||||
focusedDisplay.targetDistance = zoomInSeqAnimation.to;
|
||||
zoomOutSeqAnimation.target = breezyDesktop.displayAtIndex(breezyDesktop.focusedMonitorIndex);
|
||||
zoomOutSeqAnimation.target.targetDistance = zoomOutSeqAnimation.to;
|
||||
zoomOnFocusSequence.start();
|
||||
}
|
||||
}
|
||||
breezyDesktop.focusedMonitorIndex = focusedIndex;
|
||||
} else if (focusedDisplay !== null && focusedDisplay.targetDistance !== effect.focusedDisplayDistance) {
|
||||
// user is changing the focused display distance setting, so just move it to match
|
||||
focusedDisplay.monitorDistance = effect.focusedDisplayDistance;
|
||||
focusedDisplay.targetDistance = effect.focusedDisplayDistance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue