commit 6e2da271da9e6105dc396a75fe76fb96d5e3e55a parent 79e1b8910963fcfe8e4d41bb806ad9b3b8326d26 Author: Emilio Cobos Álvarez <emilio@crisal.io> Date: Tue, 16 Dec 2025 09:11:07 +0000 Bug 1999838 - Fullscreen changes may change our CSD margin. r=stransky Differential Revision: https://phabricator.services.mozilla.com/D276545 Diffstat:
| M | widget/gtk/nsWindow.cpp | | | 18 | +++++++++++------- |
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp @@ -5634,19 +5634,23 @@ void nsWindow::OnWindowStateEvent(GtkWidget* aWidget, return result; }(); + const bool fullscreenChanging = + mSizeMode != oldSizeMode && (mSizeMode == nsSizeMode_Fullscreen || + oldSizeMode == nsSizeMode_Fullscreen); + if (mSizeMode != oldSizeMode || mIsTiled != oldIsTiled) { - RecomputeBounds(/* MayChangeCsdMargin */ false); + // When going to fullscreen to non-fullscreen our client margin may change + // without other notifications (because we assume fullscreen windows are not + // decorated). + RecomputeBounds(/* MayChangeCSDMargin */ fullscreenChanging); } if (mSizeMode != oldSizeMode) { if (mWidgetListener) { mWidgetListener->SizeModeChanged(mSizeMode); } - if (mSizeMode == nsSizeMode_Fullscreen || - oldSizeMode == nsSizeMode_Fullscreen) { - if (mCompositorWidgetDelegate) { - mCompositorWidgetDelegate->NotifyFullscreenChanged( - mSizeMode == nsSizeMode_Fullscreen); - } + if (fullscreenChanging && mCompositorWidgetDelegate) { + mCompositorWidgetDelegate->NotifyFullscreenChanged(mSizeMode == + nsSizeMode_Fullscreen); } } }