Fix 1914874: update the timeline scrollbars' major step size when zooming time in...
[synfig.git] / synfig-studio / trunk / src / gtkmm / canvasview.cpp
index 8436ec9..ed139af 100644 (file)
@@ -2004,6 +2004,7 @@ static bool _close_instance(etl::handle<Instance> instance)
 bool
 CanvasView::close_instance()
 {
+#ifdef SINGLE_THREADED
        if (get_work_area()->get_updating())
        {
                get_work_area()->stop_updating(true); // stop and mark as cancelled
@@ -2014,6 +2015,7 @@ CanvasView::close_instance()
                        250);
        }
        else
+#endif
                Glib::signal_timeout().connect(
                        sigc::bind(sigc::ptr_fun(_close_instance),
                                           (etl::handle<Instance>)get_instance()),
@@ -2035,14 +2037,20 @@ CanvasView::update_title()
 {
        string title;
 
-       if(get_instance()->synfigapp::Instance::get_action_count())
-               title="*";
-       title+=etl::basename(get_instance()->get_file_name())
-               +" : ";
-       if(get_canvas()->get_name().empty())
-               title+='"'+get_canvas()->get_id()+'"';
-       else
-               title+='"'+get_canvas()->get_name()+'"';
+       title = strprintf("%s%s\"%s\"",
+                                         (
+                                                 get_instance()->get_action_count()
+                                                 ? "*"
+                                                 : ""
+                                         ), (
+                                                 get_instance()->has_real_filename()
+                                                 ? (etl::basename(get_instance()->get_file_name()) + " : ").c_str()
+                                                 : ""
+                                         ), (
+                                                 get_canvas()->get_name().empty()
+                                                 ? get_canvas()->get_id().c_str()
+                                                 : get_canvas()->get_name().c_str()
+                                         ));
 
        if(get_instance()->synfigapp::Instance::in_repository())
        {
@@ -2151,10 +2159,10 @@ CanvasView::on_layer_toggle(synfig::Layer::Handle layer)
 }
 
 void
-CanvasView::popup_param_menu(synfigapp::ValueDesc value_desc, float location)
+CanvasView::popup_param_menu(synfigapp::ValueDesc value_desc, float location, bool bezier)
 {
        parammenu.items().clear();
-       get_instance()->make_param_menu(&parammenu,get_canvas(),value_desc,location);
+       get_instance()->make_param_menu(&parammenu,get_canvas(),value_desc,location,bezier);
 
        parammenu.popup(3,gtk_get_current_event_time());
 }
@@ -2412,6 +2420,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();
@@ -2426,6 +2435,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();