Don't tear down and rebuild all rulers on each visibility change, avoid setting track heights when presenting the editor, fix duplicated secondary-m in SAE bindings, avoid dirty master channel updates on osx.

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3989 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Nick Mainsbridge 2008-10-21 14:33:58 +00:00
parent a02c4dadf1
commit 8e095d439f
4 changed files with 222 additions and 189 deletions

View file

@ -106,7 +106,7 @@
(gtk_accel_path "<Actions>/Main/AddTrackBus" "<%PRIMARY%><%TERTIARY%>n")
(gtk_accel_path "<Actions>/Common/goto-mixer" "<%SECONDARY%>m")
(gtk_accel_path "<Actions>/Editor/add-location-from-playhead" "KP_Enter")
(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "<%SECONDARY%>m")
(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "m")
;; arrow keys, navigation etc.

View file

@ -377,6 +377,68 @@ Editor::Editor ()
set_zoom_focus (ZoomFocusLeft);
zoom_range_clock.ValueChanged.connect (mem_fun(*this, &Editor::zoom_adjustment_changed));
bbt_label.set_name ("EditorTimeButton");
bbt_label.set_size_request (-1, (int)timebar_height);
bbt_label.set_alignment (1.0, 0.5);
bbt_label.set_padding (5,0);
bbt_label.hide ();
bbt_label.set_no_show_all();
minsec_label.set_name ("EditorTimeButton");
minsec_label.set_size_request (-1, (int)timebar_height);
minsec_label.set_alignment (1.0, 0.5);
minsec_label.set_padding (5,0);
minsec_label.hide ();
minsec_label.set_no_show_all();
smpte_label.set_name ("EditorTimeButton");
smpte_label.set_size_request (-1, (int)timebar_height);
smpte_label.set_alignment (1.0, 0.5);
smpte_label.set_padding (5,0);
smpte_label.hide ();
smpte_label.set_no_show_all();
frame_label.set_name ("EditorTimeButton");
frame_label.set_size_request (-1, (int)timebar_height);
frame_label.set_alignment (1.0, 0.5);
frame_label.set_padding (5,0);
frame_label.hide ();
frame_label.set_no_show_all();
tempo_label.set_name ("EditorTimeButton");
tempo_label.set_size_request (-1, (int)timebar_height);
tempo_label.set_alignment (1.0, 0.5);
tempo_label.set_padding (5,0);
tempo_label.hide();
tempo_label.set_no_show_all();
meter_label.set_name ("EditorTimeButton");
meter_label.set_size_request (-1, (int)timebar_height);
meter_label.set_alignment (1.0, 0.5);
meter_label.set_padding (5,0);
meter_label.hide();
meter_label.set_no_show_all();
mark_label.set_name ("EditorTimeButton");
mark_label.set_size_request (-1, (int)timebar_height);
mark_label.set_alignment (1.0, 0.5);
mark_label.set_padding (5,0);
mark_label.hide();
mark_label.set_no_show_all();
cd_mark_label.set_name ("EditorTimeButton");
cd_mark_label.set_size_request (-1, (int)timebar_height);
cd_mark_label.set_alignment (1.0, 0.5);
cd_mark_label.set_padding (5,0);
cd_mark_label.hide();
cd_mark_label.set_no_show_all();
range_mark_label.set_name ("EditorTimeButton");
range_mark_label.set_size_request (-1, (int)timebar_height);
range_mark_label.set_alignment (1.0, 0.5);
range_mark_label.set_padding (5,0);
range_mark_label.hide();
range_mark_label.set_no_show_all();
transport_mark_label.set_name ("EditorTimeButton");
transport_mark_label.set_size_request (-1, (int)timebar_height);
transport_mark_label.set_alignment (1.0, 0.5);
transport_mark_label.set_padding (5,0);
transport_mark_label.hide();
transport_mark_label.set_no_show_all();
initialize_rulers ();
initialize_canvas ();
@ -407,70 +469,15 @@ Editor::Editor ()
setup_toolbar ();
edit_point_clock.ValueChanged.connect (mem_fun(*this, &Editor::edit_point_clock_changed));
time_canvas_vbox.pack_start (*_ruler_separator, false, false);
time_canvas_vbox.pack_start (*minsec_ruler, false, false);
time_canvas_vbox.pack_start (*smpte_ruler, false, false);
time_canvas_vbox.pack_start (*frames_ruler, false, false);
time_canvas_vbox.pack_start (*bbt_ruler, false, false);
//time_canvas_vbox.set_size_request (-1, (int)(timebar_height * visible_timebars) + 2);
time_canvas_vbox.set_size_request (-1, -1);
bbt_label.set_name ("EditorTimeButton");
bbt_label.set_size_request (-1, (int)timebar_height);
bbt_label.set_alignment (1.0, 0.5);
bbt_label.set_padding (5,0);
minsec_label.set_name ("EditorTimeButton");
minsec_label.set_size_request (-1, (int)timebar_height);
minsec_label.set_alignment (1.0, 0.5);
minsec_label.set_padding (5,0);
smpte_label.set_name ("EditorTimeButton");
smpte_label.set_size_request (-1, (int)timebar_height);
smpte_label.set_alignment (1.0, 0.5);
smpte_label.set_padding (5,0);
frame_label.set_name ("EditorTimeButton");
frame_label.set_size_request (-1, (int)timebar_height);
frame_label.set_alignment (1.0, 0.5);
frame_label.set_padding (5,0);
tempo_label.set_name ("EditorTimeButton");
tempo_label.set_size_request (-1, (int)timebar_height);
tempo_label.set_alignment (1.0, 0.5);
tempo_label.set_padding (5,0);
meter_label.set_name ("EditorTimeButton");
meter_label.set_size_request (-1, (int)timebar_height);
meter_label.set_alignment (1.0, 0.5);
meter_label.set_padding (5,0);
mark_label.set_name ("EditorTimeButton");
mark_label.set_size_request (-1, (int)timebar_height);
mark_label.set_alignment (1.0, 0.5);
mark_label.set_padding (5,0);
cd_mark_label.set_name ("EditorTimeButton");
cd_mark_label.set_size_request (-1, (int)timebar_height);
cd_mark_label.set_alignment (1.0, 0.5);
cd_mark_label.set_padding (5,0);
range_mark_label.set_name ("EditorTimeButton");
range_mark_label.set_size_request (-1, (int)timebar_height);
range_mark_label.set_alignment (1.0, 0.5);
range_mark_label.set_padding (5,0);
transport_mark_label.set_name ("EditorTimeButton");
transport_mark_label.set_size_request (-1, (int)timebar_height);
transport_mark_label.set_alignment (1.0, 0.5);
transport_mark_label.set_padding (5,0);
ruler_label_vbox.pack_start (minsec_label, false, false);
ruler_label_vbox.pack_start (smpte_label, false, false);
ruler_label_vbox.pack_start (frame_label, false, false);
ruler_label_vbox.pack_start (bbt_label, false, false);
ruler_label_event_box.add (ruler_label_vbox);
ruler_label_event_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
ruler_label_event_box.set_name ("TimebarLabelBase");
ruler_label_event_box.signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_label_button_release));
time_button_vbox.pack_start (meter_label, false, false);
time_button_vbox.pack_start (tempo_label, false, false);
time_button_vbox.pack_start (mark_label, false, false);
time_button_event_box.add (time_button_vbox);
time_button_event_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
@ -887,19 +894,21 @@ Editor::set_entered_track (TimeAxisView* tav)
void
Editor::show_window ()
{
show_all ();
present ();
if (! is_visible ()) {
show_all ();
/* now reset all audio_time_axis heights, because widgets might need
to be re-hidden
*/
/* now reset all audio_time_axis heights, because widgets might need
to be re-hidden
*/
TimeAxisView *tv;
TimeAxisView *tv;
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
tv = (static_cast<TimeAxisView*>(*i));
tv->reset_height ();
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
tv = (static_cast<TimeAxisView*>(*i));
tv->reset_height ();
}
}
present ();
}
void

