summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_canvas_events.cc
diff options
context:
space:
mode:
authorNick Mainsbridge <beatroute@iprimus.com.au>2008-09-03 18:15:31 +0000
committerNick Mainsbridge <beatroute@iprimus.com.au>2008-09-03 18:15:31 +0000
commite11544b59aaf84e2d4ed1a6fb57e1ae5e6e05ebf (patch)
tree9a6d8fc657d5f187113e3342924f5080bc48c3c4 /gtk2_ardour/editor_canvas_events.cc
parent860125cb532e0987692e317ca8f4d08a0b76dda0 (diff)
Unify the canvases by moving groups around rather than using set_scrolling_region () (eliminates the double-draw during zoom on linux), fix verbose_time_cursor clamping, make fonts smaller on location dialog buttons, hopefully improve performance when dragging multiple regions on the same track, reduce some redrawing of clocks (still not done for samples clock), allow NLS=1 on OSX, other canvas performance improvements on OSX, build SAE-us.bindings (even though they are incomplete for now).
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3707 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_canvas_events.cc')
-rw-r--r--gtk2_ardour/editor_canvas_events.cc61
1 files changed, 4 insertions, 57 deletions
diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc
index a1ac41d47c..fc03aa49bd 100644
--- a/gtk2_ardour/editor_canvas_events.cc
+++ b/gtk2_ardour/editor_canvas_events.cc
@@ -69,9 +69,7 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
*/
track_canvas->get_pointer (x, y);
track_canvas->window_to_world (x, y, wx, wy);
- wx += horizontal_adjustment.get_value();
- wy += vertical_adjustment.get_value();
-
+
GdkEvent event;
event.type = GDK_BUTTON_RELEASE;
event.button.x = wx;
@@ -86,7 +84,7 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
if (!current_stepping_trackview) {
step_timeout = Glib::signal_timeout().connect (mem_fun(*this, &Editor::track_height_step_timeout), 500);
- if (!(current_stepping_trackview = trackview_by_y_position (ev->y))) {
+ if (!(current_stepping_trackview = trackview_by_y_position (ev->y + vertical_adjustment.get_value() - canvas_timebars_vsize))) {
return false;
}
}
@@ -104,9 +102,7 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
//if (ev->state == GDK_CONTROL_MASK) {
track_canvas->get_pointer (x, y);
track_canvas->window_to_world (x, y, wx, wy);
- wx += horizontal_adjustment.get_value();
- wy += vertical_adjustment.get_value();
-
+
GdkEvent event;
event.type = GDK_BUTTON_RELEASE;
event.button.x = wx;
@@ -121,7 +117,7 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
if (!current_stepping_trackview) {
step_timeout = Glib::signal_timeout().connect (mem_fun(*this, &Editor::track_height_step_timeout), 500);
- if (!(current_stepping_trackview = trackview_by_y_position (ev->y))) {
+ if (!(current_stepping_trackview = trackview_by_y_position (ev->y + vertical_adjustment.get_value() - canvas_timebars_vsize))) {
return false;
}
}
@@ -169,55 +165,6 @@ Editor::track_canvas_scroll_event (GdkEventScroll *event)
}
bool
-Editor::time_canvas_scroll (GdkEventScroll* ev)
-{
- nframes64_t xdelta;
- int direction = ev->direction;
-
- switch (direction) {
- case GDK_SCROLL_UP:
- temporal_zoom_step (true);
- break;
-
- case GDK_SCROLL_DOWN:
- temporal_zoom_step (false);
- break;
-
- case GDK_SCROLL_LEFT:
- xdelta = (current_page_frames() / 2);
- if (leftmost_frame > xdelta) {
- reset_x_origin (leftmost_frame - xdelta);
- } else {
- reset_x_origin (0);
- }
- break;
-
- case GDK_SCROLL_RIGHT:
- xdelta = (current_page_frames() / 2);
- if (max_frames - xdelta > leftmost_frame) {
- reset_x_origin (leftmost_frame + xdelta);
- } else {
- reset_x_origin (max_frames - current_page_frames());
- }
- break;
-
- default:
- /* what? */
- break;
- }
-
- return false;
-}
-
-bool
-Editor::time_canvas_scroll_event (GdkEventScroll *event)
-{
- time_canvas->grab_focus();
- time_canvas_scroll (event);
- return false;
-}
-
-bool
Editor::track_canvas_button_press_event (GdkEventButton *event)
{
selection->clear ();