KWin causing Firefox windows to be downsized upon restart with session restore

Duncan 1i5t5.duncan at cox.net
Tue Apr 28 14:51:34 BST 2026


René J.V. Bertin posted on Fri, 24 Apr 2026 17:23:32 +0200 as excerpted:

> Hi,
> 
> I am encountering a weird issue that seems to be caused by KWin (X11 AND
> Wayland).
> 
> When session restore is enabled and Firefox configured to show the
> standard titlebar, windows are downsized vertically each time they're
> restored after a browser restart. The amount corresponds roughly to
> either 1x or 2x the height of the titlebar.
> 
> This happens no matter how I impose titlebars on FF windows; be it via
> the browser setting; a special KWin application rule or via
> `gtk3-nocsd`.
> 
> I thought this was a pure Firefox bug, but it doesn't happen when I run
> Xfwm4 (under a KDE environment).
> 
> I've now seen it in KWin4 and KWin5 5.15.5 and whatever (quite) newer
> version is in Devuan Chimaera.
> 
> It only happens though after I exited the browser properly, not after an
> unexpected exit.
> 
> Anyone else notice this?

I don't have a direct fix for you, but I do remember certain apps (IIRC 
mostly gtk-based) doing something very similar here some time ago... Then 
eventually it stopped and the problem has been gone for... I've gotta say 
at least a couple years, now, and I'd guess more (possibly six-ish, see 
below).

I do have a potential workaround, however, and a guess at a /possible/ 
cause and thus another possible workaround as I think the timing /might/ 
coincide, tho I'm not sure.

Back when I had the problem here, the windows I noticed it most on were 
windows that I was deploying kwin window rules for size on.  But, I'm a 
heavy enough user of window rules for various things (I have some rule or 
another for most apps I run often enough to have developed a preference), 
and of course if I have a set size for something and it's not appearing at 
that size I'm obviously more likely to notice it, that I really can't say 
whether it /only/ affected such windows, or others too.

Anyway, what I noticed is that the minimum size height and the regular 
size height rules were applying differently -- for those windows, one was 
including the height of the (server-side) titlebar, the other not, so I 
had to set them differently by the size of the titlebar.  When I had both 
set and adjusted correctly (IDR which had to be set larger), it would be 
fine, otherwise it would be either title-bar-height too tall or title-bar-
height too short.

Since that was shortly after client-side-decorations became a thing that 
gtk/gnome defaulted to, while kde was sticking with server-side including 
on wayland (which IIRC kwin wasn't ready for yet), I assumed it was bugs 
with that, signals getting crossed between the app and kwin whether the 
size was supposed to include the server-side decorations or not (the apps 
weren't forcing client-side decorations -- only the server-side 
decorations appeared -- but it was as if some calculation in them assumed 
the client size included decorations anyway... or subtracted twice instead 
of once for the server-side, IDR which), and that it'd eventually be 
fixed... and indeed, the problem eventually ceased and I remember having 
to adjust sizes vs. minimum-sizes back where I had setup workaround rules.

But, looking back, I'm now wondering if the timing coincided with 
something else or not.  More specifically, there are two other things that 
at least in my rear-view-mirror seem to be pretty close in time and thus 
might have been related... or not.

The first possibly related thing was the decorations I was using.  Around 
that time I was using a kwin-aurorae windeco-engine based theme, because I 
wanted a shorter titlebar than either oxygen (my otherwise preferred) or 
breeze (the kde/plasma default) would let me have.  But, there was a bug 
with libglvnd, which had been optional but was in the process of becoming 
a required dep of something or other, that made aurorae-based titlebars 
100% transparent -- there were still there and could be dragged or clicked 
if you clicked where they should have appeared... only they couldn't be 
seen AT ALL!!  Again, that was still on X, altho it wasn't long (a few 
months or a year...) before I switched to wayland.

So I reluctantly switched back to oxygen titlebars and it's /possible/ 
that was when the problem went away for me -- or it also might have been 
bringing in libglvnd.

But as mentioned, I switched to (kwin_)wayland shortly thereafter, which 
is where the sixish-years mentioned above comes in, since I took 18 months 
off during COVID and make that switch during that time, which would put it 
in 2020-21, nearing 6 years ago.

And that is other thing that might have fixed it for me.  Tho I can 
mention that kwin/plasma was only barely becoming wayland-ready at the 
time and I filed a *lot* of wayland-related bugs as I was in the process 
of switching, most of which eventually got fixed.  Plus, as I wasn't 
working so actually had the time to do so, I hack-patched a number of 
things that they either didn't fix fast enough for me or that I simply 
didn't like their solution.  And I'm still maintaining a number of those 
hack-patches to this day, altho I'd guess about half of them they ended up 
fixing/changing to my satisfaction in the intervening years so I don't 
need them any more.

The reason that's apropos is that one of those patches, one I'm actually 
still maintaining as they haven't fixed the problem upstream, is to allow 
the oxygen windeco titlebars to be shorter -- turns out there's several 
pixels of padding that I could patch out, and I was actually able to apply 
NEGATIVE padding while keeping the titles readable, tho for instance the 
drop-extenders on y/g/q end up clipped slightly due to extending a pixel 
or two outside the titlebar.

FWIW that's https://bugs.kde.org/show_bug.cgi?id=425874 .  But the point 
being... with that hack-patch trimming the padding I could make the oxygen 
windeco titlebar even shorter (but still readable) than the black-square 
aurorae-based windeco off of kdelook that I had previously been running.  
So there wasn't a reason to switch back to the aurorae-based windeco any 
longer, and I'm still running that patch and still running with the oxygen 
windecos... and it could be either the switch from the aurorae-based 
windeco (or perhaps the switch to libglvnd or an update to it) or the 
switch from X to wayland, that disappeared the problem for me.

That should give you some things to try, anyway.  I'm not sure if they 
were related and actually am not even sure the timing was similar.  But 
looking back it /seems/ the timing was similar enough they /might/ have 
been related.

In any case, if you find something that fixes it or works around it, 
please post an update.  Because while I can't complain about the problem 
going away, I'm always suspicious of such things, because if it went away 
without verified explanation, I'm in no better position to "encourage" it 
to go away again!

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman



More information about the kde mailing list