View file

@ -63,31 +63,87 @@ Editor::initialize_rulers ()
_ruler_separator->set_size_request(-1, 2);
_ruler_separator->show();
_minsec_ruler = gtk_custom_hruler_new ();
minsec_ruler = Glib::wrap (_minsec_ruler);
minsec_ruler->set_name ("MinSecRuler");
minsec_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_minsec_ruler), &ruler_metrics[ruler_metric_minsec]);
minsec_ruler->hide ();
minsec_ruler->set_no_show_all();
_smpte_ruler = gtk_custom_hruler_new ();
smpte_ruler = Glib::wrap (_smpte_ruler);
smpte_ruler->set_name ("SMPTERuler");
smpte_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_smpte_ruler), &ruler_metrics[ruler_metric_smpte]);
_bbt_ruler = gtk_custom_hruler_new ();
bbt_ruler = Glib::wrap (_bbt_ruler);
bbt_ruler->set_name ("BBTRuler");
bbt_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_bbt_ruler), &ruler_metrics[ruler_metric_bbt]);
smpte_ruler->hide ();
smpte_ruler->set_no_show_all();
_frames_ruler = gtk_custom_hruler_new ();
frames_ruler = Glib::wrap (_frames_ruler);
frames_ruler->set_name ("FramesRuler");
frames_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_frames_ruler), &ruler_metrics[ruler_metric_frames]);
frames_ruler->hide ();
frames_ruler->set_no_show_all();
_minsec_ruler = gtk_custom_hruler_new ();
minsec_ruler = Glib::wrap (_minsec_ruler);
minsec_ruler->set_name ("MinSecRuler");
minsec_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_minsec_ruler), &ruler_metrics[ruler_metric_minsec]);
_bbt_ruler = gtk_custom_hruler_new ();
bbt_ruler = Glib::wrap (_bbt_ruler);
bbt_ruler->set_name ("BBTRuler");
bbt_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_bbt_ruler), &ruler_metrics[ruler_metric_bbt]);
bbt_ruler->hide ();
bbt_ruler->set_no_show_all();
visible_timebars = 1; /*this will be changed below */
using namespace Box_Helpers;
BoxList & ruler_lab_children = ruler_label_vbox.children();
BoxList & ruler_children = time_canvas_vbox.children();
BoxList & lab_children = time_button_vbox.children();
BoxList::iterator canvaspos = ruler_children.begin();
lab_children.push_back (Element(meter_label, PACK_SHRINK, PACK_START));
lab_children.push_back (Element(tempo_label, PACK_SHRINK, PACK_START));
lab_children.push_back (Element(range_mark_label, PACK_SHRINK, PACK_START));
lab_children.push_back (Element(transport_mark_label, PACK_SHRINK, PACK_START));
lab_children.push_back (Element(cd_mark_label, PACK_SHRINK, PACK_START));
lab_children.push_back (Element(mark_label, PACK_SHRINK, PACK_START));
ruler_lab_children.push_back (Element(minsec_label, PACK_SHRINK, PACK_START));
ruler_children.insert (canvaspos, Element(*minsec_ruler, PACK_SHRINK, PACK_START));
ruler_lab_children.push_back (Element(smpte_label, PACK_SHRINK, PACK_START));
ruler_children.insert (canvaspos, Element(*smpte_ruler, PACK_SHRINK, PACK_START));
ruler_lab_children.push_back (Element(frame_label, PACK_SHRINK, PACK_START));
ruler_children.insert (canvaspos, Element(*frames_ruler, PACK_SHRINK, PACK_START));
ruler_lab_children.push_back (Element(bbt_label, PACK_SHRINK, PACK_START));
ruler_children.insert (canvaspos, Element(*bbt_ruler, PACK_SHRINK, PACK_START));
smpte_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
bbt_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
frames_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
minsec_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
smpte_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
bbt_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
frames_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
minsec_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
smpte_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
bbt_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
frames_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
minsec_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
smpte_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
bbt_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
frames_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
minsec_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
smpte_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
bbt_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
frames_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
minsec_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
visible_timebars = 0; /*this will be changed below */
ruler_pressed_button = 0;
canvas_timebars_vsize = 0;
}
@ -470,66 +526,76 @@ Editor::restore_ruler_visibility ()
if (node) {
if ((prop = node->property ("smpte")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_timecode_action->set_active (true);
else
} else {
ruler_timecode_action->set_active (false);
}
}
if ((prop = node->property ("bbt")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_bbt_action->set_active (true);
else
} else {
ruler_bbt_action->set_active (false);
}
}
if ((prop = node->property ("frames")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_samples_action->set_active (true);
else
} else {
ruler_samples_action->set_active (false);
}
}
if ((prop = node->property ("minsec")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_minsec_action->set_active (true);
else
} else {
ruler_minsec_action->set_active (false);
}
}
if ((prop = node->property ("tempo")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_tempo_action->set_active (true);
else
} else {
ruler_tempo_action->set_active (false);
}
}
if ((prop = node->property ("meter")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_meter_action->set_active (true);
else
} else {
ruler_meter_action->set_active (false);
}
}
if ((prop = node->property ("marker")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_marker_action->set_active (true);
else
} else {
ruler_marker_action->set_active (false);
}
}
if ((prop = node->property ("rangemarker")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_range_action->set_active (true);
else
} else {
ruler_range_action->set_active (false);
}
}
if ((prop = node->property ("transportmarker")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_loop_punch_action->set_active (true);
else
} else {
ruler_loop_punch_action->set_active (false);
}
}
if ((prop = node->property ("cdmarker")) != 0) {
if (prop->value() == "yes")
if (prop->value() == "yes") {
ruler_cd_marker_action->set_active (true);
else
} else {
ruler_cd_marker_action->set_active (false);
}
} else {
// this session doesn't yet know about the cdmarker ruler
@ -548,17 +614,12 @@ Editor::restore_ruler_visibility ()
}
no_ruler_shown_update = false;
update_ruler_visibility ();
}
void
Editor::update_ruler_visibility ()
{
using namespace Box_Helpers;
BoxList & lab_children = time_button_vbox.children();
BoxList & ruler_lab_children = ruler_label_vbox.children();
BoxList & ruler_children = time_canvas_vbox.children();
int visible_rulers = 0;
if (no_ruler_shown_update) {
@ -567,98 +628,56 @@ Editor::update_ruler_visibility ()
visible_timebars = 0;
lab_children.clear();
ruler_lab_children.clear();
// leave the last one (the time_canvas) intact
while (ruler_children.size() > 0) {
ruler_children.pop_front();
}
BoxList::iterator canvaspos = ruler_children.begin();
_smpte_ruler = gtk_custom_hruler_new ();
smpte_ruler = Glib::wrap (_smpte_ruler);
smpte_ruler->set_name ("SMPTERuler");
smpte_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_smpte_ruler), &ruler_metrics[ruler_metric_smpte]);
_bbt_ruler = gtk_custom_hruler_new ();
bbt_ruler = Glib::wrap (_bbt_ruler);
bbt_ruler->set_name ("BBTRuler");
bbt_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_bbt_ruler), &ruler_metrics[ruler_metric_bbt]);
_frames_ruler = gtk_custom_hruler_new ();
frames_ruler = Glib::wrap (_frames_ruler);
frames_ruler->set_name ("FramesRuler");
frames_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_frames_ruler), &ruler_metrics[ruler_metric_frames]);
_minsec_ruler = gtk_custom_hruler_new ();
minsec_ruler = Glib::wrap (_minsec_ruler);
minsec_ruler->set_name ("MinSecRuler");
minsec_ruler->set_size_request (-1, (int)timebar_height);
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_minsec_ruler), &ruler_metrics[ruler_metric_minsec]);
smpte_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
bbt_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
frames_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
minsec_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
smpte_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
bbt_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
frames_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
minsec_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
smpte_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
bbt_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
frames_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
minsec_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
smpte_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
bbt_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
frames_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
minsec_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
smpte_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
bbt_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
frames_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
minsec_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
ruler_children.insert (canvaspos, Element(*_ruler_separator, PACK_SHRINK, PACK_START));
if (ruler_minsec_action->get_active()) {
ruler_lab_children.push_back (Element(minsec_label, PACK_SHRINK, PACK_START));
ruler_children.insert (canvaspos, Element(*minsec_ruler, PACK_SHRINK, PACK_START));
visible_rulers++;
minsec_label.show ();
minsec_ruler->show ();
} else {
minsec_label.hide ();
minsec_ruler->hide ();
}
if (ruler_timecode_action->get_active()) {
ruler_lab_children.push_back (Element(smpte_label, PACK_SHRINK, PACK_START));
ruler_children.insert (canvaspos, Element(*smpte_ruler, PACK_SHRINK, PACK_START));
visible_rulers++;
smpte_label.show ();
smpte_ruler->show ();
} else {
smpte_label.hide ();
smpte_ruler->hide ();
}
if (ruler_samples_action->get_active()) {
ruler_lab_children.push_back (Element(frame_label, PACK_SHRINK, PACK_START));
ruler_children.insert (canvaspos, Element(*frames_ruler, PACK_SHRINK, PACK_START));
visible_rulers++;
frame_label.show ();
frames_ruler->show ();
} else {
frame_label.hide ();
frames_ruler->hide ();
}
if (ruler_bbt_action->get_active()) {
ruler_lab_children.push_back (Element(bbt_label, PACK_SHRINK, PACK_START));
ruler_children.insert (canvaspos, Element(*bbt_ruler, PACK_SHRINK, PACK_START));
visible_rulers++;
bbt_label.show ();
bbt_ruler->show ();
} else {
bbt_label.hide ();
bbt_ruler->hide ();
}
double tbpos = 0.0;
double tbgpos = 0.0;
double old_unit_pos;
if (ruler_meter_action->get_active()) {
lab_children.push_back (Element(meter_label, PACK_SHRINK, PACK_START));
#ifdef GTKOSX
/* gtk update probs require this (damn) */
meter_label.hide();
tempo_label.hide();
range_mark_label.hide();
transport_mark_label.hide();
cd_mark_label.hide();
mark_label.hide();
#endif
if (ruler_meter_action->get_active()) {
old_unit_pos = meter_group->property_y();
if (tbpos != old_unit_pos) {
meter_group->move ( 0.0, tbpos - old_unit_pos);
@ -669,16 +688,17 @@ Editor::update_ruler_visibility ()
}
meter_bar_group->show();
meter_group->show();
meter_label.show();
tbpos += timebar_height;
tbgpos += timebar_height;
visible_timebars++;
} else {
meter_bar_group->hide();
meter_group->hide();
meter_label.hide();
}
if (ruler_tempo_action->get_active()) {
lab_children.push_back (Element(tempo_label, PACK_SHRINK, PACK_START));
old_unit_pos = tempo_group->property_y();
if (tbpos != old_unit_pos) {
tempo_group->move(0.0, tbpos - old_unit_pos);
@ -689,16 +709,17 @@ Editor::update_ruler_visibility ()
}
tempo_bar_group->show();
tempo_group->show();
tempo_label.show();
tbpos += timebar_height;
tbgpos += timebar_height;
visible_timebars++;
} else {
tempo_bar_group->hide();
tempo_group->hide();
tempo_label.hide();
}
if (!Profile->get_sae() && ruler_range_action->get_active()) {
lab_children.push_back (Element(range_mark_label, PACK_SHRINK, PACK_START));
old_unit_pos = range_marker_group->property_y();
if (tbpos != old_unit_pos) {
range_marker_group->move (0.0, tbpos - old_unit_pos);
@ -709,16 +730,17 @@ Editor::update_ruler_visibility ()
}
range_marker_bar_group->show();
range_marker_group->show();
range_mark_label.show();
tbpos += timebar_height;
tbgpos += timebar_height;
visible_timebars++;
} else {
range_marker_bar_group->hide();
range_marker_group->hide();
range_mark_label.hide();
}
if (ruler_loop_punch_action->get_active()) {
lab_children.push_back (Element(transport_mark_label, PACK_SHRINK, PACK_START));
old_unit_pos = transport_marker_group->property_y();
if (tbpos != old_unit_pos) {
transport_marker_group->move ( 0.0, tbpos - old_unit_pos);
@ -729,16 +751,17 @@ Editor::update_ruler_visibility ()
}
transport_marker_bar_group->show();
transport_marker_group->show();
transport_mark_label.show();
tbpos += timebar_height;
tbgpos += timebar_height;
visible_timebars++;
} else {
transport_marker_bar_group->hide();
transport_marker_group->hide();
transport_mark_label.hide();
}
if (ruler_cd_marker_action->get_active()) {
lab_children.push_back (Element(cd_mark_label, PACK_SHRINK, PACK_START));
old_unit_pos = cd_marker_group->property_y();
if (tbpos != old_unit_pos) {
cd_marker_group->move (0.0, tbpos - old_unit_pos);
@ -749,6 +772,7 @@ Editor::update_ruler_visibility ()
}
cd_marker_bar_group->show();
cd_marker_group->show();
cd_mark_label.show();
tbpos += timebar_height;
tbgpos += timebar_height;
visible_timebars++;
@ -757,12 +781,12 @@ Editor::update_ruler_visibility ()
} else {
cd_marker_bar_group->hide();
cd_marker_group->hide();
cd_mark_label.hide();
// make sure all cd markers show up in their respective places
update_cd_marker_display();
}
if (ruler_marker_action->get_active()) {
lab_children.push_back (Element(mark_label, PACK_SHRINK, PACK_START));
old_unit_pos = marker_group->property_y();
if (tbpos != old_unit_pos) {
marker_group->move ( 0.0, tbpos - old_unit_pos);
@ -773,12 +797,14 @@ Editor::update_ruler_visibility ()
}
marker_bar_group->show();
marker_group->show();
mark_label.show();
tbpos += timebar_height;
tbgpos += timebar_height;
visible_timebars++;
} else {
marker_bar_group->hide();
marker_group->hide();
mark_label.hide();
}
gdouble old_canvas_timebars_vsize = canvas_timebars_vsize;
@ -802,16 +828,10 @@ Editor::update_ruler_visibility ()
}
ruler_label_vbox.set_size_request (-1, (int)(timebar_height * visible_rulers));
time_canvas_vbox.set_size_request (-1,-1);
time_canvas_event_box.queue_resize();
update_fixed_rulers();
//redisplay_tempo (false);
time_canvas_event_box.show_all();
ruler_label_event_box.show_all();
time_button_event_box.show_all();
update_fixed_rulers();
redisplay_tempo (false);
}
void

View file

@ -191,8 +191,12 @@ Mixer_UI::Mixer_UI ()
list_vpacker.pack_start (rhs_pane1, true, true);
global_hpacker.pack_start (scroller, true, true);
#ifdef GTKOSX
/* current gtk-quartz has dirty updates on borders like this one */
global_hpacker.pack_start (out_packer, false, false, 0);
#else
global_hpacker.pack_start (out_packer, false, false, 12);
#endif
list_hpane.add1(list_vpacker);
list_hpane.add2(global_hpacker);