aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2016-03-28 23:04:18 +0200
committerMarc André Tanner <mat@brain-dump.org>2016-04-03 13:13:43 +0200
commit4ad51b6fe4c25e3ed034956f41482428b5ed315e (patch)
tree7f284c7cbb050875d60e6bc73b7c208f6a8fd2b7
parent1ea9a99cf9872166cdf3b0aad93ee4896021e4f6 (diff)
downloadvis-4ad51b6fe4c25e3ed034956f41482428b5ed315e.tar.gz
vis-4ad51b6fe4c25e3ed034956f41482428b5ed315e.tar.xz
view: add return value to view_cursors_dispose
indicating whether cursor could be removed
-rw-r--r--view.c15
-rw-r--r--view.h2
2 files changed, 9 insertions, 8 deletions
diff --git a/view.c b/view.c
index 5f8f23d..a41dac0 100644
--- a/view.c
+++ b/view.c
@@ -1183,15 +1183,16 @@ static void view_cursors_free(Cursor *c) {
free(c);
}
-void view_cursors_dispose(Cursor *c) {
+bool view_cursors_dispose(Cursor *c) {
if (!c)
- return;
+ return false;
View *view = c->view;
- if (view->cursors && view->cursors->next) {
- view_selections_free(c->sel);
- view_cursors_free(c);
- view_draw(view);
- }
+ if (!view->cursors || !view->cursors->next)
+ return false;
+ view_selections_free(c->sel);
+ view_cursors_free(c);
+ view_cursors_primary_set(view->cursor);
+ return true;
}
Cursor *view_cursors(View *view) {
diff --git a/view.h b/view.h
index 3a89206..fda953f 100644
--- a/view.h
+++ b/view.h
@@ -127,7 +127,7 @@ int view_cursors_count(View*);
bool view_cursors_multiple(View*);
/* dispose an existing cursor with its associated selection (if any),
* not applicaple for the last existing cursor */
-void view_cursors_dispose(Cursor*);
+bool view_cursors_dispose(Cursor*);
/* only keep the main cursor, release all others together with their
* selections (if any) */
void view_cursors_clear(View*);