mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-01 11:27:45 +01:00
fix scrolling behaviour in track headers (event was stolen by rulers because event coordinates made it look as if the event happened there)
This commit is contained in:
parent
31f35ca4bf
commit
d9cee7a6d6
6 changed files with 11 additions and 9 deletions
|
|
@ -3973,7 +3973,7 @@ Editor::control_layout_scroll (GdkEventScroll* ev)
|
|||
In the not too distant future this layout is going away anyway and
|
||||
headers will be on the canvas.
|
||||
*/
|
||||
return canvas_scroll_event (ev);
|
||||
return canvas_scroll_event (ev, false);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -1412,7 +1412,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
|||
|
||||
/* Canvas event handlers */
|
||||
|
||||
bool canvas_scroll_event (GdkEventScroll* event);
|
||||
bool canvas_scroll_event (GdkEventScroll* event, bool from_canvas);
|
||||
bool canvas_control_point_event (GdkEvent* event,ArdourCanvas::Item*, ControlPoint*);
|
||||
bool canvas_line_event (GdkEvent* event,ArdourCanvas::Item*, AutomationLine*);
|
||||
bool canvas_selection_rect_event (GdkEvent* event,ArdourCanvas::Item*, SelectionRect*);
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ Editor::initialize_canvas ()
|
|||
handlers.
|
||||
*/
|
||||
|
||||
_track_canvas->signal_scroll_event().connect (sigc::mem_fun (*this, &Editor::canvas_scroll_event));
|
||||
_track_canvas->signal_scroll_event().connect (sigc::bind (sigc::mem_fun (*this, &Editor::canvas_scroll_event), true));
|
||||
_track_canvas->signal_motion_notify_event().connect (sigc::mem_fun (*this, &Editor::track_canvas_motion_notify_event));
|
||||
_track_canvas->signal_button_press_event().connect (sigc::mem_fun (*this, &Editor::track_canvas_button_press_event));
|
||||
_track_canvas->signal_button_release_event().connect (sigc::mem_fun (*this, &Editor::track_canvas_button_release_event));
|
||||
|
|
|
|||
|
|
@ -160,11 +160,13 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
|
|||
}
|
||||
|
||||
bool
|
||||
Editor::canvas_scroll_event (GdkEventScroll *event)
|
||||
Editor::canvas_scroll_event (GdkEventScroll *event, bool from_canvas)
|
||||
{
|
||||
boost::optional<Rect> rulers = _time_markers_group->bounding_box();
|
||||
if (rulers && rulers->contains (Duple (event->x, event->y))) {
|
||||
return canvas_ruler_event ((GdkEvent*) event, timecode_ruler, TimecodeRulerItem);
|
||||
if (from_canvas) {
|
||||
boost::optional<Rect> rulers = _time_markers_group->bounding_box();
|
||||
if (rulers && rulers->contains (Duple (event->x, event->y))) {
|
||||
return canvas_ruler_event ((GdkEvent*) event, timecode_ruler, TimecodeRulerItem);
|
||||
}
|
||||
}
|
||||
|
||||
_track_canvas->grab_focus();
|
||||
|
|
|
|||
|
|
@ -320,7 +320,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible, publi
|
|||
|
||||
virtual void reset_focus () = 0;
|
||||
|
||||
virtual bool canvas_scroll_event (GdkEventScroll* event) = 0;
|
||||
virtual bool canvas_scroll_event (GdkEventScroll* event, bool from_canvas) = 0;
|
||||
virtual bool canvas_control_point_event (GdkEvent* event, ArdourCanvas::Item*, ControlPoint*) = 0;
|
||||
virtual bool canvas_line_event (GdkEvent* event, ArdourCanvas::Item*, AutomationLine*) = 0;
|
||||
virtual bool canvas_selection_rect_event (GdkEvent* event, ArdourCanvas::Item*, SelectionRect*) = 0;
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ TimeAxisView::controls_ebox_scroll (GdkEventScroll* ev)
|
|||
In the not too distant future this layout is going away anyway and
|
||||
headers will be on the canvas.
|
||||
*/
|
||||
return _editor.canvas_scroll_event (ev);
|
||||
return _editor.canvas_scroll_event (ev, false);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue