X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fcanvasview.cpp;h=ad2ab6be9aa8d1ed479bb2e93408f1371d4b94f9;hb=756c0d29ac1742f231e6615f9a577e574e35a4af;hp=7ebbcdb0b833f030986018a3ece90caaa3492d71;hpb=949269a8e154acf600f227f7e23ad70232b550ae;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 7ebbcdb..ad2ab6b 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -6,7 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007 Chris Moore +** Copyright (c) 2007, 2008 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -1057,6 +1057,13 @@ void CanvasView::on_current_time_widget_changed() { set_time(current_time_widget->get_value()); + + // show the value being used - it will have been rounded to nearest frame + // this was already being done elsewhere, but only if the time was really changed; + // if the current time was 6f and the user edited it to 6.1f, then the 6.1f would + // be left in the display without the following line to fix it + current_time_widget->set_value(get_time()); + current_time_widget->set_position(-1); // leave the cursor at the end } // Gtk::Widget* @@ -2437,7 +2444,12 @@ CanvasView::on_time_changed() void CanvasView::time_zoom_in() { + float frame_rate = get_canvas()->rend_desc().get_frame_rate(); + Time min_page_size = 2/frame_rate; + time_window_adjustment().set_page_size(time_window_adjustment().get_page_size()*0.75); + if (time_window_adjustment().get_page_size() < min_page_size) + time_window_adjustment().set_page_size(min_page_size); time_window_adjustment().changed(); refresh_time_window(); @@ -2446,7 +2458,12 @@ CanvasView::time_zoom_in() void CanvasView::time_zoom_out() { + Time length = (get_canvas()->rend_desc().get_time_end() - + get_canvas()->rend_desc().get_time_start()); + time_window_adjustment().set_page_size(time_window_adjustment().get_page_size()/0.75); + if (time_window_adjustment().get_page_size() > length) + time_window_adjustment().set_page_size(length); time_window_adjustment().changed(); refresh_time_window(); @@ -3236,7 +3253,7 @@ CanvasView::on_waypoint_clicked_canvasview(synfigapp::ValueDesc value_desc, waypoint_menu->items().push_back(Gtk::Menu_Helpers::MenuElem((size == 1) ? _("_Remove") : strprintf(_("_Remove %d Waypoints"), size), sigc::bind(sigc::ptr_fun(remove_waypoints), waypoint_set, canvas_interface()))); - if (size == 1) + if (size == 1 && value_desc.is_valid()) waypoint_menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Properties"), sigc::mem_fun(waypoint_dialog,&Gtk::Widget::show)));