Patrons update.
[dcpomatic.git] / src / wx / timeline.cc
index 2b8fba6fd50468766c09a36e3c05646df1d0a5a5..5cf84dfd51196b9435f6c98711c8631d5fea3c3e 100644 (file)
@@ -190,10 +190,6 @@ Timeline::paint_main ()
 
        ScopeGuard sg = [gc]() { delete gc; };
 
-       int vsx, vsy;
-       _main_canvas->GetViewStart (&vsx, &vsy);
-       gc->Translate (-vsx * _x_scroll_rate, -vsy * _y_scroll_rate);
-
        gc->SetAntialiasMode (wxANTIALIAS_DEFAULT);
 
        for (auto i: _views) {
@@ -219,8 +215,6 @@ Timeline::paint_main ()
        }
 
        if (_zoom_point) {
-               /* Translate back as _down_point and _zoom_point do not take scroll into account */
-               gc->Translate (vsx * _x_scroll_rate, vsy * _y_scroll_rate);
                gc->SetPen(gui_is_dark() ? *wxWHITE_PEN : *wxBLACK_PEN);
                gc->SetBrush (*wxTRANSPARENT_BRUSH);
                gc->DrawRectangle (
@@ -708,6 +702,7 @@ Timeline::mouse_moved_zoom (wxMouseEvent& ev)
        }
 
        _zoom_point = ev.GetPosition ();
+       setup_scrollbars();
        Refresh ();
 }
 
@@ -969,7 +964,19 @@ Timeline::keypress(wxKeyEvent const& event)
 {
        if (event.GetKeyCode() == WXK_DELETE) {
                auto film = _film.lock();
+               DCPOMATIC_ASSERT(film);
                film->remove_content(selected_content());
+       } else {
+               switch (event.GetRawKeyCode()) {
+               case '+':
+                       set_pixels_per_second(_pixels_per_second.get_value_or(1) * 2);
+                       setup_scrollbars();
+                       break;
+               case '-':
+                       set_pixels_per_second(_pixels_per_second.get_value_or(1) / 2);
+                       setup_scrollbars();
+                       break;
+               }
        }
 }