From: Jose Dapena Paz Date: Tue, 15 Jan 2008 13:40:13 +0000 (+0000) Subject: * src/maemo/modest-address-book.c: X-Git-Tag: git_migration_finished~1801 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=0ad49da7d5812867bc190fdb285b1e24e3c9819c * src/maemo/modest-address-book.c: * Now we show "checking names" banner only when it takes more than 500 ms. This way, if the operation is immediate, we don't get a blank banner shown for a moment. Fixes NB#79290. pmo-trunk-r4043 --- diff --git a/src/maemo/modest-address-book.c b/src/maemo/modest-address-book.c index e8e6c63..f97f647 100644 --- a/src/maemo/modest-address-book.c +++ b/src/maemo/modest-address-book.c @@ -625,6 +625,18 @@ add_to_address_book (const gchar* address) return TRUE; } +static gboolean +show_check_names_banner (gpointer userdata) +{ + GtkWidget **banner = (GtkWidget **) userdata; + + gdk_threads_enter (); + *banner = modest_platform_animation_banner (NULL, NULL, _("mail_ib_checking_names")); + gdk_threads_leave (); + + return FALSE; +} + gboolean modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean update_addressbook) { @@ -636,11 +648,11 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat gint offset_delta = 0; gint last_length; GtkTextIter start_iter, end_iter; + guint banner_timeout; + GtkWidget *banner = NULL; g_return_val_if_fail (MODEST_IS_RECPT_EDITOR (recpt_editor), FALSE); - modest_platform_information_banner (NULL, NULL, _("mail_ib_checking_names")); - recipients = modest_recpt_editor_get_recipients (recpt_editor); last_length = g_utf8_strlen (recipients, -1); modest_text_utils_get_addresses_indexes (recipients, &start_indexes, &end_indexes); @@ -654,6 +666,8 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat } } + banner_timeout = g_timeout_add (500, show_check_names_banner, &banner); + current_start = start_indexes; current_end = end_indexes; buffer = modest_recpt_editor_get_buffer (recpt_editor); @@ -762,6 +776,14 @@ modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean updat g_slist_free (start_indexes); g_slist_free (end_indexes); + g_source_remove (banner_timeout); + if (banner != NULL) { + gtk_widget_destroy (banner); + banner = NULL; + } else { + g_source_remove (banner_timeout); + } + return result; }