summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorNick Mainsbridge <beatroute@iprimus.com.au>2008-11-07 21:40:10 +0000
committerNick Mainsbridge <beatroute@iprimus.com.au>2008-11-07 21:40:10 +0000
commitd0176c23e384a2bb963dcc75a8300caf2852d3d7 (patch)
treed9f9027e91bc0d81a29171ce515d5fa170019367 /gtk2_ardour
parent13e2813847fbb3490874307a4ef23e46a315b3e7 (diff)
Fix (OSX only) for dirty redraws in adjacent mixer strips when resizing.
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4108 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/mixer_strip.cc6
-rw-r--r--gtk2_ardour/mixer_ui.cc28
-rw-r--r--gtk2_ardour/mixer_ui.h3
3 files changed, 33 insertions, 4 deletions
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index e2ed1a8d11..1b8ce06dda 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -504,9 +504,6 @@ MixerStrip::set_width (Width w, void* owner)
((Gtk::Label*)panners.pan_automation_state_button.get_child())->set_text (panners.astate_string(_route->panner().automation_state()));
Gtkmm2ext::set_size_request_to_display_given_text (name_button, "long", 2, 2);
set_size_request (-1, -1);
-#ifdef GTKOSX
- WidthChanged();
-#endif
break;
case Narrow:
@@ -536,6 +533,9 @@ MixerStrip::set_width (Width w, void* owner)
update_output_display ();
mix_group_changed (0);
name_changed (0);
+#ifdef GTKOSX
+ WidthChanged();
+#endif
}
void
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index 07c6f7c9bb..558a7469ab 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -312,7 +312,9 @@ Mixer_UI::add_strip (Session::RouteList& routes)
route->name_changed.connect (bind (mem_fun(*this, &Mixer_UI::strip_name_changed), strip));
strip->GoingAway.connect (bind (mem_fun(*this, &Mixer_UI::remove_strip), strip));
-
+#ifdef GTKOSX
+ strip->WidthChanged.connect (mem_fun(*this, &Mixer_UI::queue_draw_all_strips));
+#endif
strip->signal_button_release_event().connect (bind (mem_fun(*this, &Mixer_UI::strip_button_release_event), strip));
}
@@ -743,6 +745,30 @@ Mixer_UI::redisplay_track_list ()
}
}
+#ifdef GTKOSX
+void
+Mixer_UI::queue_draw_all_strips ()
+{
+ TreeModel::Children rows = track_model->children();
+ TreeModel::Children::iterator i;
+ long order;
+
+ for (order = 0, i = rows.begin(); i != rows.end(); ++i, ++order) {
+ MixerStrip* strip = (*i)[track_columns.strip];
+
+ if (strip == 0) {
+ continue;
+ }
+
+ bool visible = (*i)[track_columns.visible];
+
+ if (visible) {
+ strip->queue_draw();
+ }
+ }
+}
+#endif
+
void
Mixer_UI::set_auto_rebinding( bool val )
{
diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h
index 166d108624..99a2682f2a 100644
--- a/gtk2_ardour/mixer_ui.h
+++ b/gtk2_ardour/mixer_ui.h
@@ -152,6 +152,9 @@ class Mixer_UI : public Gtk::Window
void redisplay_track_list ();
bool no_track_list_redisplay;
bool track_display_button_press (GdkEventButton*);
+#ifdef GTKOSX
+ void queue_draw_all_strips ();
+#endif
void track_list_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&);
void track_list_delete (const Gtk::TreeModel::Path&);