vcl/unx/gtk3/gtkinst.cxx |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

New commits:
commit 28fc57ee7dcd26284649c5fefbf5d06abd9b70ca
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Nov 15 10:26:53 2021 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Nov 15 13:38:04 2021 +0100

    gtk4: implement something meaningful for get_monitor_workarea
    
    Change-Id: I3f107f591ebdcaad2f4e986a665b132ccfb78f1b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125224
    Tested-by: Caolán McNamara <caol...@redhat.com>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index bb34db67447c..ef1a817d1de1 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -6040,16 +6040,18 @@ namespace
 
     tools::Rectangle get_monitor_workarea(GtkWidget* pWindow)
     {
+        GdkRectangle aRect;
 #if !GTK_CHECK_VERSION(4, 0, 0)
         GdkScreen* pScreen = gtk_widget_get_screen(pWindow);
         gint nMonitor = gdk_screen_get_monitor_at_window(pScreen, 
widget_get_surface(pWindow));
-        GdkRectangle aRect;
         gdk_screen_get_monitor_workarea(pScreen, nMonitor, &aRect);
-        return tools::Rectangle(aRect.x, aRect.y, aRect.x + aRect.width, 
aRect.y + aRect.height);
 #else
-        (void)pWindow;
-        return tools::Rectangle();
+        GdkDisplay* pDisplay = gtk_widget_get_display(pWindow);
+        GdkSurface* gdkWindow = widget_get_surface(pWindow);
+        GdkMonitor* pMonitor = gdk_display_get_monitor_at_surface(pDisplay, 
gdkWindow);
+        gdk_monitor_get_geometry(pMonitor, &aRect);
 #endif
+        return tools::Rectangle(aRect.x, aRect.y, aRect.x + aRect.width, 
aRect.y + aRect.height);
     }
 
 

Reply via email to