aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorXan Lopez <xan@igalia.com>2012-03-01 00:41:55 +0800
committerXan Lopez <xan@igalia.com>2012-03-07 04:49:44 +0800
commit1e8ee19ea0e651414c98d0f863b76c72d484cf83 (patch)
treeed972d4c95b0faec095eec4a6188486937227816 /src
parent92dec4e47d68bfb77be9ff256fcf44d1407d4ef4 (diff)
downloadgsoc2013-epiphany-1e8ee19ea0e651414c98d0f863b76c72d484cf83.tar
gsoc2013-epiphany-1e8ee19ea0e651414c98d0f863b76c72d484cf83.tar.gz
gsoc2013-epiphany-1e8ee19ea0e651414c98d0f863b76c72d484cf83.tar.bz2
gsoc2013-epiphany-1e8ee19ea0e651414c98d0f863b76c72d484cf83.tar.lz
gsoc2013-epiphany-1e8ee19ea0e651414c98d0f863b76c72d484cf83.tar.xz
gsoc2013-epiphany-1e8ee19ea0e651414c98d0f863b76c72d484cf83.tar.zst
gsoc2013-epiphany-1e8ee19ea0e651414c98d0f863b76c72d484cf83.zip
ephy-location-controller: smoother redraw of the completion popup
Workaround some bugs in entry completion's redraw code. See https://bugzilla.gnome.org/show_bug.cgi?id=671074
Diffstat (limited to 'src')
-rw-r--r--src/ephy-location-controller.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/ephy-location-controller.c b/src/ephy-location-controller.c
index 9315ad6cf..5908967a4 100644
--- a/src/ephy-location-controller.c
+++ b/src/ephy-location-controller.c
@@ -165,6 +165,18 @@ entry_activate_cb (GtkEntry *entry,
}
static void
+update_done_cb (EphyHistoryService *service,
+ gboolean success,
+ gpointer result_data,
+ gpointer user_data)
+{
+ /* FIXME: this hack is needed for the completion entry popup
+ * to resize smoothly. See:
+ * https://bugzilla.gnome.org/show_bug.cgi?id=671074 */
+ gtk_entry_completion_complete (GTK_ENTRY_COMPLETION (user_data));
+}
+
+static void
user_changed_cb (GtkWidget *widget, EphyLocationController *controller)
{
const char *address;
@@ -182,7 +194,7 @@ user_changed_cb (GtkWidget *widget, EphyLocationController *controller)
model = gtk_entry_completion_get_model (completion);
ephy_completion_model_update_for_string (EPHY_COMPLETION_MODEL (model), address,
- NULL, NULL);
+ update_done_cb, completion);
g_signal_handlers_unblock_by_func (controller, G_CALLBACK (sync_address), widget);
}