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 )

Reply via email to