summaryrefslogtreecommitdiff
path: root/gtk2_ardour/gain_meter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/gain_meter.cc')
-rw-r--r--gtk2_ardour/gain_meter.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index 8406e21aa3..0a6046309a 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -217,8 +217,10 @@ GainMeter::GainMeter (boost::shared_ptr<IO> io, Session& s)
ResetGroupPeakDisplays.connect (mem_fun(*this, &GainMeter::reset_group_peak_display));
UI::instance()->theme_changed.connect (mem_fun(*this, &GainMeter::on_theme_changed));
-
- ColorsChanged.connect (mem_fun (*this, &GainMeter::color_handler));
+
+ ColorsChanged.connect (bind (mem_fun (*this, &GainMeter::color_handler), false));
+ DPIReset.connect (bind (mem_fun (*this, &GainMeter::color_handler), true));
+
//hide_all();
}
@@ -302,7 +304,7 @@ GainMeter::meter_metrics_expose (GdkEventExpose *ev)
Glib::RefPtr<Gdk::Pixmap> pixmap;
std::map<string,Glib::RefPtr<Gdk::Pixmap> >::iterator i = metric_pixmaps.find (meter_metric_area.get_name());
- if (i == metric_pixmaps.end() || style_changed) {
+ if (i == metric_pixmaps.end() || style_changed || dpi_changed) {
pixmap = render_metrics (meter_metric_area);
} else {
pixmap = i->second;
@@ -978,8 +980,9 @@ void GainMeter::clear_meters ()
}
}
-void GainMeter::color_handler()
+void GainMeter::color_handler (bool dpi)
{
color_changed = true;
+ dpi_changed = (dpi) ? true : false;
setup_meters();
}