GNOME Bugzilla – Bug 730681
Apps fullscreen randomly at start
Last modified: 2014-06-09 20:36:32 UTC
Sometimes when an app is started, it starts fullscreen or becomes fullscreen at the next second. I never used fullscreen before, so that's kind of strange (and anoying) Using multimonitor and rawhide.
Which app(s) ? Fullscreen or maximized?
all apps that can be fullscreen. fullscreen.
Just saw: mutter warning: request size of legacy app 0xe(somenumber) threated as a fullscreen() request. I don't know if it is related or not.
Yes. Basically some old apps don't use EWMH to fullscreen themselves, but resize windows to the size of the monitor - we complain, but do treat those as fullscreen request. Now with client-side decorations, windows on monitors without struts *are* monitor sized, so we did have problems with erroneously treating them as legacy apps in the past - the test has been updated to handle CSD windows correctly, but maybe we have regressed?
Created attachment 278024 [details] [review] constraints: Translate frame to client rect for legacy fullscreen check Ha, figured it out - Jasper updated the legacy check to apply to all server-decorated maximized windows :-) Stupid apps fullscreen themselves by resizing the client window to monitor size. A monitor-sized frame rect on the other hand is perfectly normal on monitors without struts - stop force-fullscreening those and catch the real baddies instead.
Review of attachment 278024 [details] [review]: Hmph. One thing I've wanted to do for a long time now was fix the variety of fullscreen and placement checks. They really shouldn't be in the constraints code -- they should just be something that happens in move_resize_internal. Or even better, in move_resize_request in window-x11.c, as it should never apply to Wayland windows in the first place. If you don't feel comfortable doing that, I will.
Comment on attachment 278024 [details] [review] constraints: Translate frame to client rect for legacy fullscreen check Attachment 278024 [details] pushed as 3f6c6f1 - constraints: Translate frame to client rect for legacy fullscreen check (In reply to comment #6) > If you don't feel comfortable doing that, I will. Sure, I'll take a look. Leaving the bug open for that, but pushing in the meantime - really, leaving stuff broken because after 10+ years the code location is not pretty enough while the big unreviewed patch that caused this and other regressions is apparently perfectly fine is a bit ridiculous.
Created attachment 278162 [details] [review] window-x11: Handle legacy fullscreen requests Doing this on the actual resize requests makes more sense than handling it as a window-manager imposed constraints, so move the code accordingly. (Disclaimer: not actually tested with any legacy apps)
So did some testing, and the patch seems to work (interestingly enough, I was not able to trigger the fs behavior *without* the patch when calling move_resize directly from the configure-event, but that feels more like an accidental bug fix than a regression ...)
Review of attachment 278162 [details] [review]: Looks good.
Attachment 278162 [details] pushed as fba022c - window-x11: Handle legacy fullscreen requests