diff options
author | Doug McLain <doug@nostar.net> | 2008-02-24 19:13:09 +0000 |
---|---|---|
committer | Doug McLain <doug@nostar.net> | 2008-02-24 19:13:09 +0000 |
commit | 2f18e339cdffadbc5a37db39207dc1f7be7cb8ac (patch) | |
tree | 6d60e33620b1d87198ac6919a8ca4d1262b9d2a4 /gtk2_ardour/utils.cc | |
parent | 6299560116cb1e024f214f4928aa88605a5cddff (diff) |
Fixes for canvas and gain meter text not being scaled on startup
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3119 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/utils.cc')
-rw-r--r-- | gtk2_ardour/utils.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc index a1ca5c2eb0..68b5768ded 100644 --- a/gtk2_ardour/utils.cc +++ b/gtk2_ardour/utils.cc @@ -17,6 +17,9 @@ */ +#include <pango/pangoft2.h> // for fontmap resolution control for GnomeCanvas +#include <pango/pangocairo.h> // for fontmap resolution control for GnomeCanvas + #include <cstdlib> #include <cctype> #include <fstream> @@ -31,6 +34,7 @@ #include <gtkmm2ext/utils.h> #include <ardour/ardour.h> +#include <ardour/configuration.h> #include "ardour_ui.h" #include "keyboard.h" @@ -45,6 +49,8 @@ using namespace sigc; using namespace Glib; using namespace PBD; +sigc::signal<void> DPIReset; + int pixel_width (const ustring& str, Pango::FontDescription& font) { @@ -692,6 +698,29 @@ key_is_legal_for_numeric_entry (guint keyval) return false; } +void +set_pango_fontsize () +{ + long val = ARDOUR::Config->get_font_scale(); + + /* FT2 rendering */ + + pango_ft2_font_map_set_resolution ((PangoFT2FontMap*) pango_ft2_font_map_for_display(), val/1024, val/1024); + + /* Cairo rendering, in case there is any */ + + pango_cairo_font_map_set_resolution ((PangoCairoFontMap*) pango_cairo_font_map_get_default(), val/1024); +} +void +reset_dpi () +{ + long val = ARDOUR::Config->get_font_scale(); + set_pango_fontsize (); + /* Xft rendering */ + gtk_settings_set_long_property (gtk_settings_get_default(), + "gtk-xft-dpi", val, "ardour"); + DPIReset();//Emit Signal +} |