From f138eb91106c9b6abf6d4b07cb1ff8929fcbf0d0 Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Tue, 26 Dec 2017 01:37:03 +0000 Subject: UXManager: Gtkmm deprecation fix --- src/ui/uxmanager.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/ui/uxmanager.cpp') diff --git a/src/ui/uxmanager.cpp b/src/ui/uxmanager.cpp index c263eaded..f48f40879 100644 --- a/src/ui/uxmanager.cpp +++ b/src/ui/uxmanager.cpp @@ -20,6 +20,10 @@ #include "util/ege-tags.h" #include "widgets/toolbox.h" +#if GTKMM_CHECK_VERSION(3,22,0) +# include +#endif + using std::vector; class TrackItem @@ -120,10 +124,28 @@ UXManagerImpl::UXManagerImpl() : tags.addTag(ege::Tag("General")); tags.addTag(ege::Tag("Icons")); + // Figure out if we're on a widescreen display +#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); + + int const width = monitor_geometry.get_width(); + int const height = monitor_geometry.get_height(); +#else Glib::RefPtr defaultScreen = Gdk::Screen::get_default(); if (defaultScreen) { int width = defaultScreen->get_width(); int height = defaultScreen->get_height(); +#endif gdouble aspect = static_cast(width) / static_cast(height); if (aspect > 1.65) { _widescreen = true; -- cgit v1.2.3