elkowar / eww

ElKowars wacky widgets
https://elkowar.github.io/eww
MIT License
9.37k stars 382 forks source link

[BUG] [MAYBE INTENDED BEHAVIOUR] The revealer widget constantly occupies its area, even when closed, when animation="crossfade" #505

Open AhoyISki opened 2 years ago

AhoyISki commented 2 years ago

Checklist before submitting an issue

Description of the bug

When you create a revealer widget, it doesn't constantly occupy the part of the screen that it reveals. When it is closed, your mouse will focus on things "below" it.

Unless you're using the crossfade animation, then it constantly occupies the screen, and any mouse inputs "under" it won't be registered.

Reproducing the issue

Using this minimal config:

(deflisten ICONS `echo $HOME/.config/eww/icons/`)

; Mode variables
(defvar MOVE_MODE false)
(defvar RESIZE_MODE false)

(defwindow mode-indicator
           :monitor 0
           :geometry (geometry :x "0%"
                               :y "0%"
                               :width "0%"
                               :height "0%"
                               :anchor "center")
           :stacking "fg"
           :exclusive false
                   :focusable false
  (mode-indicator))

(defwidget mode-indicator []
  (revealer :transition "crossfade"
            :reveal {MOVE_MODE || RESIZE_MODE}
            :duration "0.25s"
    (image :image-width 100
           :image-height 100
           :class "mode-indicator"
           :path {MOVE_MODE ? ICONS + "swap-window.png" :
                              ( RESIZE_MODE ? ICONS + "split-ratio.png" : "" )})))

Here's a demonstration:

Bug demonstration

Notice that the border color on firefox is still black when switching to another desktop environment when the cursor is in the region occupied by eww. That's an indication that focus hasn't been given to firefox, the window "below" eww. This also prevents clicking, dragging, and scrolling in that region.

Again, this only happens when animation="crossfade", every other animation manages to get rid of the window properly.

Expected behaviour

That when the revealer widget is turned off and animation="crossfade", eww would no longer occupy the area where revealer is placed, just like how it works for every other animation type.

Additional context

I have bound super m to eww update MOVE_MODE=true. The window manager I'm using is hyprland, but I don't think that's the issue, since eww still manages to properly remove the window in the other animation modes for revealer

brainlessbitch commented 1 year ago

i'm actually having a similar issue, but mine applies to all animations

without revealer image

with revealer image

OBLIXi-ON commented 11 months ago

I've some sort of a similar issue with eww in hyprland. My config places a eventbox over the entire screen and then a powermenu on top of it. When I click outside the powermenu options aka on the eventbox it closes the window but the mouse still stays focused untill I move it a bit.

BlueOwlet commented 8 months ago

Still an issue 2024

Novattz commented 4 months ago

still an issue

MartyMcFlyInTheSky commented 2 months ago

I had this issue with 'slideleft' but it went away after putting :space-evenly false for the box child of the eventbox.