summaryrefslogtreecommitdiffstats
path: root/src/svg-view-slideshow.cpp
diff options
context:
space:
mode:
authorJabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es>2017-12-27 17:05:55 +0000
committerJabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es>2017-12-27 17:05:55 +0000
commit76aab6da8d642a2e72c0a8e0f38c6994a6e62b35 (patch)
tree047c4f9d208f8cf8b647acec494a2bb7a5d160ec /src/svg-view-slideshow.cpp
parentMerge branch 'master' into powerpencilII (diff)
parentStop using deprecated gtk_adjustment_value_changed (diff)
downloadinkscape-76aab6da8d642a2e72c0a8e0f38c6994a6e62b35.tar.gz
inkscape-76aab6da8d642a2e72c0a8e0f38c6994a6e62b35.zip
Merge branch 'master' into powerpencilII
Diffstat (limited to 'src/svg-view-slideshow.cpp')
-rw-r--r--src/svg-view-slideshow.cpp36
1 files changed, 34 insertions, 2 deletions
diff --git a/src/svg-view-slideshow.cpp b/src/svg-view-slideshow.cpp
index 23ac5f06c..0e50d582b 100644
--- a/src/svg-view-slideshow.cpp
+++ b/src/svg-view-slideshow.cpp
@@ -31,6 +31,10 @@
#include <glibmm/main.h>
+#if GTKMM_CHECK_VERSION(3,22,0)
+# include <gdkmm/monitor.h>
+#endif
+
#include <gtkmm/button.h>
#include <gtkmm/buttonbox.h>
#include <gtkmm/image.h>
@@ -44,6 +48,9 @@
#include "svg-view-slideshow.h"
#include "svg-view-widget.h"
+#if GTKMM_CHECK_VERSION(3,22,0)
+# include <gdkmm/monitor.h>
+#endif
SPSlideShow::SPSlideShow(std::vector<Glib::ustring> const &slides, bool full_screen, int timer, double scale)
@@ -57,9 +64,34 @@ SPSlideShow::SPSlideShow(std::vector<Glib::ustring> const &slides, bool full_scr
, _ctrlwin(NULL)
{
// setup initial document
+#if GTKMM_CHECK_VERSION(3,22,0)
+ auto display = Gdk::Display::get_default();
+ auto monitor = display->get_primary_monitor();
+
+ // Fallback to monitor number 0 if the user hasn't configured a primary monitor
+ if (!monitor) {
+ monitor = display->get_monitor(0);
+ }
+
+ if (monitor) {
+ Gdk::Rectangle monitor_geometry;
+ monitor->get_geometry(monitor_geometry);
+
+ auto const monitor_width = monitor_geometry.get_width();
+ auto const monitor_height = monitor_geometry.get_height();
+
+#else
auto default_screen = Gdk::Screen::get_default();
- set_default_size(MIN ((int)_doc->getWidth().value("px")*_scale, default_screen->get_width() - 64),
- MIN ((int)_doc->getHeight().value("px")*_scale, default_screen->get_height() - 64));
+
+ if (default_screen) {
+ auto const monitor_width = default_screen->get_width();
+ auto const monitor_height = default_screen->get_height();
+#endif
+
+ set_default_size(MIN ((int)_doc->getWidth().value("px")*_scale, monitor_width - 64),
+ MIN ((int)_doc->getHeight().value("px")*_scale, monitor_height - 64));
+
+ }
_view = sp_svg_view_widget_new(_doc);
SP_SVG_VIEW_WIDGET(_view)->setResize( false, _doc->getWidth().value("px"), _doc->getHeight().value("px") );