Don't start a clock drag if we drag to the right of the numbers.
authorCarl Hetherington <carl@carlh.net>
Thu, 28 Jun 2012 15:56:51 +0000 (15:56 +0000)
committerCarl Hetherington <carl@carlh.net>
Thu, 28 Jun 2012 15:56:51 +0000 (15:56 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12960 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/audio_clock.cc

index dbe7f03a1453ecbeca417115694fb28255a75d5a..fd8aca8df18466016f9494a761bc093b22b59ef1 100644 (file)
@@ -1455,15 +1455,6 @@ AudioClock::on_button_press_event (GdkEventButton *ev)
        switch (ev->button) {
        case 1:
                if (editable && !_off) {
-                       dragging = true;
-                       /* make absolutely sure that the pointer is grabbed */
-                       gdk_pointer_grab(ev->window,false ,
-                                        GdkEventMask( Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK |Gdk::BUTTON_RELEASE_MASK),
-                                        NULL,NULL,ev->time);
-                       drag_accum = 0;
-                       drag_start_y = ev->y;
-                       drag_y = ev->y;
-                       
                        int index;
                        int trailing;
                        int y;
@@ -1476,10 +1467,16 @@ AudioClock::on_button_press_event (GdkEventButton *ev)
                        y = ev->y - ((upper_height - layout_height)/2);
                        x = ev->x - layout_x_offset;
                        
-                       if (_layout->xy_to_index (x * PANGO_SCALE, y * PANGO_SCALE, index, trailing)) {                 
+                       if (_layout->xy_to_index (x * PANGO_SCALE, y * PANGO_SCALE, index, trailing)) {
                                drag_field = index_to_field (index);
-                       } else {
-                               drag_field = Field (0);
+                               dragging = true;
+                               /* make absolutely sure that the pointer is grabbed */
+                               gdk_pointer_grab(ev->window,false ,
+                                                GdkEventMask( Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK |Gdk::BUTTON_RELEASE_MASK),
+                                                NULL,NULL,ev->time);
+                               drag_accum = 0;
+                               drag_start_y = ev->y;
+                               drag_y = ev->y;
                        }
                }
                break;
@@ -1660,7 +1657,7 @@ AudioClock::on_motion_notify_event (GdkEventMotion *ev)
                int dir;
                dir = (drag_accum < 0 ? 1:-1);
                pos = current_time();
-               frames = get_frame_step (drag_field,pos,dir);
+               frames = get_frame_step (drag_field, pos, dir);
 
                if (frames  != 0 &&  frames * drag_accum < current_time()) {
                        set ((framepos_t) floor (pos - drag_accum * frames), false); // minus because up is negative in GTK