vcl/inc/qt5/QtFrame.hxx | 1 + vcl/qt5/QtFrame.cxx | 20 +++++++++----------- vcl/unx/generic/window/salframe.cxx | 6 +++--- 3 files changed, 13 insertions(+), 14 deletions(-)
New commits: commit 0218519537f6b77e06ae1e3020ed681b5a4f812c Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Fri Sep 27 09:54:20 2024 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Sep 28 09:33:55 2024 +0200 qt: Make screenNumber() a QtFrame method Don't explicitly pass a QScreen, but use the current one. Both callers set the screen just before calling the method. Change-Id: I57b3ffc4341cabc0370dda3c26d85f2f63ec9292 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174032 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/inc/qt5/QtFrame.hxx b/vcl/inc/qt5/QtFrame.hxx index a54af3547c52..be0b0ee36757 100644 --- a/vcl/inc/qt5/QtFrame.hxx +++ b/vcl/inc/qt5/QtFrame.hxx @@ -132,6 +132,7 @@ class VCLPLUG_QT_PUBLIC QtFrame : public QObject, public SalFrame bool isWindow() const; QWindow* windowHandle() const; QScreen* screen() const; + sal_Int32 screenNumber() const; bool isMinimized() const; bool isMaximized() const; void SetWindowStateImpl(Qt::WindowStates eState); diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx index 218af25130e0..1c2e81938ecb 100644 --- a/vcl/qt5/QtFrame.cxx +++ b/vcl/qt5/QtFrame.cxx @@ -74,15 +74,6 @@ static void SvpDamageHandler(void* handle, sal_Int32 nExtentsX, sal_Int32 nExten pThis->Damage(nExtentsX, nExtentsY, nExtentsWidth, nExtentsHeight); } -namespace -{ -sal_Int32 screenNumber(QScreen* pScreen) -{ - const QList<QScreen*> screens = QApplication::screens(); - return screens.indexOf(pScreen); -} -} - QtFrame::QtFrame(QtFrame* pParent, SalFrameStyleFlags nStyle, bool bUseCairo) : m_pTopLevel(nullptr) , m_bUseCairo(bUseCairo) @@ -292,6 +283,13 @@ QWindow* QtFrame::windowHandle() const QScreen* QtFrame::screen() const { return asChild()->screen(); } +sal_Int32 QtFrame::screenNumber() const +{ + QScreen* pScreen = screen(); + const QList<QScreen*> screens = QApplication::screens(); + return screens.indexOf(pScreen); +} + bool QtFrame::GetUseDarkMode() const { #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) @@ -1308,7 +1306,7 @@ void QtFrame::SetScreenNumber(unsigned int nScreen) screenGeo = pScreen->availableVirtualGeometry(); pWindow->setScreen(pScreen); pWindow->setGeometry(screenGeo); - nScreen = screenNumber(pScreen); + nScreen = screenNumber(); } // setScreen by itself has no effect, explicitly move the widget to @@ -1320,7 +1318,7 @@ void QtFrame::SetScreenNumber(unsigned int nScreen) // index outta bounds, use primary screen QScreen* primaryScreen = QApplication::primaryScreen(); pWindow->setScreen(primaryScreen); - nScreen = static_cast<sal_uInt32>(screenNumber(primaryScreen)); + nScreen = static_cast<sal_uInt32>(screenNumber()); } maGeometry.setScreen(nScreen); commit bce84c97257b986dfdfeaf69042278128d005a8c Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Fri Sep 27 09:36:01 2024 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Sep 28 09:33:48 2024 +0200 gen: Use std::vector::at instead of operator[] std::vector::at does bounds checking. Change-Id: Id173ad08fb3bf54e4b3e625b45bc439c59b4d9d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174031 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx index f845b691cdcd..c18c74244cfd 100644 --- a/vcl/unx/generic/window/salframe.cxx +++ b/vcl/unx/generic/window/salframe.cxx @@ -1847,8 +1847,8 @@ void X11SalFrame::SetScreenNumber( unsigned int nNewScreen ) if( nNewScreen >= GetDisplay()->GetXineramaScreens().size() ) return; - tools::Rectangle aOldScreenRect( GetDisplay()->GetXineramaScreens()[maGeometry.screen()] ); - tools::Rectangle aNewScreenRect( GetDisplay()->GetXineramaScreens()[nNewScreen] ); + tools::Rectangle aOldScreenRect(GetDisplay()->GetXineramaScreens().at(maGeometry.screen())); + tools::Rectangle aNewScreenRect(GetDisplay()->GetXineramaScreens().at(nNewScreen)); bool bVisible = bMapped_; if( bVisible ) Show( false ); @@ -1910,7 +1910,7 @@ void X11SalFrame::ShowFullScreen( bool bFullScreen, sal_Int32 nScreen ) if( nScreen < 0 || o3tl::make_unsigned(nScreen) >= GetDisplay()->GetXineramaScreens().size() ) aRect = AbsoluteScreenPixelRectangle( AbsoluteScreenPixelPoint(0,0), GetDisplay()->GetScreenSize( m_nXScreen ) ); else - aRect = GetDisplay()->GetXineramaScreens()[nScreen]; + aRect = GetDisplay()->GetXineramaScreens().at(nScreen); m_bIsPartialFullScreen = true; bool bVisible = bMapped_; if( bVisible )