[Xfce4-commits] <midori:master> Search inline directly when preedit text changes
Christian Dywan
noreply at xfce.org
Tue Nov 2 22:46:02 CET 2010
Updating branch refs/heads/master
to cd69cdedb951836ed4a8eb8058651f444de181a3 (commit)
from 61e51ea1d2dcc22fe6b63c1aa00e20068c938d3a (commit)
commit cd69cdedb951836ed4a8eb8058651f444de181a3
Author: Christian Dywan <christian at twotoasts.de>
Date: Tue Nov 2 22:14:25 2010 +0100
Search inline directly when preedit text changes
toolbars/midori-findbar.c | 35 ++++++++++++++++++++++++++---------
toolbars/midori-findbar.h | 5 +++++
2 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/toolbars/midori-findbar.c b/toolbars/midori-findbar.c
index edb8f35..503168d 100644
--- a/toolbars/midori-findbar.c
+++ b/toolbars/midori-findbar.c
@@ -97,23 +97,30 @@ midori_findbar_case_sensitive (MidoriFindbar* findbar)
}
void
-midori_findbar_find (MidoriFindbar* findbar,
- gboolean forward)
+midori_findbar_find_text (MidoriFindbar* findbar,
+ const gchar* text,
+ gboolean forward)
{
MidoriBrowser* browser = midori_browser_get_for_widget (GTK_WIDGET (findbar));
- const gchar* text;
gboolean case_sensitive;
GtkWidget* view;
if (!(view = midori_browser_get_current_tab (browser)))
return;
- text = gtk_entry_get_text (GTK_ENTRY (findbar->find_text));
case_sensitive = midori_findbar_case_sensitive (findbar);
midori_view_search_text (MIDORI_VIEW (view), text, case_sensitive, forward);
}
void
+midori_findbar_find (MidoriFindbar* findbar,
+ gboolean forward)
+{
+ const gchar* text = gtk_entry_get_text (GTK_ENTRY (findbar->find_text));
+ midori_findbar_find_text (findbar, text, forward);
+}
+
+void
midori_findbar_invoke (MidoriFindbar* findbar)
{
if (gtk_widget_get_visible (GTK_WIDGET (findbar)))
@@ -161,20 +168,28 @@ midori_findbar_button_close_clicked_cb (GtkWidget* widget,
}
static void
-midori_findbar_text_changed_cb (GtkWidget* entry,
- MidoriFindbar* findbar)
+midori_findbar_preedit_changed_cb (GtkWidget* entry,
+ const gchar* preedit,
+ MidoriFindbar* findbar)
{
if (findbar->find_typing)
{
MidoriBrowser* browser = midori_browser_get_for_widget (entry);
GtkWidget* view = midori_browser_get_current_tab (browser);
- const gchar* text = gtk_entry_get_text (GTK_ENTRY (entry));
midori_view_unmark_text_matches (MIDORI_VIEW (view));
- if (g_utf8_strlen (text, -1) > 1)
- midori_findbar_find (findbar, TRUE);
+ if (g_utf8_strlen (preedit, -1) > 1)
+ midori_findbar_find_text (findbar, preedit, TRUE);
}
}
+static void
+midori_findbar_text_changed_cb (GtkWidget* entry,
+ MidoriFindbar* findbar)
+{
+ const gchar* text = gtk_entry_get_text (GTK_ENTRY (entry));
+ midori_findbar_preedit_changed_cb (entry, text, findbar);
+}
+
static gboolean
midori_findbar_text_focus_out_event_cb (GtkWidget* entry,
GdkEventFocus* event,
@@ -227,6 +242,8 @@ midori_findbar_init (MidoriFindbar* findbar)
G_CALLBACK (midori_findbar_entry_clear_icon_released_cb), NULL);
g_signal_connect (findbar->find_text, "activate",
G_CALLBACK (midori_findbar_next_activate_cb), findbar);
+ g_signal_connect (findbar->find_text, "preedit-changed",
+ G_CALLBACK (midori_findbar_preedit_changed_cb), findbar);
g_signal_connect (findbar->find_text, "changed",
G_CALLBACK (midori_findbar_text_changed_cb), findbar);
g_signal_connect (findbar->find_text, "focus-out-event",
diff --git a/toolbars/midori-findbar.h b/toolbars/midori-findbar.h
index fffa497..e74691c 100644
--- a/toolbars/midori-findbar.h
+++ b/toolbars/midori-findbar.h
@@ -43,6 +43,11 @@ midori_findbar_find (MidoriFindbar* findbar,
gboolean forward);
void
+midori_findbar_find_text (MidoriFindbar* findbar,
+ const gchar* text,
+ gboolean forward);
+
+void
midori_findbar_set_can_find (MidoriFindbar* findbar,
gboolean can_find);
More information about the Xfce4-commits
mailing list