Fix 1829182: "Right click context menu not always appears".
[synfig.git] / synfig-studio / trunk / src / gtkmm / state_polygon.cpp
index 494928e..52b8b12 100644 (file)
@@ -531,6 +531,12 @@ StatePolygon_Context::run()
        if (get_layer_polygon_flag())
        {
                layer=get_canvas_interface()->add_layer_to("polygon",canvas,depth);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
 
                layer->set_param("invert",get_invert());
@@ -609,7 +615,12 @@ StatePolygon_Context::run()
                synfigapp::PushMode push_mode(get_canvas_interface(),synfigapp::MODE_NORMAL);
 
                Layer::Handle layer(get_canvas_interface()->add_layer_to("curve_gradient",canvas,depth));
-               assert(layer);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
                layer->set_description(get_id()+_(" Gradient"));
                get_canvas_interface()->signal_layer_new_description()(layer,layer->get_description());
@@ -668,7 +679,12 @@ StatePolygon_Context::run()
                synfigapp::PushMode push_mode(get_canvas_interface(),synfigapp::MODE_NORMAL);
 
                Layer::Handle layer(get_canvas_interface()->add_layer_to("plant",canvas,depth));
-               assert(layer);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
                layer->set_description(get_id()+_(" Plant"));
                get_canvas_interface()->signal_layer_new_description()(layer,layer->get_description());
@@ -727,7 +743,12 @@ StatePolygon_Context::run()
                synfigapp::PushMode push_mode(get_canvas_interface(),synfigapp::MODE_NORMAL);
 
                Layer::Handle layer(get_canvas_interface()->add_layer_to("region",canvas,depth));
-               assert(layer);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
                layer->set_description(get_id()+_(" Region"));
                get_canvas_interface()->signal_layer_new_description()(layer,layer->get_description());
@@ -795,7 +816,12 @@ StatePolygon_Context::run()
        if (get_layer_outline_flag())
        {
                Layer::Handle layer(get_canvas_interface()->add_layer_to("outline",canvas,depth));
-               assert(layer);
+               if (!layer)
+               {
+                       get_canvas_view()->get_ui_interface()->error(_("Unable to create layer"));
+                       group.cancel();
+                       return;
+               }
                layer_selection.push_back(layer);
                layer->set_description(get_id()+_(" Outline"));
                get_canvas_interface()->signal_layer_new_description()(layer,layer->get_description());
@@ -873,10 +899,6 @@ StatePolygon_Context::event_mouse_click_handler(const Smach::event& x)
                refresh_ducks();
                return Smach::RESULT_ACCEPT;
 
-       case BUTTON_RIGHT: // Intercept the right-button click to short-circuit the pop-up menu
-               if (!getenv("SYNFIG_ENABLE_POPUP_MENU_IN_ALL_TOOLS"))
-                       return Smach::RESULT_ACCEPT;
-
        default:
                return Smach::RESULT_OK;
        }