aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/mozilla-embed.cpp
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2005-06-03 21:42:34 +0800
committerChristian Persch <chpe@src.gnome.org>2005-06-03 21:42:34 +0800
commiteeac7e657d86802e904337ffef1bf5a0341a8cd0 (patch)
tree414d9a2cf8df822765357a4524283061b4c9d6dd /embed/mozilla/mozilla-embed.cpp
parent822d2a28ff4c437e23043dc03adbb00ddde36e4d (diff)
downloadgsoc2013-epiphany-eeac7e657d86802e904337ffef1bf5a0341a8cd0.tar
gsoc2013-epiphany-eeac7e657d86802e904337ffef1bf5a0341a8cd0.tar.gz
gsoc2013-epiphany-eeac7e657d86802e904337ffef1bf5a0341a8cd0.tar.bz2
gsoc2013-epiphany-eeac7e657d86802e904337ffef1bf5a0341a8cd0.tar.lz
gsoc2013-epiphany-eeac7e657d86802e904337ffef1bf5a0341a8cd0.tar.xz
gsoc2013-epiphany-eeac7e657d86802e904337ffef1bf5a0341a8cd0.tar.zst
gsoc2013-epiphany-eeac7e657d86802e904337ffef1bf5a0341a8cd0.zip
Don't open search toolbar on / or ' over formfields:
2005-06-03 Christian Persch <chpe@cvs.gnome.org> Don't open search toolbar on / or ' over formfields: * embed/ephy-embed.c: (ephy_embed_base_init): * embed/ephy-embed.h: New signal for searchable key presses. * embed/mozilla/EventContext.cpp: * embed/mozilla/EventContext.h: Add static function to check if a keypress should be forwarded to the search toolbar. * embed/mozilla/mozilla-embed.cpp: Emit the signal here. * lib/ephy-marshal.list: * src/ephy-find-toolbar.c: (tab_search_key_press_cb), (ephy_find_toolbar_set_embed): Use the new signal instead of dom-key-press.
Diffstat (limited to 'embed/mozilla/mozilla-embed.cpp')
-rw-r--r--embed/mozilla/mozilla-embed.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp
index 1d87d77ab..e9fc2aab9 100644
--- a/embed/mozilla/mozilla-embed.cpp
+++ b/embed/mozilla/mozilla-embed.cpp
@@ -64,6 +64,9 @@ static gboolean mozilla_embed_dom_mouse_click_cb(GtkMozEmbed *embed,
static gboolean mozilla_embed_dom_mouse_down_cb (GtkMozEmbed *embed,
gpointer dom_event,
MozillaEmbed *membed);
+static gboolean mozilla_embed_dom_key_press_cb (GtkMozEmbed *embed,
+ gpointer dom_event,
+ MozillaEmbed *membed);
static void mozilla_embed_new_window_cb (GtkMozEmbed *embed,
GtkMozEmbed **newEmbed,
guint chrome_mask,
@@ -242,6 +245,9 @@ mozilla_embed_init (MozillaEmbed *embed)
g_signal_connect_object (G_OBJECT (embed), "dom_mouse_down",
G_CALLBACK (mozilla_embed_dom_mouse_down_cb),
embed, (GConnectFlags) 0);
+ g_signal_connect_object (G_OBJECT (embed), "dom-key-press",
+ G_CALLBACK (mozilla_embed_dom_key_press_cb),
+ embed, (GConnectFlags) 0);
g_signal_connect_object (G_OBJECT (embed), "new_window",
G_CALLBACK (mozilla_embed_new_window_cb),
embed, (GConnectFlags) 0);
@@ -910,6 +916,33 @@ mozilla_embed_dom_mouse_down_cb (GtkMozEmbed *embed, gpointer dom_event,
"ge_dom_mouse_down");
}
+static gint
+mozilla_embed_dom_key_press_cb (GtkMozEmbed *embed,
+ gpointer dom_event,
+ MozillaEmbed *membed)
+{
+ MozillaEmbedPrivate *mpriv = membed->priv;
+ gint retval = FALSE;
+
+ if (dom_event == NULL) return FALSE;
+
+ nsCOMPtr<nsIDOMKeyEvent> ev = static_cast<nsIDOMKeyEvent*>(dom_event);
+ NS_ENSURE_TRUE (ev, FALSE);
+
+ if (!EventContext::CheckKeyPress (ev)) return FALSE;
+
+ GdkEvent *event = gtk_get_current_event ();
+ if (event == NULL) return FALSE; /* shouldn't happen! */
+
+ g_return_val_if_fail (GDK_KEY_PRESS == event->type, FALSE);
+
+ g_signal_emit_by_name (embed, "ge-search-key-press", event, &retval);
+
+ gdk_event_free (event);
+
+ return retval;
+}
+
EphyEmbedChrome
_mozilla_embed_translate_chrome (GtkMozEmbedChromeFlags flags)
{