TextView: Don't access already disposed text mark
Instead of asking of TextMark for its buffer, let's reference also the buffer in the SelectionData. Closes #169
This commit is contained in:
parent
2e7ac262be
commit
8da5111edd
@ -7612,17 +7612,20 @@ typedef struct
|
||||
SelectionGranularity granularity;
|
||||
GtkTextMark *orig_start;
|
||||
GtkTextMark *orig_end;
|
||||
GtkTextBuffer *buffer;
|
||||
} SelectionData;
|
||||
|
||||
static void
|
||||
selection_data_free (SelectionData *data)
|
||||
{
|
||||
if (data->orig_start != NULL)
|
||||
gtk_text_buffer_delete_mark (gtk_text_mark_get_buffer (data->orig_start),
|
||||
data->orig_start);
|
||||
gtk_text_buffer_delete_mark (data->buffer, data->orig_start);
|
||||
|
||||
if (data->orig_end != NULL)
|
||||
gtk_text_buffer_delete_mark (gtk_text_mark_get_buffer (data->orig_end),
|
||||
data->orig_end);
|
||||
gtk_text_buffer_delete_mark (data->buffer, data->orig_end);
|
||||
|
||||
g_object_unref (data->buffer);
|
||||
|
||||
g_slice_free (SelectionData, data);
|
||||
}
|
||||
|
||||
@ -7903,6 +7906,7 @@ gtk_text_view_start_selection_drag (GtkTextView *text_view,
|
||||
&orig_start, TRUE);
|
||||
data->orig_end = gtk_text_buffer_create_mark (buffer, NULL,
|
||||
&orig_end, TRUE);
|
||||
data->buffer = g_object_ref (buffer);
|
||||
gtk_text_view_check_cursor_blink (text_view);
|
||||
|
||||
g_object_set_qdata_full (G_OBJECT (priv->drag_gesture),
|
||||
|
Loading…
Reference in New Issue
Block a user