X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fcanvasview.cpp;h=8c0f3b72f085ce9902efbeb43682bdea93ae2f5f;hb=f444974043946c071373c9caf7e7c85f9e1f9354;hp=6a8a44eb3ad39706515c36c7bbf3bfdf9f2976c4;hpb=4c343e415bc02343d7b65322240fe758a1d992e4;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 6a8a44e..8c0f3b7 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -53,6 +53,8 @@ #include #include #include +#include +#include #include #include @@ -2420,6 +2422,7 @@ CanvasView::time_zoom_in() 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().set_page_increment(time_window_adjustment().get_page_size()); time_window_adjustment().changed(); refresh_time_window(); @@ -2434,6 +2437,7 @@ CanvasView::time_zoom_out() 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().set_page_increment(time_window_adjustment().get_page_size()); time_window_adjustment().changed(); refresh_time_window(); @@ -2581,6 +2585,20 @@ CanvasView::duck_change_param(const synfig::Point &value,synfig::Layer::Handle l bool CanvasView::on_duck_changed(const synfig::Point &value,const synfigapp::ValueDesc& value_desc) { + if( ValueNode_BLineCalcVertex::Handle bline_vertex = + ValueNode_BLineCalcVertex::Handle::cast_dynamic(value_desc.get_value_node()) + ) + { + Real radius = 0.0; + Real amount = synfig::find_closest_point( + ( *bline_vertex->get_link(bline_vertex->get_link_index_from_name("bline")) )( get_time() ), + value, + radius, + ( *bline_vertex->get_link(bline_vertex->get_link_index_from_name("loop")) )( get_time() ).get(bool()) + ); + return canvas_interface()->change_value(synfigapp::ValueDesc(bline_vertex,bline_vertex->get_link_index_from_name("amount")), amount); + } + switch(value_desc.get_value_type()) { case ValueBase::TYPE_REAL: