summaryrefslogtreecommitdiffstats
path: root/src/ui/tool/control-point-selection.h
diff options
context:
space:
mode:
authorNathan Lee <2431820-nathanal@users.noreply.gitlab.com>2019-10-08 14:36:08 +0000
committerMarc Jeanmougin <marcjeanmougin@free.fr>2019-10-09 22:28:43 +0000
commitda553628b2e496c0153c06913382092b951b686a (patch)
tree6b57599983ae1b75a2d724132949a603498bbaf0 /src/ui/tool/control-point-selection.h
parentupdate inkscape.pot (diff)
downloadinkscape-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.h5
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 &);