summaryrefslogtreecommitdiffstats
path: root/src/ui/interface.cpp
diff options
context:
space:
mode:
authorAlexander Valavanis <valavanisalex@gmail.com>2017-06-27 13:03:58 +0000
committerAlexander Valavanis <valavanisalex@gmail.com>2017-06-27 13:03:58 +0000
commitfa8a2ee7e2539b145a87ac9af0d9748effa91631 (patch)
tree457bd081679e98e296be9846117508b4524ec7b3 /src/ui/interface.cpp
parentselect-tool: Only stop the rubberband when it was started (diff)
downloadinkscape-fa8a2ee7e2539b145a87ac9af0d9748effa91631.tar.gz
inkscape-fa8a2ee7e2539b145a87ac9af0d9748effa91631.zip
GdkScreen deprecation fixes
Diffstat (limited to '')
-rw-r--r--src/ui/interface.cpp29
1 files changed, 23 insertions, 6 deletions
diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp
index 7e80c1a2f..9abc1f07b 100644
--- a/src/ui/interface.cpp
+++ b/src/ui/interface.cpp
@@ -30,6 +30,10 @@
#include <gtkmm/imagemenuitem.h>
#include <gtkmm/separatormenuitem.h>
+#if WITH_GTKMM_3_22
+# include <gdkmm/monitor.h>
+#endif
+
#include "inkscape.h"
#include "extension/db.h"
#include "extension/effect.h"
@@ -176,13 +180,26 @@ sp_create_window(SPViewWidget *vw, bool editable)
gint full = prefs->getBool("/desktop/geometry/fullscreen");
gint maxed = prefs->getBool("/desktop/geometry/maximized");
if (pw>0 && ph>0) {
- gint w = MIN(gdk_screen_width(), pw);
- gint h = MIN(gdk_screen_height(), ph);
- gint x = MIN(gdk_screen_width() - MIN_ONSCREEN_DISTANCE, px);
- gint y = MIN(gdk_screen_height() - MIN_ONSCREEN_DISTANCE, py);
+#if WITH_GTKMM_3_22
+ auto const display = Gdk::Display::get_default();
+ auto const monitor = display->get_primary_monitor();
+
+ // A Gdk::Rectangle in "application pixel" units
+ Gdk::Rectangle screen_geometry;
+ monitor->get_geometry(screen_geometry);
+ auto const screen_width = screen_geometry.get_width();
+ auto const screen_height = screen_geometry.get_height();
+#else
+ auto const screen_width = gdk_screen_width();
+ auto const screen_height = gdk_screen_height();
+#endif
+ gint w = MIN(screen_width, pw);
+ gint h = MIN(screen_height, ph);
+ gint x = MIN(screen_width - MIN_ONSCREEN_DISTANCE, px);
+ gint y = MIN(screen_height - MIN_ONSCREEN_DISTANCE, py);
if (w>0 && h>0) {
- x = MIN(gdk_screen_width() - w, x);
- y = MIN(gdk_screen_height() - h, y);
+ x = MIN(screen_width - w, x);
+ y = MIN(screen_height - h, y);
desktop->setWindowSize(w, h);
}