Delay floating gap hiding until mouse leaves

work/spdx
Tranter Madi 4 years ago committed by Michail Vourlakos
parent 1f79546b39
commit a1af4f6831

@ -63,6 +63,10 @@
<default>false</default>
<label>floating gap is disabled when there are maximized windows</label>
</entry>
<entry name="floatingGapHidingWaitsMouse" type="Bool">
<default>false</default>
<label>delay floating gap hiding until mouse leaves</label>
</entry>
<entry name="floatingGapIsMirrored" type="Bool">
<default>false</default>
<label>floating gap is mirrored when it is shown in AlwaysVisible visibility mode</label>

@ -167,11 +167,7 @@ Item {
&& latteView.windowsTracker.currentScreen.isTouchingBusyVerticalView
&& plasmoid.configuration.backgroundOnlyOnMaximized)
property bool hideThickScreenGap: screenEdgeMarginEnabled
&& plasmoid.configuration.hideFloatingGapForMaximized
&& latteView && latteView.windowsTracker
&& latteView.windowsTracker.currentScreen.existsWindowMaximized
property bool hideThickScreenGap: false /*set through binding*/
property bool hideLengthScreenGaps: false /*set through binding*/
property bool mirrorScreenGap: screenEdgeMarginEnabled
@ -400,6 +396,17 @@ Item {
//////////////START OF BINDINGS
//! Wait until the mouse leaves the view
Binding {
target: root
property: "hideThickScreenGap"
when: !(plasmoid.configuration.floatingGapHidingWaitsMouse && dockContainsMouse)
value: screenEdgeMarginEnabled
&& plasmoid.configuration.hideFloatingGapForMaximized
&& latteView && latteView.windowsTracker
&& latteView.windowsTracker.currentScreen.existsWindowMaximized
}
//! Binding is needed in order for hideLengthScreenGaps to be activated or not only after
//! View sliding in/out has finished. This way the animation is smoother for behaveAsPlasmaPanels
Binding{
@ -408,6 +415,7 @@ Item {
when: latteView && latteView.positioner && latteView.visibility
&& ((root.behaveAsPlasmaPanel && latteView.positioner.slideOffset === 0)
|| root.behaveAsDockWithMask)
&& !(plasmoid.configuration.floatingGapHidingWaitsMouse && dockContainsMouse)
value: (hideThickScreenGap
&& (latteView.visibility.mode === LatteCore.Types.AlwaysVisible
|| latteView.visibility.mode === LatteCore.Types.WindowsGoBelow)
@ -918,6 +926,14 @@ Item {
}
}
Behavior on maxLengthPerCentage {
enabled: root.behaveAsDockWithMask && plasmoid.configuration.floatingGapHidingWaitsMouse && dockContainsMouse
NumberAnimation {
duration: animations.duration.short
easing.type: Easing.InQuad
}
}
///////////////END UI elements
///////////////BEGIN ABILITIES

@ -881,6 +881,18 @@ PlasmaComponents.Page {
}
}
LatteComponents.CheckBox {
Layout.maximumWidth: dialog.optionsWidth
enabled: plasmoid.configuration.alignment === LatteCore.Types.Justify && plasmoid.configuration.hideFloatingGapForMaximized
text: i18n("Delay floating gap hiding until mouse leaves")
tooltip: i18n("to avoid clicking on adjacent items accidentally in some cases")
value: plasmoid.configuration.floatingGapHidingWaitsMouse
onClicked: {
plasmoid.configuration.floatingGapHidingWaitsMouse = !plasmoid.configuration.floatingGapHidingWaitsMouse;
}
}
LatteComponents.CheckBox {
Layout.maximumWidth: dialog.optionsWidth
enabled: latteView.visibility.mode === LatteCore.Types.AlwaysVisible

Loading…
Cancel
Save