[Xfce4-commits] <midori:master> Show inline find while typing in an overlay
Christian Dywan
noreply at xfce.org
Sun Mar 18 14:16:01 CET 2012
Updating branch refs/heads/master
to e75b8144322b4b7c9a731ba8ff467962229c1701 (commit)
from f3af1983ed855b9e23f8b1c7c3859220a0915c30 (commit)
commit e75b8144322b4b7c9a731ba8ff467962229c1701
Author: Christian Dywan <christian at twotoasts.de>
Date: Sun Mar 18 14:06:13 2012 +0100
Show inline find while typing in an overlay
midori/midori-view.c | 14 ++++++++++++++
toolbars/midori-findbar.c | 3 ++-
toolbars/midori-findbar.h | 2 +-
3 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/midori/midori-view.c b/midori/midori-view.c
index 670a359..63b8f93 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -15,6 +15,7 @@
#include "midori-searchaction.h"
#include "midori-platform.h"
#include "midori-core.h"
+#include "midori-findbar.h"
#include "marshal.h"
@@ -116,6 +117,7 @@ struct _MidoriView
#if GTK_CHECK_VERSION (3, 2, 0)
GtkWidget* overlay;
GtkWidget* overlay_label;
+ GtkWidget* overlay_find;
#endif
};
@@ -2044,7 +2046,12 @@ gtk_widget_key_press_event_cb (WebKitWebView* web_view,
&& !webkit_web_view_can_paste_clipboard (web_view))
{
gchar* text = character ? g_strdup_printf ("%c", character) : NULL;
+ #if GTK_CHECK_VERSION(3, 2, 0)
+ midori_findbar_search_text (MIDORI_FINDBAR (view->overlay_find),
+ (GtkWidget*)view, TRUE, katze_str_non_null (text));
+ #else
g_signal_emit (view, signals[SEARCH_TEXT], 0, TRUE, text ? text : "");
+ #endif
g_free (text);
return TRUE;
}
@@ -3174,10 +3181,17 @@ midori_view_init (MidoriView* view)
gtk_container_add (GTK_CONTAINER (view->overlay), view->scrolled_window);
gtk_box_pack_start (GTK_BOX (view), view->overlay, TRUE, TRUE, 0);
+ /* Overlays must be created before showing GtkOverlay as of GTK+ 3.2 */
view->overlay_label = gtk_label_new (NULL);
gtk_widget_set_halign (view->overlay_label, GTK_ALIGN_START);
gtk_widget_set_valign (view->overlay_label, GTK_ALIGN_END);
gtk_overlay_add_overlay (GTK_OVERLAY (view->overlay), view->overlay_label);
+ view->overlay_find = g_object_new (MIDORI_TYPE_FINDBAR, NULL);
+ gtk_widget_set_halign (view->overlay_find, GTK_ALIGN_END);
+ gtk_widget_set_valign (view->overlay_find, GTK_ALIGN_START);
+ gtk_overlay_add_overlay (GTK_OVERLAY (view->overlay),
+ view->overlay_find);
+ gtk_widget_set_no_show_all (view->overlay_find, TRUE);
#else
gtk_box_pack_start (GTK_BOX (view), view->scrolled_window, TRUE, TRUE, 0);
#endif
diff --git a/toolbars/midori-findbar.c b/toolbars/midori-findbar.c
index 122489d..22ab5da 100644
--- a/toolbars/midori-findbar.c
+++ b/toolbars/midori-findbar.c
@@ -253,6 +253,7 @@ midori_findbar_init (MidoriFindbar* findbar)
#endif
gtk_toolbar_set_icon_size (GTK_TOOLBAR (findbar), GTK_ICON_SIZE_MENU);
gtk_toolbar_set_style (GTK_TOOLBAR (findbar), GTK_TOOLBAR_BOTH_HORIZ);
+ gtk_toolbar_set_show_arrow (GTK_TOOLBAR (findbar), FALSE);
g_signal_connect (findbar, "key-press-event",
G_CALLBACK (midori_findbar_find_key_press_event_cb), NULL);
@@ -336,7 +337,7 @@ void
midori_findbar_search_text (MidoriFindbar* findbar,
GtkWidget* view,
gboolean found,
- gchar* typing)
+ const gchar* typing)
{
const gchar* text;
gboolean case_sensitive;
diff --git a/toolbars/midori-findbar.h b/toolbars/midori-findbar.h
index e587173..5f1a54c 100644
--- a/toolbars/midori-findbar.h
+++ b/toolbars/midori-findbar.h
@@ -55,7 +55,7 @@ void
midori_findbar_search_text (MidoriFindbar* findbar,
GtkWidget* view,
gboolean found,
- gchar* typing);
+ const gchar* typing);
void
midori_findbar_set_close_button_left (MidoriFindbar* findbar,
More information about the Xfce4-commits
mailing list