Using gtkmm, I've written a small test app whose GUI contains three widgets.
The first is a Gtk::Button, the second is a Gtk::FontButton and the third is a Gtk::ProgressBar. The font button itself has the style 'set_use_font()' (i.e. it always displays its button text in whatever font I select). But I want the other two widgets to use the selected font also - so I wrote this little function to capture the "font_set" signal and update the other widgets, like so:- void MainWindow::on_font_changed () { PangoFontDescription* pfd; Pango::FontDescription* new_font; // When the font button is used to select a new font, update the // other widgets (the font button updates itself automatically). Glib::ustring fname = m_pFontButton->get_font_name(); if (pfd = pango_font_description_from_string (fname.c_str())) { if (new_font = new Pango::FontDescription (pfd, true)) { m_pProgress->modify_font (*new_font); // This succeeds m_pButton->modify_font (*new_font); // This doesn't ! delete new_font; } } } You can probably see that the progress bar's font gets successfully changed, whereas the button's font doesn't (not even if I move the main window, or drag something else across it to force a re-draw). I've tried building this app under Linux (using gcc and gtk-x11) and I've also built it for Windows (using MSVC++ and gtk-win32). I get the same result in both cases so I'm guessing that I must have missed out a stage that's needed to update the button. Should I have called something else that would force the button to use the new font? John _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list