diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2005-06-03 21:42:34 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2005-06-03 21:42:34 +0800 |
commit | eeac7e657d86802e904337ffef1bf5a0341a8cd0 (patch) | |
tree | 414d9a2cf8df822765357a4524283061b4c9d6dd /embed/mozilla/mozilla-embed.cpp | |
parent | 822d2a28ff4c437e23043dc03adbb00ddde36e4d (diff) | |
download | gsoc2013-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.cpp | 33 |
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) { |