summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/editor.cc28
-rw-r--r--gtk2_ardour/editor.h1
-rw-r--r--gtk2_ardour/editor_canvas.cc26
-rw-r--r--gtk2_ardour/editor_mixer.cc1
-rw-r--r--gtk2_ardour/editor_mouse.cc1
-rw-r--r--gtk2_ardour/editor_ops.cc1
-rw-r--r--gtk2_ardour/editor_tempodisplay.cc8
-rw-r--r--gtk2_ardour/mixer_ui.cc25
8 files changed, 40 insertions, 51 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 7b5685858d..d1bad2d2bd 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -344,7 +344,6 @@ Editor::Editor ()
_new_regionviews_show_envelope = false;
current_timefx = 0;
in_edit_group_row_change = false;
- last_canvas_frame = 0;
playhead_cursor = 0;
button_release_can_deselect = true;
_dragging_playhead = false;
@@ -1174,18 +1173,15 @@ Editor::handle_new_duration ()
}
ENSURE_GUI_THREAD (mem_fun (*this, &Editor::handle_new_duration));
+ nframes64_t new_end = session->current_end_frame() + (nframes64_t) floorf (current_page_frames() * 0.10f);
- nframes64_t new_end = session->get_maximum_extent() + (nframes64_t) floorf (current_page_frames() * 0.10f);
-
- if (new_end > last_canvas_frame) {
- last_canvas_frame = new_end;
- horizontal_adjustment.set_upper (last_canvas_frame / frames_per_unit);
- horizontal_adjustment.set_page_size (current_page_frames()/frames_per_unit);
- //reset_scrolling_region ();
- }
+ horizontal_adjustment.set_upper (new_end / frames_per_unit);
+ horizontal_adjustment.set_page_size (current_page_frames()/frames_per_unit);
- horizontal_adjustment.set_value (leftmost_frame/frames_per_unit);
- //cerr << "Editor::handle_new_duration () called ha v:l:u:ps:lcf = " << horizontal_adjustment.get_value() << ":" << horizontal_adjustment.get_lower() << ":" << horizontal_adjustment.get_upper() << ":" << horizontal_adjustment.get_page_size() << ":" << last_canvas_frame << endl;//DEBUG
+ if (horizontal_adjustment.get_value() + canvas_width > horizontal_adjustment.get_upper()) {
+ horizontal_adjustment.set_value (horizontal_adjustment.get_upper() - canvas_width);
+ }
+ //cerr << "Editor::handle_new_duration () called ha v:l:u:ps:lcf = " << horizontal_adjustment.get_value() << ":" << horizontal_adjustment.get_lower() << ":" << horizontal_adjustment.get_upper() << ":" << horizontal_adjustment.get_page_size() << ":" << endl;//DEBUG
}
void
@@ -1329,7 +1325,6 @@ Editor::connect_to_session (Session *t)
sfbrowser->set_session (session);
}
- last_canvas_frame = 0; // force update in handle_new_duration()
handle_new_duration ();
redisplay_regions ();
@@ -4056,7 +4051,8 @@ Editor::end_location_changed (Location* location)
{
ENSURE_GUI_THREAD (bind (mem_fun(*this, &Editor::end_location_changed), location));
//reset_scrolling_region ();
- horizontal_adjustment.set_upper ( location->start());
+ nframes64_t session_span = location->start() + (nframes64_t) floorf (current_page_frames() * 0.10f);
+ horizontal_adjustment.set_upper (session_span / frames_per_unit);
}
int
@@ -4674,14 +4670,14 @@ Editor::idle_visual_changer ()
if (session) {
csf = session->current_start_frame();
- cef = session->current_end_frame() + (current_page_frames() / 24);// Add a little extra so we can see the end marker
+ cef = session->current_end_frame();
}
/* if we seek beyond the current end of the canvas, move the end */
if (current_time_origin != pending_visual_change.time_origin) {
- last_canvas_frame = (cef > (pending_visual_change.time_origin + current_page_frames())) ? cef : pending_visual_change.time_origin + current_page_frames();
- horizontal_adjustment.set_upper ((cef - csf) / frames_per_unit);
+ cef += current_page_frames() / 10; // Add a little extra so we can see the end marker
+ horizontal_adjustment.set_upper (cef / frames_per_unit);
horizontal_adjustment.set_value (pending_visual_change.time_origin / frames_per_unit);
} else {
update_fixed_rulers();
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index bd161f792b..279de99298 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -877,7 +877,6 @@ class Editor : public PublicEditor
double canvas_width;
double canvas_height;
double full_canvas_height;
- nframes64_t last_canvas_frame;
bool track_canvas_map_handler (GdkEventAny*);
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc
index a1930e58d7..f0a016d039 100644
--- a/gtk2_ardour/editor_canvas.cc
+++ b/gtk2_ardour/editor_canvas.cc
@@ -340,6 +340,17 @@ Editor::track_canvas_size_allocated ()
for (MarkerSelection::iterator x = selection->markers.begin(); x != selection->markers.end(); ++x) {
(*x)->set_line_vpos (0, canvas_height);
}
+
+ vertical_adjustment.set_page_size (canvas_height);
+ last_trackview_group_vertical_offset = get_trackview_group_vertical_offset ();
+ if ((vertical_adjustment.get_value() + canvas_height) >= vertical_adjustment.get_upper()) {
+ /*
+ We're increasing the size of the canvas while the bottom is visible.
+ We scroll down to keep in step with the controls layout.
+ */
+ vertical_adjustment.set_value (full_canvas_height - canvas_height + 1);
+ }
+
}
@@ -348,15 +359,6 @@ Editor::track_canvas_size_allocated ()
update_fixed_rulers();
redisplay_tempo (false);
- last_trackview_group_vertical_offset = get_trackview_group_vertical_offset ();
- if ((vertical_adjustment.get_value() + canvas_height) >= vertical_adjustment.get_upper()) {
- /*
- We're increasing the size of the canvas while the bottom is visible.
- We scroll down to keep in step with the controls layout.
- */
- vertical_adjustment.set_value (full_canvas_height - canvas_height + 1);
- }
-
Resized (); /* EMIT_SIGNAL */
return false;
@@ -866,12 +868,6 @@ void
Editor::canvas_scroll_to (nframes64_t time_origin)
{
leftmost_frame = time_origin;
- nframes64_t rightmost_frame = leftmost_frame + current_page_frames ();
-
- if (rightmost_frame > last_canvas_frame) {
- last_canvas_frame = rightmost_frame;
- //reset_scrolling_region ();
- }
}
void
diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc
index cce057d050..6bfc325f6d 100644
--- a/gtk2_ardour/editor_mixer.cc
+++ b/gtk2_ardour/editor_mixer.cc
@@ -324,7 +324,6 @@ Editor::session_going_away ()
entered_track = 0;
last_update_frame = 0;
drag_info.item = 0;
- last_canvas_frame = 0;
playhead_cursor->canvas_item.hide ();
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index cabeceb057..1a03f66f24 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -4009,7 +4009,6 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
boost::shared_ptr<Region> new_region;
-
if (drag_info.copy) {
/* we already made a copy */
new_region = rv->region();
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 426bf09c7e..1efe4a31ad 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -1856,7 +1856,6 @@ Editor::temporal_zoom_session ()
ENSURE_GUI_THREAD (mem_fun (*this, &Editor::temporal_zoom_session));
if (session) {
- last_canvas_frame = ((session->current_end_frame() - session->current_start_frame()) + (current_page_frames() / 24));
temporal_zoom_by_frame (session->current_start_frame(), session->current_end_frame(), "zoom to session");
}
}
diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc
index 609b5b221c..923c2fbd1c 100644
--- a/gtk2_ardour/editor_tempodisplay.cc
+++ b/gtk2_ardour/editor_tempodisplay.cc
@@ -105,9 +105,9 @@ Editor::tempo_map_changed (Change ignored)
if (tempo_lines)
tempo_lines->tempo_map_changed();
- compute_current_bbt_points(leftmost_frame, leftmost_frame + (nframes_t)(edit_packer.get_width() * frames_per_unit));
- session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks); // redraw metric markers
- update_tempo_based_rulers ();
+ compute_current_bbt_points(leftmost_frame, leftmost_frame + current_page_frames());
+ session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks);
+ update_tempo_based_rulers ();// redraw metric markers
redraw_measures ();
}
@@ -118,7 +118,7 @@ Editor::redisplay_tempo (bool immediate_redraw)
return;
}
- compute_current_bbt_points (leftmost_frame, leftmost_frame + (nframes_t)(edit_packer.get_width() * frames_per_unit)); // redraw rulers and measures
+ compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames()); // redraw rulers and measures
redraw_measures();
update_tempo_based_rulers ();
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index 2b4eb09e16..202a55ee1d 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -264,18 +264,19 @@ void
Mixer_UI::show_window ()
{
present ();
-
- set_window_pos_and_size ();
-
- /* now reset each strips width so the right widgets are shown */
- MixerStrip* ms;
-
- TreeModel::Children rows = track_model->children();
- TreeModel::Children::iterator ri;
-
- for (ri = rows.begin(); ri != rows.end(); ++ri) {
- ms = (*ri)[track_columns.strip];
- ms->set_width (ms->get_width(), ms->width_owner());
+ if (!_visible) {
+ set_window_pos_and_size ();
+
+ /* now reset each strips width so the right widgets are shown */
+ MixerStrip* ms;
+
+ TreeModel::Children rows = track_model->children();
+ TreeModel::Children::iterator ri;
+
+ for (ri = rows.begin(); ri != rows.end(); ++ri) {
+ ms = (*ri)[track_columns.strip];
+ ms->set_width (ms->get_width(), ms->width_owner());
+ }
}
_visible = true;
}