-
-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ShellClients: Add PanelClient #1887
Conversation
538275d
to
7263cb3
Compare
7263cb3
to
d48fdc0
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Regarding focus management I'd like some opinions on how we want to do it. FWIW wlr_layer_shell does it like this: Or maybe there are suggestions for alternative ways to handle this? |
Wingpanel actually requires keyboard focus for the application menu (?) |
Yeah and it also might want to grab it when using super key to open it. Currently it just can't be interacted with on wayland |
This PR implement everything necessary for the positioning of Panels (currently top and bottom are supported) and their autohiding.
The API that is available (and in the future can probably be accessed via the wayland protocol) is:
set_anchor (Meta.Window window, Meta.Side side)
Pins the given window to the given side on the primary monitor and keeps it there centered. The side can be changed on the fly (at least in theory).
set_hide_mode (Meta.Window window, HideMode hide_mode)
with hide_mode being one of the following:
Gala will then handle autohiding taking into account hover and any open transient windows (e.g. popovers, menus, dialogs, etc.). It will also show the panel when the barrier at the appropriate side is hit.
This can also be changed on the fly.
This is enough to replicate the current X experience. It even supports autohiding wingpanel in theory (the example that's currently included here but will be removed sets up wingpanel to always hide and dock to dodge windows (
OVERLAP_WINDOW
).It doesn't fully work/has some issues if run on mutter < 46
Also this of course only works on wayland