commit 082fde6208af540238cea27d93d9603ce54753a1
parent 1e39691952b7907d1fe0bb91861ceb5fce539b71
Author: Andrej Kacian <ticho@claws-mail.org>
Date: Thu, 29 Nov 2018 18:18:30 +0100
Fix improper GTK API usage in sourceview's "select all".
GtkTextView does not implement GtkEditable interface.
Diffstat:
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/sourcewindow.c b/src/sourcewindow.c
@@ -203,14 +203,22 @@ static gint source_window_delete_cb(GtkWidget *widget, GdkEventAny *event,
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event,
SourceWindow *sourcewin)
{
+ GtkTextBuffer *buffer;
+ GtkTextIter start, end;
if (!event || !sourcewin) return FALSE;
-
+
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(sourcewin->text));
+ if (!buffer) return FALSE;
+
switch (event->keyval) {
case GDK_KEY_A:
case GDK_KEY_a:
- if ((event->state & GDK_CONTROL_MASK) != 0)
- gtk_editable_select_region(GTK_EDITABLE(sourcewin->text), 0, -1);
+ if ((event->state & GDK_CONTROL_MASK) != 0) {
+ gtk_text_buffer_get_start_iter(buffer, &start);
+ gtk_text_buffer_get_end_iter(buffer, &end);
+ gtk_text_buffer_select_range(buffer, &start, &end);
+ }
break;
case GDK_KEY_W:
case GDK_KEY_w: