Use the same number in the 'fill' as in the 'outline' when filling a stroke.
[synfig.git] / synfig-studio / trunk / src / gtkmm / state_draw.cpp
index 4beb8e7..fbed951 100644 (file)
@@ -100,6 +100,7 @@ class studio::StateDraw_Context : public sigc::trackable
        SigC::Connection process_queue_connection;
 
        ValueNode_BLine::Handle last_stroke;
+       synfig::String last_stroke_id;
 
        Gtk::Menu menu;
 
@@ -386,7 +387,7 @@ StateDraw_Context::StateDraw_Context(CanvasView* canvas_view):
        canvas_view_(canvas_view),
        is_working(*canvas_view),
        loop_(false),
-       prev_workarea_layer_status_(get_work_area()->allow_layer_clicks),
+       prev_workarea_layer_status_(get_work_area()->get_allow_layer_clicks()),
        settings(synfigapp::Main::get_selected_input_device()->settings()),
        entry_id(),
        checkbutton_pressure_width(_("Pressure Width")),
@@ -448,10 +449,10 @@ StateDraw_Context::StateDraw_Context(CanvasView* canvas_view):
        get_work_area()->set_type_mask(Duck::TYPE_ALL-Duck::TYPE_TANGENT-Duck::TYPE_WIDTH);
 
        // Turn off layer clicking
-       get_work_area()->allow_layer_clicks=false;
+       get_work_area()->set_allow_layer_clicks(false);
 
        // Turn off duck clicking
-       get_work_area()->allow_duck_clicks=false;
+       get_work_area()->set_allow_duck_clicks(false);
 
        // clear out the ducks
        //get_work_area()->clear_ducks();
@@ -532,10 +533,10 @@ StateDraw_Context::~StateDraw_Context()
        get_canvas_view()->work_area->reset_cursor();
 
        // Restore layer clicking
-       get_work_area()->allow_layer_clicks=prev_workarea_layer_status_;
+       get_work_area()->set_allow_layer_clicks(prev_workarea_layer_status_);
 
        // Restore duck clicking
-       get_work_area()->allow_duck_clicks=true;
+       get_work_area()->set_allow_duck_clicks(true);
 
        // Enable the time bar
        get_canvas_view()->set_sensitive_timebar(true);
@@ -575,7 +576,7 @@ StateDraw_Context::event_mouse_down_handler(const Smach::event& x)
                        return Smach::RESULT_ACCEPT;
                }
 
-       case BUTTON_RIGHT: // Intercept the right-button click to short-circut the pop-up menu
+       case BUTTON_RIGHT: // Intercept the right-button click to short-circuit the pop-up menu
                return Smach::RESULT_ACCEPT;
 
        default:
@@ -758,7 +759,7 @@ StateDraw_Context::new_bline(std::list<synfig::BLinePoint> bline,bool loop_bline
        bool extend_start=false,extend_finish=false,complete_loop=false;
        bool extend_start_join_same=false,extend_start_join_different=false;
        bool extend_finish_join_same=false,extend_finish_join_different=false;
-       int start_duck_index = 0,finish_duck_index = 0; // initialised to keep the compiler happy; shouldn't be needed though
+       int start_duck_index = 0,finish_duck_index = 0; // initialized to keep the compiler happy; shouldn't be needed though
        ValueNode_BLine::Handle start_duck_value_node_bline=NULL,finish_duck_value_node_bline=NULL;
 
        // Find any ducks at the start or end that we might attach to
@@ -1054,8 +1055,9 @@ StateDraw_Context::new_bline(std::list<synfig::BLinePoint> bline,bool loop_bline
                //refresh_ducks();
        }
 
-       increment_id();
        last_stroke=value_node;
+       last_stroke_id=get_id();
+       increment_id();
        return Smach::RESULT_ACCEPT;
 }
 
@@ -1525,6 +1527,7 @@ StateDraw_Context::fill_last_stroke()
        layer=get_canvas_interface()->add_layer("region");
        assert(layer);
        layer->set_param("color",synfigapp::Main::get_background_color());
+       layer->set_description(last_stroke_id + _(" Fill"));
 
        synfigapp::Action::Handle action(synfigapp::Action::create("layer_param_connect"));
 
@@ -1533,7 +1536,7 @@ StateDraw_Context::fill_last_stroke()
        action->set_param("canvas",get_canvas());
        action->set_param("canvas_interface",get_canvas_interface());
        action->set_param("layer",layer);
-       if(!action->set_param("param",String("segment_list")))
+       if(!action->set_param("param",String("bline")))
                synfig::error("LayerParamConnect didn't like \"param\"");
        if(!action->set_param("value_node",ValueNode::Handle(last_stroke)))
                synfig::error("LayerParamConnect didn't like \"value_node\"");