mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
bar-auto-hide: using a hover handler to help on hyprland
This commit is contained in:
@@ -210,32 +210,28 @@ PanelWindow {
|
||||
anchors.fill: parent
|
||||
screen: barWindow.screen
|
||||
|
||||
// Hover detection area overlaid on bar
|
||||
MouseArea {
|
||||
id: hoverArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
acceptedButtons: Qt.NoButton
|
||||
propagateComposedEvents: true
|
||||
// Hover detection using HoverHandler (doesn't block child hover events)
|
||||
HoverHandler {
|
||||
id: hoverHandler
|
||||
|
||||
onEntered: {
|
||||
barWindow.barHovered = true;
|
||||
BarService.setScreenHovered(barWindow.screen?.name, true);
|
||||
if (barWindow.autoHide) {
|
||||
hideTimer.stop();
|
||||
showTimer.restart();
|
||||
}
|
||||
}
|
||||
|
||||
onExited: {
|
||||
// Skip if already hidden (being destroyed)
|
||||
if (barWindow.isHidden)
|
||||
return;
|
||||
barWindow.barHovered = false;
|
||||
BarService.setScreenHovered(barWindow.screen?.name, false);
|
||||
if (barWindow.autoHide && !barWindow.panelOpen) {
|
||||
showTimer.stop();
|
||||
hideTimer.restart();
|
||||
onHoveredChanged: {
|
||||
if (hovered) {
|
||||
barWindow.barHovered = true;
|
||||
BarService.setScreenHovered(barWindow.screen?.name, true);
|
||||
if (barWindow.autoHide) {
|
||||
hideTimer.stop();
|
||||
showTimer.restart();
|
||||
}
|
||||
} else {
|
||||
// Skip if already hidden (being destroyed)
|
||||
if (barWindow.isHidden)
|
||||
return;
|
||||
barWindow.barHovered = false;
|
||||
BarService.setScreenHovered(barWindow.screen?.name, false);
|
||||
if (barWindow.autoHide && !barWindow.panelOpen) {
|
||||
showTimer.stop();
|
||||
hideTimer.restart();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user