diff options
author | Nick Mainsbridge <beatroute@iprimus.com.au> | 2008-11-07 21:40:10 +0000 |
---|---|---|
committer | Nick Mainsbridge <beatroute@iprimus.com.au> | 2008-11-07 21:40:10 +0000 |
commit | d0176c23e384a2bb963dcc75a8300caf2852d3d7 (patch) | |
tree | d9f9027e91bc0d81a29171ce515d5fa170019367 /gtk2_ardour | |
parent | 13e2813847fbb3490874307a4ef23e46a315b3e7 (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.cc | 6 | ||||
-rw-r--r-- | gtk2_ardour/mixer_ui.cc | 28 | ||||
-rw-r--r-- | gtk2_ardour/mixer_ui.h | 3 |
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&); |