projects
/
ardour.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
89f673a
)
make canvas drop sensitive to scroll events
author
Paul Davis
<paul@linuxaudiosystems.com>
Mon, 30 Jun 2014 18:47:57 +0000
(14:47 -0400)
committer
Paul Davis
<paul@linuxaudiosystems.com>
Mon, 30 Jun 2014 18:47:57 +0000
(14:47 -0400)
gtk2_ardour/editor_canvas_events.cc
patch
|
blob
|
history
diff --git
a/gtk2_ardour/editor_canvas_events.cc
b/gtk2_ardour/editor_canvas_events.cc
index 8efb3d56e958ab2f9e7b7ce18ad1825c0ee9ddae..2609abadc84c2779f687211730a9821a217f2aab 100644
(file)
--- a/
gtk2_ardour/editor_canvas_events.cc
+++ b/
gtk2_ardour/editor_canvas_events.cc
@@
-73,7
+73,7
@@
Editor::track_canvas_scroll (GdkEventScroll* ev)
*/
Duple event_coords = _track_canvas->window_to_canvas (Duple (ev->x, ev->y));
*/
Duple event_coords = _track_canvas->window_to_canvas (Duple (ev->x, ev->y));
-
+
retry:
switch (direction) {
case GDK_SCROLL_UP:
retry:
switch (direction) {
case GDK_SCROLL_UP:
@@
-1104,6
+1104,9
@@
Editor::canvas_note_event (GdkEvent *event, ArdourCanvas::Item* item)
bool
Editor::canvas_drop_zone_event (GdkEvent* event)
{
bool
Editor::canvas_drop_zone_event (GdkEvent* event)
{
+ GdkEventScroll scroll;
+ ArdourCanvas::Duple winpos;
+
switch (event->type) {
case GDK_BUTTON_RELEASE:
if (event->button.button == 1) {
switch (event->type) {
case GDK_BUTTON_RELEASE:
if (event->button.button == 1) {
@@
-1111,6
+1114,18
@@
Editor::canvas_drop_zone_event (GdkEvent* event)
selection->clear_tracks ();
}
break;
selection->clear_tracks ();
}
break;
+
+ case GDK_SCROLL:
+ /* convert coordinates back into window space so that
+ we can just call canvas_scroll_event().
+ */
+ winpos = _track_canvas->canvas_to_window (Duple (event->scroll.x, event->scroll.y));
+ scroll = event->scroll;
+ scroll.x = winpos.x;
+ scroll.y = winpos.y;
+ return canvas_scroll_event (&scroll, true);
+ break;
+
default:
break;
}
default:
break;
}