From 4ad51b6fe4c25e3ed034956f41482428b5ed315e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Mon, 28 Mar 2016 23:04:18 +0200 Subject: view: add return value to view_cursors_dispose indicating whether cursor could be removed --- view.c | 15 ++++++++------- view.h | 2 +- 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*); -- cgit v1.2.3