diff options
Diffstat (limited to 'libs/libgnomecanvasmm/libgnomecanvasmm/text.cc')
-rw-r--r-- | libs/libgnomecanvasmm/libgnomecanvasmm/text.cc | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/libs/libgnomecanvasmm/libgnomecanvasmm/text.cc b/libs/libgnomecanvasmm/libgnomecanvasmm/text.cc index 62ccc4b981..c18c9e202c 100644 --- a/libs/libgnomecanvasmm/libgnomecanvasmm/text.cc +++ b/libs/libgnomecanvasmm/libgnomecanvasmm/text.cc @@ -25,6 +25,22 @@ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include <gtk/gtksettings.h> +#include <glib-object.h> + +static void +_catch_xft_dpi (GObject* thing, gpointer val, gpointer arg) +{ + GnomeCanvasText* text = (GnomeCanvasText*) arg; + gchar *txt; + + g_object_get (G_OBJECT(text), "text", &txt, NULL); + + if (txt && txt[0] != '\0') { + g_object_set (G_OBJECT(text), "text", txt, NULL); + } +} + namespace Gnome { @@ -36,12 +52,14 @@ Text::Text(Group& parentx, double x, double y, const Glib::ustring& text) { item_construct(parentx); set("x", x, "y", y, "text", text.c_str(), 0); + g_signal_connect (gtk_settings_get_default(), "notify::gtk-xft-dpi", (GCallback) _catch_xft_dpi, gobj()); } Text::Text(Group& parentx) : Item(GNOME_CANVAS_ITEM(g_object_new(get_type(), 0))) { item_construct(parentx); + g_signal_connect (gtk_settings_get_default(), "notify::gtk-xft-dpi", (GCallback) _catch_xft_dpi, gobj()); } } /* namespace Canvas */ @@ -113,13 +131,13 @@ Text::Text(const Glib::ConstructParams& construct_params) : Item(construct_params) { - } +} Text::Text(GnomeCanvasText* castitem) : Item((GnomeCanvasItem*)(castitem)) { - } +} Text::~Text() { |