tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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:
Mwidget/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); } } }