Follow up to 4177fde76d32ef0551dae11e12fa7b5cfdb6e02b. While that commit made
the QuickEditor cover all screens it wasn't over the panel anymore. This
commit ensures it is also ontop of the panel. Thanks to David Edmundson for
the code snippets.
Details
- Reviewers
davidedmundson - Group Reviewers
Spectacle - Commits
- R166:5679f7f5c9bc: Make QuickEditor fullscreen on Wayland
R166:63a2c99ebfb9: Make QuickEditor fullscreen on Wayland
QuickEditor also covers the panel
Diff Detail
- Repository
- R166 Spectacle
- Branch
- quickshell (branched from master)
- Lint
No Linters Available - Unit
No Unit Test Coverage - Build Status
Buildable 15660 Build 15678: arc lint + arc unit
The initial idea to use the OSD Layer didn't work because the OSDs doesn't accept keyboard focus. Panel is still high enough and can be set to accept keyboard focus.
I would like this or another fix for Applications 19.08.1 (tagging on Monday). Otherwise we would have to think about what to do/which broken version to retain. Being able to select all screens but not the panel or reverting D23346 and being able to select everything on the primary screen but nothing on the other screens.
Please see my first comment.
src/QuickEditor/QuickEditor.cpp | ||
---|---|---|
96 | There's a fromWindow variant that's a bit nicer. In either case, check the return value before using it on the next line, it can return a nullptr | |
98 | This isn't sustainable long term and that needs to be remembered. Maybe it's a sign that the plasmashell interface is too restrictive, catered around one use-case rather than being generic. Though first we can maybe follow xdg_toplevel.set_fullscreen() with upstream, which would be the best option. |
src/QuickEditor/QuickEditor.cpp | ||
---|---|---|
96 | I think I tried fromWindow first but that crashed I think. What would the way forward be if it's nullptr? Just do nothing or wait till there's a surface? |
src/QuickEditor/QuickEditor.cpp | ||
---|---|---|
96 | oh! you need to create the platform window. winId() implicitly does that. winId(); auto surface = Surface::fromWindow(window()); if (!surface) { return; } |
src/QuickEditor/QuickEditor.cpp | ||
---|---|---|
96 | If I need to call either way winId then is there some other reason to prefer fromWindow? |
From winId just iterates through all known windows. I prefer objects to ids. But it doesn't really matter either way.