Comments (18)
Now, with layer-shell-qt6 and without any rule, Waybar always pushes the desktop downward, whether it starts after or before the desktop. It makes no difference if the background layer (current code) or the bottom layer is chosen in the code of pcmanfm-qt's desktop: it's always pushed downward by Waybar.
Set exclusive zone to -1
.
Ref:
- https://wayland.app/protocols/wlr-layer-shell-unstable-v1#zwlr_layer_surface_v1:request:set_exclusive_zone
- https://github.com/swaywm/swaybg/blob/80ed4b020adfb0846f780faba95fc5cc9a770a18/main.c#L269
From protocol:
If set to -1, the surface indicates that it would not like to be moved to accommodate for other surfaces, and the compositor should extend it all the way to the edges it is anchored to.
A wallpaper or lock screen might set their exclusive zone to -1, so that they stretch below or over the panel.
from labwc.
@johanmalm, thank you so much! Setting the exclusive zone to -1 solved the issue.
from labwc.
I think all issues pointed out here have been fixed
Yes, they have :)
from labwc.
I confirm @stefonarch's observation. The longer story (as a context):
Today, layer-shell-qt6 came to Arch at last. Its usage was straightforward. So, we happily applied the attached patch to the Qt6 branch and removed the window rules of pcmanfm-qt's desktop from rc.xml
. Anchoring and layer setting were OK, but Desktop didn't have keyboard focus when needed, no tooltip either. Later, to my great surprise, @stefonarch told that everything was OK under kwin_wayland
V6. I tested with my kwin_wayland
V5, and yes, Desktop had a correct keyboard focus when needed, as well as tooltips.
from labwc.
Hm.. It seems we do indeed not set the keyboard focus correctly on layer surfaces < top layer: https://github.com/labwc/labwc/blob/master/src/layers.c#L121
I am not sure I follow the logic for the && layer_surface->current.layer >= ZWLR_LAYER_SHELL_V1_LAYER_TOP)
condition on the top branch. Shouldn't that branch just check for layer_surface->current.keyboard_interactive != ZWLR_LAYER_SURFACE_V1_KEYBOARD_INTERACTIVITY_NONE
?
CC @johanmalm
from labwc.
Testing wayfire I see it's fine too there.
from labwc.
Thanks for reporting. Looks like we've got some sorting out to do here for the on_demand
case.
Hm.. It seems we do indeed not set the keyboard focus correctly on layer surfaces < top layer: https://github.com/labwc/labwc/blob/master/src/layers.c#L121
I am not sure I follow the logic for the
&& layer_surface->current.layer >= ZWLR_LAYER_SHELL_V1_LAYER_TOP)
condition on the top branch. Shouldn't that branch just check forlayer_surface->current.keyboard_interactive != ZWLR_LAYER_SURFACE_V1_KEYBOARD_INTERACTIVITY_NONE
?CC @johanmalm
The exclusive
case treats top+overlay lay differently in the definition. I can't remember, but guess I just followed that when I first wrote it (see link below).
Feels like we ought to honour click-to-focus semantics for on_demand
for all layers.
Suggest we do that after Friday so it's get plenty of testing before release.
from labwc.
Very exciting that layer-shell-qt6 is out in the Arch repo. Feel like a big step in wayland native desktop components (supporting Qt popups)
from labwc.
Feel like a big step in wayland native desktop components
Yes, indeed :)
from labwc.
The
exclusive
case treats top+overlay lay differently in the definition. I can't remember, but guess I just followed that when I first wrote it (see link below).
Hm, right. So I assume we need to treat ONDEMAND
the same as EXCLUSIVE && layer < top
.
Suggest we do that after Friday so it's get plenty of testing before release.
Yes, absolutely.
from labwc.
Hm, right. So I assume we need to treat
ONDEMAND
the same asEXCLUSIVE && layer < top
.
Aye. I think so.
from labwc.
It looks there is a similar issue in lxqt-panel too (branch wayland-taskbar
): main menu and other menus can't be navigated by keyboard.
from labwc.
It looks there is a similar issue in lxqt-panel too (branch
wayland-taskbar
): main menu and other menus can't be navigated by keyboard.
You may be able to work around that by using the top layer for the panel. However that is not recommended as a permanent fix, we need to fix labwc.
Edit:
Actually, this seem to be something else, the code path I posted above is only called during map or change of keyboard interactivity. It still needs to be fixed but that is not really the issue here. I assume what happens is that we are actually talking about layershell subsurfaces. I completely forgot about that but we removed the code path that allows clicks on them to give keyboard focus to "fix" #1131. We then didn't follow-up on that to implement a proper fix (e.g. find the root layershell surface of a layershell subsurface and then use that one to check for the keyboard interactivity). We should likely also make process_keyboard_interactivity()
public and call it from src/input/cursor.c
.
In general our layershell focus handling for subsurfaces need a bit of work, if we restore the ability to focus layershell subsurfaces we also need to make sure to not accidentally remove theactive
state from other windows at focus_change_notify()
(so we don't reintroduce #1131).
from labwc.
I completely forgot about that but we removed the code path that allows clicks on them to give keyboard focus to "fix" #1131
I see some regressions switching from Neon with labwc 0.6.5 to arch, indeed keyboard navigation works there in panel menus (with one exception in fancymenu: left-right arrows).
Afaik the panel is on top level. But other compositors like wayfire and sway have the same keyboard issue too, only kwin_wayland get't it right.
Opened #1572
from labwc.
What do the standards say about it?
I'm not in favor of following whoever, unless they're following standards.
from labwc.
There's also a strange thing, which may be not related to this report.
Previous to layer-shell-qt6, I used this rule:
<windowRule identifier="pcmanfm-qt" title="pcmanfm-desktop0">
<skipTaskbar>yes</skipTaskbar>
<skipWindowSwitcher>yes</skipWindowSwitcher>
<fixedPosition>yes</fixedPosition>
<action name="MoveTo" x="0" y="0" />
<action name="ToggleAlwaysOnBottom"/>
</windowRule>
Then, if I started pcmanfm-qt's desktop before Waybar, Waybar was decently drawn over it, at the top edge of the screen.
Now, with layer-shell-qt6 and without any rule, Waybar always pushes the desktop downward, whether it starts after or before the desktop. It makes no difference if the background layer (current code) or the bottom layer is chosen in the code of pcmanfm-qt's desktop: it's always pushed downward by Waybar.
I don't know if this also happens with other apps that can draw the background but, Intuitively speaking, one expects that a dock shouldn't displace what's on the background, regardless of the order of starting — as is the case under X11.
from labwc.
I've written a small Qt6 test panel and tooltips show on that one, so not sure what's going on with that.
Regarding popup keyboard-interactivity, I think it's the same story as with #1572, so suggest we carry on that discussion there only. See #1572 (comment)
from labwc.
I think all issues pointed out here have been fixed by the layershell focus rewrite.
AFAIR there was only one thing remaining that is tracked #1572: focusing the desktop of there is nothing else to focus.
Closing this for now, if I missed something please feel free to open a new issue.
from labwc.
Related Issues (20)
- Labwc misplaces titlebar on small window HOT 14
- error code 129 HOT 3
- Partial Keyboard Input Detected HOT 3
- Feature Request: Tablet Relative Tracking Mode HOT 33
- X11 resources set by xrdb don't survive xwayland restart HOT 13
- LCD backlight remains on when laptop lid closed HOT 2
- Extra indicators for the window state HOT 3
- Add resistance option for tiled windows HOT 3
- shadows of qt windows HOT 2
- Monitor configuration when in greeter HOT 6
- Controls in GTK2 applications (Tried in GIMP) don't work or if they work, just barely HOT 9
- Magnifier doesn't work with full-screen surfaces (direct scanout?) HOT 22
- Choose wlroots version when compiling HOT 9
- max_toggled button should fallback to max HOT 1
- 0.7.3: Tablet: Thunar always makes multi selection on left click HOT 2
- way to customize CapsLock behavior? HOT 2
- Stylus input doesn't rotate. HOT 8
- Doubled shortcuts depending on layout HOT 2
- chromium won't open fully maximized on launch HOT 29
- last version doesn't work HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from labwc.