[gnome-builder] Modified ctrl+f esc handler and added auto insert selected text or previous search into search entry
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] Modified ctrl+f esc handler and added auto insert selected text or previous search into search entry
- Date: Sat, 9 May 2015 19:10:31 +0000 (UTC)
commit 9af5268875284b58c211fe63457702e843aa0dde
Author: Wolf Vollprecht <w vollprecht gmail com>
Date: Sat May 9 12:55:01 2015 +0200
Modified ctrl+f esc handler and added auto insert selected text or previous search into search entry
https://bugzilla.gnome.org/show_bug.cgi?id=749117
src/editor/gb-editor-frame-actions.c | 23 +++++++++++++++++++++++
src/editor/gb-editor-frame-private.h | 2 ++
src/editor/gb-editor-frame.c | 5 ++---
3 files changed, 27 insertions(+), 3 deletions(-)
---
diff --git a/src/editor/gb-editor-frame-actions.c b/src/editor/gb-editor-frame-actions.c
index eb5844d..955c803 100644
--- a/src/editor/gb-editor-frame-actions.c
+++ b/src/editor/gb-editor-frame-actions.c
@@ -27,9 +27,32 @@ gb_editor_frame_actions_find (GSimpleAction *action,
gpointer user_data)
{
GbEditorFrame *self = user_data;
+ GtkTextIter start_sel, end_sel;
+ GtkTextBuffer *buffer;
+ gchar *selected_text;
g_assert (GB_IS_EDITOR_FRAME (self));
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->source_view));
+
+ if (gtk_text_buffer_get_has_selection (buffer))
+ {
+ gtk_text_buffer_get_selection_bounds (buffer, &start_sel, &end_sel);
+
+ if(gtk_text_iter_get_line (&start_sel) == gtk_text_iter_get_line (&end_sel))
+ {
+ selected_text = gtk_text_buffer_get_text(buffer, &start_sel, &end_sel, FALSE);
+ gtk_entry_set_text (GTK_ENTRY (self->search_entry), selected_text);
+ }
+ }
+ else
+ {
+ if(self->previous_search_string != NULL)
+ {
+ gtk_entry_set_text (GTK_ENTRY (self->search_entry), self->previous_search_string);
+ }
+ }
+
gtk_revealer_set_reveal_child (self->search_revealer, TRUE);
gtk_widget_grab_focus (GTK_WIDGET (self->search_entry));
}
diff --git a/src/editor/gb-editor-frame-private.h b/src/editor/gb-editor-frame-private.h
index 6ce85e1..d0eaa23 100644
--- a/src/editor/gb-editor-frame-private.h
+++ b/src/editor/gb-editor-frame-private.h
@@ -50,6 +50,8 @@ struct _GbEditorFrame
gulong cursor_moved_handler;
guint auto_hide_map : 1;
+
+ gchar *previous_search_string;
};
G_END_DECLS
diff --git a/src/editor/gb-editor-frame.c b/src/editor/gb-editor-frame.c
index 509a126..569f343 100644
--- a/src/editor/gb-editor-frame.c
+++ b/src/editor/gb-editor-frame.c
@@ -1,3 +1,4 @@
+
/* gb-editor-frame.c
*
* Copyright (C) 2015 Christian Hergert <christian hergert me>
@@ -412,7 +413,7 @@ gb_editor_frame__search_key_press_event (GbEditorFrame *self,
switch (event->keyval)
{
case GDK_KEY_Escape:
- ide_source_view_rollback_search (self->source_view);
+ self->previous_search_string = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->search_entry)));
ide_source_view_clear_search (self->source_view);
ide_source_view_set_rubberband_search (self->source_view, FALSE);
gtk_widget_grab_focus (GTK_WIDGET (self->source_view));
@@ -424,8 +425,6 @@ gb_editor_frame__search_key_press_event (GbEditorFrame *self,
gb_widget_activate_action (GTK_WIDGET (self), "frame", "next-search-result", NULL);
else
gb_widget_activate_action (GTK_WIDGET (self), "frame", "previous-search-result", NULL);
- ide_source_view_set_rubberband_search (self->source_view, FALSE);
- gtk_widget_grab_focus (GTK_WIDGET (self->source_view));
return TRUE;
case GDK_KEY_Down:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]