Comments (5)
IIRC the "Window geometry for client (%s) appears to be incorrect - ignoring" is probably a client side bug. The client updated one or the other of window geometry/surface size but not both in sync. There were reports of this occuring with some Qt apps. I never saw it personally.
The timeout, I think, was added earlier. We need that to avoid a poorly behaving app from hanging up window movement/resizing.
I don't have time to try to reproduce or debug anything myself right now.
from labwc.
It's not obvious to me what the problem is here.
The timeout was originally added in this PR which contains quite a lot of info: https://github.com/labwc/labwc/pull/803/files
This issue might be related: #1902
What version of firefox are you using? I can replicate the kiosk issue with >=126
from labwc.
There is another problem (in the current code) which can be seen when attempting to tile an xdg-shell view that doesn't allow resizing. Example: the "about" window of xfce4-terminal. In that case, we never get a commit acknowledging the configure-request, and it remains "pending" indefinitely until an unrelated commit. As a result, we delay moving the "about" window to its tiled location, until the mouse cursor is moved over it -- then it suddenly jumps.
This presumably started occurring after ecd03b7 (haven't verified). To fix it, I would suggest a timeout (100 ms?) after which, if we haven't received the acknowledgement commit, we move the view anyway.
In hindsight, it may be better to check if max-size == min-size (which IIRC is the way we should disallow window resize on Wayland).
See comment here: #1294 (comment)
@jlindgren90 - Any thoughts? Can you remember if there were other reasons for the timeout?
from labwc.
History of the "window geometry for client .. appears to be incorrect":
from labwc.
@cillian64 since you said:
I'm happy to try fixing this myself if I can get some guidance on context/strategy.
I have some questions I would suggest investigating (and I am curious myself).
- labwc discards the pending configure and assumes Firefox is still in state A.
What do you mean by "state A" here? Just the window/surface size?
- Firefox eventually applies the configure and is now in state B
If "state" refers to window/surface size, then labwc should see the resize happen when Firefox eventually "applies the configure". When that happens, handle_commit()
(xdg.c) should be called. Both view->current
and view->pending
should be updated to the new surface size ("state B") since the pending configure timed out already. Can you check if that's happening?
- Toggle window maximization, Firefox window size changes from B to A
- labwc thinks Firefox is already in state A so doesn't bother sending a configure
I am not following this part. How did the Firefox window size change if labwc didn't send a configure? Did Firefox resize spontaneously?
from labwc.
Related Issues (20)
- 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 4
- Doubled shortcuts depending on layout HOT 2
- [ERROR] [types/xdg_shell/wlr_xdg_surface.c:169] A configure is scheduled for an uninitialized xdg_surface HOT 16
- last version doesn't work HOT 1
- single-clicking on chromium's titlebar unmaximizes/untiles the window. 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.