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 /src/ephy-find-toolbar.c | |
parent | 822d2a28ff4c437e23043dc03adbb00ddde36e4d (diff) | |
download | gsoc2013-epiphany-eeac7e657d86802e904337ffef1bf5a0341a8cd0.tar.gz 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 'src/ephy-find-toolbar.c')
-rw-r--r-- | src/ephy-find-toolbar.c | 42 |
1 files changed, 15 insertions, 27 deletions
diff --git a/src/ephy-find-toolbar.c b/src/ephy-find-toolbar.c index 6de388c91..041a4f85c 100644 --- a/src/ephy-find-toolbar.c +++ b/src/ephy-find-toolbar.c @@ -154,71 +154,59 @@ send_focus_change (GtkWidget *widget, * gtk_tree_view_real_start_interactive_seach() */ static gboolean -tab_dom_key_press_cb (EphyEmbed *embed, - gpointer dom_event, - EphyFindToolbar *toolbar) +tab_search_key_press_cb (EphyEmbed *embed, + GdkEventKey *event, + EphyFindToolbar *toolbar) { EphyFindToolbarPrivate *priv = toolbar->priv; GtkWidget *widget = (GtkWidget *) toolbar; GtkEntry *entry = (GtkEntry *) priv->entry; GdkWindow *event_window; - GdkEvent *event; - GdkEventKey *event_key; gboolean retval = FALSE; guint oldhash, newhash; + g_return_val_if_fail (event != NULL, FALSE); + /* don't do anything in PPV mode */ if (ephy_window_get_is_print_preview (priv->window)) return FALSE; - event = gtk_get_current_event (); - if (event == NULL) return FALSE; /* shouldn't happen! */ - - g_return_val_if_fail (GDK_KEY_PRESS == event->type, FALSE); - - event_key = (GdkEventKey *) event; - /* check for / and ' which open the find toolbar in text resp. link mode */ if (GTK_WIDGET_VISIBLE (widget) == FALSE) { - if (event_key->keyval == GDK_slash) + if (event->keyval == GDK_slash) { ephy_find_toolbar_open (toolbar, FALSE, TRUE); - gdk_event_free (event); return TRUE; } - else if (event_key->keyval == GDK_apostrophe) + else if (event->keyval == GDK_apostrophe) { ephy_find_toolbar_open (toolbar, TRUE, TRUE); - gdk_event_free (event); return TRUE; } } /* don't do anything if the find toolbar is hidden */ if (GTK_WIDGET_VISIBLE (widget) == FALSE || - event_key->keyval == GDK_Return || - event_key->keyval == GDK_KP_Enter) + event->keyval == GDK_Return || + event->keyval == GDK_KP_Enter) { - gdk_event_free (event); return FALSE; } oldhash = g_str_hash (gtk_entry_get_text (entry)); - event_window = event_key->window; - event_key->window = priv->entry->window; + event_window = event->window; + event->window = priv->entry->window; /* Send the event to the window. If the preedit_changed signal is emitted * during this event, we will set priv->imcontext_changed */ priv->preedit_changed = priv->activated = FALSE; priv->prevent_activate = TRUE; - retval = gtk_widget_event (priv->entry, event); + retval = gtk_widget_event (priv->entry, (GdkEvent*) event); priv->prevent_activate = FALSE; /* restore event window, else gdk_event_free below will crash */ - event_key->window = event_window; - - gdk_event_free (event); + event->window = event_window; newhash = g_str_hash (gtk_entry_get_text (entry)); @@ -607,8 +595,8 @@ ephy_find_toolbar_set_embed (EphyFindToolbar *toolbar, G_CALLBACK (tab_content_changed_cb), toolbar, G_CONNECT_AFTER); #ifdef HAVE_TYPEAHEADFIND - g_signal_connect_object (embed, "dom-key-press", - G_CALLBACK (tab_dom_key_press_cb), + g_signal_connect_object (embed, "ge-search-key-press", + G_CALLBACK (tab_search_key_press_cb), toolbar, 0); #endif |