diff options
| author | Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> | 2019-10-08 14:36:08 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marcjeanmougin@free.fr> | 2019-10-09 22:28:43 +0000 |
| commit | da553628b2e496c0153c06913382092b951b686a (patch) | |
| tree | 6b57599983ae1b75a2d724132949a603498bbaf0 /src/ui/tool/control-point-selection.h | |
| parent | update inkscape.pot (diff) | |
| download | inkscape-da553628b2e496c0153c06913382092b951b686a.tar.gz inkscape-da553628b2e496c0153c06913382092b951b686a.zip | |
Speed up multi-node (de)selection
Delay operations till all nodes are added.
Deselection improvements thanks to Jabier.
Refactor to reflect changes.
Diffstat (limited to 'src/ui/tool/control-point-selection.h')
| -rw-r--r-- | src/ui/tool/control-point-selection.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/ui/tool/control-point-selection.h b/src/ui/tool/control-point-selection.h index 40959fc8e..7525b4849 100644 --- a/src/ui/tool/control-point-selection.h +++ b/src/ui/tool/control-point-selection.h @@ -70,12 +70,13 @@ public: for (; first != last; ++first) { insert(*first, false); } + _update(); signal_selection_changed.emit(std::vector<key_type>(first, last), true); } // erase void clear(); - void erase(iterator pos); + void erase(iterator pos, bool to_update = true); size_type erase(const key_type& k, bool notify = true); void erase(iterator first, iterator last); @@ -130,9 +131,9 @@ private: void _pointDragged(Geom::Point &, GdkEventMotion *); void _pointUngrabbed(); bool _pointClicked(SelectableControlPoint *, GdkEventButton *); - void _pointChanged(SelectableControlPoint *, bool); void _mouseoverChanged(); + void _update(); void _updateTransformHandles(bool preserve_center); void _updateBounds(); bool _keyboardMove(GdkEventKey const &, Geom::Point const &); |
