summaryrefslogtreecommitdiff
path: root/src/glibext/gbufferview.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-12-20 22:12:28 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-12-20 22:12:28 (GMT)
commitcffbe4839da452af215f05dfb7cc6c9304c1285e (patch)
treed2ea78b67592e868ed94ab189722670379cd2b67 /src/glibext/gbufferview.c
parent0f58e137ff493ab38d2a7e6e2d5e5bc85951be3d (diff)
Kept the current location when switching views.
Diffstat (limited to 'src/glibext/gbufferview.c')
-rw-r--r--src/glibext/gbufferview.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/glibext/gbufferview.c b/src/glibext/gbufferview.c
index f5adc9d..2239d23 100644
--- a/src/glibext/gbufferview.c
+++ b/src/glibext/gbufferview.c
@@ -36,7 +36,6 @@ struct _GBufferView
GBufferCache *cache; /* Tampon du contenu visualisé */
segcnt_list *highlighted; /* Segments mis en évidence */
- bool external; /* Note l'origine de la liste */
bool unrestricted; /* Validité des informations */
GLineCursor *start; /* Première ligne intégrée */
@@ -189,8 +188,7 @@ static void g_buffer_view_dispose(GBufferView *view)
static void g_buffer_view_finalize(GBufferView *view)
{
- if (!view->external)
- exit_segment_content_list(view->highlighted);
+ unref_segment_content_list(view->highlighted);
G_OBJECT_CLASS(g_buffer_view_parent_class)->finalize(G_OBJECT(view));
@@ -223,12 +221,13 @@ GBufferView *g_buffer_view_new(GBufferCache *cache, segcnt_list *highlighted)
g_signal_connect(cache, "size-changed", G_CALLBACK(on_buffer_cache_size_changed), result);
if (highlighted != NULL)
+ {
+ ref_segment_content_list(highlighted);
result->highlighted = highlighted;
+ }
else
result->highlighted = init_segment_content_list();
- result->external = (highlighted != NULL);
-
return result;
}