From 02e3b74ccb6e641efd29ad137df97aaa6725e5fc Mon Sep 17 00:00:00 2001 From: Tarn Burton Date: Wed, 9 Mar 2016 06:37:13 -0500 Subject: [PATCH] Fix for missing schema on non-Cinnamon Calling Gio::Settings::create("org.cinnamon.desktop.interface") on non-cinnamon DE fails since that schema doesn't exist. Switched to using DESKTOP_SESSION to detect which settings to use. --- frontend/gtkmm/NotebookWindow.cc | 15 ++++----------- frontend/gtkmm/NotebookWindow.hh | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/frontend/gtkmm/NotebookWindow.cc b/frontend/gtkmm/NotebookWindow.cc index fee53be0ae..651349a827 100644 --- a/frontend/gtkmm/NotebookWindow.cc +++ b/frontend/gtkmm/NotebookWindow.cc @@ -25,20 +25,15 @@ NotebookWindow::NotebookWindow() #ifdef __APPLE__ scale = 1.0; #else - settings_gnome = Gio::Settings::create("org.gnome.desktop.interface"); - settings_cinnamon = Gio::Settings::create("org.cinnamon.desktop.interface"); - double scale_gnome = settings_gnome->get_double("text-scaling-factor"); - double scale_cinnamon = settings_cinnamon->get_double("text-scaling-factor"); - scale = std::max(scale_gnome, scale_cinnamon); + settings = Gio::Settings::create((strcmp(std::getenv("DESKTOP_SESSION"), "cinnamon") == 0) ? "org.cinnamon.desktop.interface" : "org.gnome.desktop.interface"); + scale = settings->get_double("text-scaling-factor"); #endif engine.latex_packages.push_back("breqn"); engine.latex_packages.push_back("hyperref"); engine.set_scale(scale); #ifndef __APPLE__ - settings_gnome->signal_changed().connect( - sigc::mem_fun(*this, &NotebookWindow::on_text_scaling_factor_changed)); - settings_cinnamon->signal_changed().connect( + settings->signal_changed().connect( sigc::mem_fun(*this, &NotebookWindow::on_text_scaling_factor_changed)); #endif @@ -1178,9 +1173,7 @@ void NotebookWindow::on_help_about() void NotebookWindow::on_text_scaling_factor_changed(const std::string& key) { if(key=="text-scaling-factor") { - double scale_gnome = settings_gnome->get_double("text-scaling-factor"); - double scale_cinnamon = settings_cinnamon->get_double("text-scaling-factor"); - scale = std::max(scale_gnome, scale_cinnamon); + scale = settings->get_double("text-scaling-factor"); std::cout << "cadabra-client: text-scaling-factor = " << scale << std::endl; engine.set_scale(scale); engine.invalidate_all(); diff --git a/frontend/gtkmm/NotebookWindow.hh b/frontend/gtkmm/NotebookWindow.hh index 85324f8831..dff997c640 100644 --- a/frontend/gtkmm/NotebookWindow.hh +++ b/frontend/gtkmm/NotebookWindow.hh @@ -176,7 +176,7 @@ namespace cadabra { // Styling through CSS void setup_css_provider(); Glib::RefPtr css_provider; - Glib::RefPtr settings_gnome, settings_cinnamon; + Glib::RefPtr settings; void on_text_scaling_factor_changed(const std::string& key); int last_configure_width;