aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@it.gnome.org>2003-07-01 06:26:45 +0800
committerMarco Pesenti Gritti <mpeseng@src.gnome.org>2003-07-01 06:26:45 +0800
commit486e1939b5347d6ead5d1d0dcbc65399a1072ecc (patch)
tree4e616f4bad2b03e61b6a2a991414633d1325e46d /lib
parentece5e036c19540f6973b510bd7d108bc3c0ad742 (diff)
downloadgsoc2013-epiphany-486e1939b5347d6ead5d1d0dcbc65399a1072ecc.tar.gz
gsoc2013-epiphany-486e1939b5347d6ead5d1d0dcbc65399a1072ecc.tar.zst
gsoc2013-epiphany-486e1939b5347d6ead5d1d0dcbc65399a1072ecc.zip
Hide only when necessary. Remove gdk_ungrab stuff that doesnt seem to be
2003-07-01 Marco Pesenti Gritti <marco@it.gnome.org> * lib/widgets/ephy-autocompletion-window.c: (ephy_autocompletion_window_finalize_impl), (ephy_autocompletion_window_show), (ephy_autocompletion_window_hide): Hide only when necessary. Remove gdk_ungrab stuff that doesnt seem to be necessary. * lib/widgets/ephy-location-entry.c: (ephy_location_entry_autocompletion_show_alternatives): Reset entry->button when showing autocompletion, the grab get gtk crazy otherwise.
Diffstat (limited to 'lib')
-rw-r--r--lib/widgets/ephy-autocompletion-window.c12
-rw-r--r--lib/widgets/ephy-location-entry.c7
2 files changed, 8 insertions, 11 deletions
diff --git a/lib/widgets/ephy-autocompletion-window.c b/lib/widgets/ephy-autocompletion-window.c
index 0f7a8fc1c..d00cfbb19 100644
--- a/lib/widgets/ephy-autocompletion-window.c
+++ b/lib/widgets/ephy-autocompletion-window.c
@@ -209,9 +209,6 @@ ephy_autocompletion_window_finalize_impl (GObject *o)
g_free (p->selected);
g_free (p);
- gdk_pointer_ungrab (GDK_CURRENT_TIME);
- gdk_keyboard_ungrab (GDK_CURRENT_TIME);
-
G_OBJECT_CLASS (g_object_class)->finalize (o);
}
@@ -572,11 +569,6 @@ ephy_autocompletion_window_show (EphyAutocompletionWindow *aw)
{
gtk_widget_show (p->window);
- gdk_pointer_grab (p->parent->window, TRUE,
- GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK |
- GDK_BUTTON_RELEASE_MASK,
- NULL, NULL, GDK_CURRENT_TIME);
- gdk_keyboard_grab (p->parent->window, TRUE, GDK_CURRENT_TIME);\
gtk_grab_add (p->window);
g_signal_connect (p->window, "button-press-event",
@@ -820,12 +812,10 @@ ephy_autocompletion_window_key_press_cb (GtkWidget *widget,
void
ephy_autocompletion_window_hide (EphyAutocompletionWindow *aw)
{
- if (aw->priv->window)
+ if (aw->priv->window && aw->priv->shown)
{
gtk_widget_hide (aw->priv->window);
gtk_grab_remove (aw->priv->window);
- gdk_pointer_ungrab (GDK_CURRENT_TIME);
- gdk_keyboard_ungrab (GDK_CURRENT_TIME);
ephy_autocompletion_window_unselect (aw);
g_signal_emit (aw, EphyAutocompletionWindowSignals[EPHY_AUTOCOMPLETION_WINDOW_HIDDEN], 0);
}
diff --git a/lib/widgets/ephy-location-entry.c b/lib/widgets/ephy-location-entry.c
index 8e869e1a5..3ecebe5a2 100644
--- a/lib/widgets/ephy-location-entry.c
+++ b/lib/widgets/ephy-location-entry.c
@@ -343,6 +343,13 @@ static void
ephy_location_entry_autocompletion_show_alternatives (EphyLocationEntry *w)
{
EphyLocationEntryPrivate *p = w->priv;
+
+ /* Reset it because if we do a grab on click (like when pasting
+ text in the location entry, the entry will lose the release
+ event and will not reset it. It's what gtk does for the entry
+ popup */
+ GTK_ENTRY (w)->button = 0;
+
if (p->autocompletion_window)
{
ephy_autocompletion_window_show (p->autocompletion_window);