File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -426,9 +426,13 @@ LayerTree::select_layer(synfig::Layer::Handle layer)
426426 iter=sorted_layer_tree_store_->convert_child_iter_to_iter (iter);
427427
428428 Gtk::TreePath path (iter);
429- layer_tree_view ().expand_to_path (path);
429+ // do not auto expand when selecting a group layer to avoid "opening" it on selection
430+ if (!(layer->get_name () == " group" ))
431+ layer_tree_view ().expand_to_path (path);
432+
430433 layer_tree_view ().scroll_to_row (path);
431434 layer_tree_view ().get_selection ()->select (iter);
435+ layer_tree_view ().set_cursor (path);
432436 }
433437}
434438
Original file line number Diff line number Diff line change @@ -160,7 +160,7 @@ Action::LayerEncapsulate::prepare()
160160 if (!child_canvas)
161161 child_canvas=Canvas::create_inline (get_canvas ());
162162
163- Layer::Handle new_layer ( Layer::create (" group" ) );
163+ new_layer= Layer::create (" group" );
164164
165165 if (!description.empty ())
166166 new_layer->set_description (description);
@@ -246,3 +246,13 @@ Action::LayerEncapsulate::prepare()
246246 }
247247 }
248248}
249+
250+ void
251+ Action::LayerEncapsulate::perform ()
252+ {
253+ Super::perform ();
254+ if (new_layer && get_canvas_interface ()){
255+ get_canvas_interface ()->get_selection_manager ()->clear_selected_layers ();
256+ get_canvas_interface ()->get_selection_manager ()->set_selected_layer (new_layer);
257+ }
258+ }
Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ class LayerEncapsulate :
5454 std::list<synfig::Layer::Handle> layers;
5555 bool children_lock;
5656
57+ synfig::Layer::Handle new_layer;
5758 int lowest_depth ()const ;
5859
5960public:
@@ -67,6 +68,7 @@ class LayerEncapsulate :
6768 virtual bool is_ready ()const ;
6869
6970 virtual void prepare ();
71+ virtual void perform ();
7072
7173 ACTION_MODULE_EXT
7274};
You can’t perform that action at this time.
0 commit comments