pop-os / cosmic-panel

WIP
GNU General Public License v3.0
112 stars 23 forks source link

Non-extending autohide panel/dock doesn't open unless over the panel #159

Open ryanabx opened 5 months ago

ryanabx commented 5 months ago

Not sure if this should be intended behavior or not.

I believe it makes it easier to access autohide panels simply by activating when the mouse reaches the edge of whatever side it's on.

https://github.com/pop-os/cosmic-panel/assets/56272643/c71f8e78-c789-4d34-a09b-0fe169222763

wash2 commented 5 months ago

Not sure if this should be intended behavior or not.

Ya, this is intended behavior. Panels that aren't extended avoid absorbing input except over the actual rectangle of the layer surface that has applets. Personally, I like it this way because it helps avoid activating or persisting the panel when I don't mean to. but I'm open to changing it if it's a better experience for other people. I think it is a bit awkward if the pointer is over another application but inadvertently interacting with an invisible portion of the open dock or panel though.

ryanabx commented 5 months ago

Ya, this is intended behavior. Panels that aren't extended avoid absorbing input except over the actual rectangle of the layer surface that has applets.

Oh yeah, aside from this issue, there's another issue related to the layer surface -- with the panel moving back down if you move the cursor to the bottom edge while the panel is up (#149) I was going to look at it myself but the panel code is still an ongoing mystery to me

Personally, I like it this way because it helps avoid activating or persisting the panel when I don't mean to. but I'm open to changing it if it's a better experience for other people. I think it is a bit awkward if the pointer is over another application but inadvertently interacting with an invisible portion of the open dock or panel though.

Understandable, it might be more suitable having the whole bottom edge act as a trigger for opening the panel but not the area above it for keeping it open -- so you'd have to move the mouse to the panel anyways to keep it open, no invisible hitboxes. Having a solid trigger on the bottom edge might also fix the layer surface issue mentioned above, because my guess as to what triggers it is that the layer surface doesn't fully extend to the very bottom edge of the screen

wash2 commented 5 months ago

Having a solid trigger on the bottom edge might also fix the layer surface issue mentioned above

Maybe but the panel can really only receive input in layer surface. It could create a thin strip at the bottom when it is configured for autohide that is always included as an input region, and create a region for the entire extent of its surface when at least partially hidden. It probably wouldn't fix the issue you mentioned above though. I'll have to look into that issue a bit more. It would probably have to adjust the input region depending on whether or not it is currently transitioning to hidden or visible if partially hidden.