View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001897 | ardour | bugs | public | 2007-09-29 23:35 | 2008-11-21 00:04 |
Reporter | hsyl20 | Assigned To | paul | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 2.0 | ||||
Summary | 0001897: Markers' ranges are not correctly displayed | ||||
Description | When the canvas containing the tracks is scrolled vertically, punch range and loop range are not fully displayed (they don't reach the bottom). When a punch button is enabled, a red area is displayed to show where recording begins and ends. At the moment, this red area is displayed from "punch in" marker to "punch out" marker whenever one or both punch button is/are enabled. However, when only one punch button is enabled, behavior should be different (IMAO): if "punch in" is enabled and "punch out" disabled, range should be displayed from "punch in" marker to end of tracks; if "punch in" is disabled and "punch out" enabled, range should be displayed from start to "punch out" marker. | ||||
Additional Information | I made a patch to correct these bugs (see attachment). | ||||
Tags | No tags attached. | ||||
2007-09-29 23:35
|
markers_range.patch (3,470 bytes)
Index: gtk2_ardour/editor_canvas.cc =================================================================== --- gtk2_ardour/editor_canvas.cc (révision 2499) +++ gtk2_ardour/editor_canvas.cc (copie de travail) @@ -311,39 +311,21 @@ reset_hscrollbar_stepping (); reset_scrolling_region (); + + guint track_canvas_width,track_canvas_height; + track_canvas.get_size(track_canvas_width,track_canvas_height); + if (edit_cursor) edit_cursor->set_length (canvas_height); if (playhead_cursor) playhead_cursor->set_length (canvas_height); - if (marker_drag_line) { - marker_drag_line_points.back().set_y(canvas_height); - marker_drag_line->property_points() = marker_drag_line_points; - } - - if (range_marker_drag_rect) { - range_marker_drag_rect->property_y1() = 0.0; - range_marker_drag_rect->property_y2() = canvas_height; - } - - if (transport_loop_range_rect) { - transport_loop_range_rect->property_y1() = 0.0; - transport_loop_range_rect->property_y2() = canvas_height; - } - - if (transport_punch_range_rect) { - transport_punch_range_rect->property_y1() = 0.0; - transport_punch_range_rect->property_y2() = canvas_height; - } - - if (transport_punchin_line) { - transport_punchin_line->property_y1() = 0.0; - transport_punchin_line->property_y2() = canvas_height; - } - - if (transport_punchout_line) { - transport_punchout_line->property_y1() = 0.0; - transport_punchout_line->property_y2() = canvas_height; - } - + marker_drag_line_points.back().set_y(track_canvas_height); + marker_drag_line->property_points() = marker_drag_line_points; + range_marker_drag_rect->property_y2() = track_canvas_height; + transport_loop_range_rect->property_y2() = track_canvas_height; + transport_punch_range_rect->property_y2() = track_canvas_height; + transport_punchin_line->property_y2() = track_canvas_height; + transport_punchout_line->property_y2() = track_canvas_height; + update_fixed_rulers(); redisplay_tempo (true); @@ -377,7 +359,17 @@ // XXX what is the correct height value for the time canvas ? this overstates it time_canvas.set_scroll_region ( 0.0, 0.0, max (last_canvas_unit, canvas_width), canvas_height); + + guint track_canvas_width,track_canvas_height; + track_canvas.get_size(track_canvas_width,track_canvas_height); + range_marker_drag_rect->property_y2() = track_canvas_height; + transport_loop_range_rect->property_y2() = track_canvas_height; + transport_punch_range_rect->property_y2() = track_canvas_height; + transport_punchin_line->property_y2() = track_canvas_height; + transport_punchout_line->property_y2() = track_canvas_height; + update_punch_range_view(true); + controls_layout.queue_resize(); } Index: gtk2_ardour/editor_markers.cc =================================================================== --- gtk2_ardour/editor_markers.cc (révision 2499) +++ gtk2_ardour/editor_markers.cc (copie de travail) @@ -958,9 +958,15 @@ double x1 = frame_to_pixel (tpl->start()); double x2 = frame_to_pixel (tpl->end()); + guint track_canvas_width,track_canvas_height; + track_canvas.get_size(track_canvas_width,track_canvas_height); + transport_punch_range_rect->property_x1() = x1; transport_punch_range_rect->property_x2() = x2; + transport_punch_range_rect->property_x1() = (Config->get_punch_in() ? x1 : 0); + transport_punch_range_rect->property_x2() = (Config->get_punch_out() ? x2 : track_canvas_width); + if (visibility) { transport_punch_range_rect->show(); } |
|
thanks. i've applied a modified version of the patch (post-removal of the edit cursor) to my 2.0-ongoing code and will commit it soon. |
Date Modified | Username | Field | Change |
---|---|---|---|
2007-09-29 23:35 | hsyl20 | New Issue | |
2007-09-29 23:35 | hsyl20 | File Added: markers_range.patch | |
2007-12-29 15:04 | paul | Status | new => resolved |
2007-12-29 15:04 | paul | Resolution | open => fixed |
2007-12-29 15:04 | paul | Assigned To | => paul |
2007-12-29 15:04 | paul | Note Added: 0004616 | |
2008-11-21 00:04 | seablade | Status | resolved => closed |