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); }