aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-url-entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/e-url-entry.c')
-rw-r--r--e-util/e-url-entry.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/e-util/e-url-entry.c b/e-util/e-url-entry.c
index 5b90f4a14f..501f4e5760 100644
--- a/e-util/e-url-entry.c
+++ b/e-util/e-url-entry.c
@@ -45,10 +45,22 @@ url_entry_text_to_sensitive (GBinding *binding,
gpointer user_data)
{
const gchar *text;
- gboolean sensitive;
+ gboolean sensitive = FALSE;
text = g_value_get_string (source_value);
- sensitive = (text != NULL && *text != '\0');
+
+ if (text != NULL) {
+ gchar *scheme;
+
+ /* Skip leading whitespace. */
+ while (g_ascii_isspace (*text))
+ text++;
+
+ scheme = g_uri_parse_scheme (text);
+ sensitive = (scheme != NULL);
+ g_free (scheme);
+ }
+
g_value_set_boolean (target_value, sensitive);
return TRUE;
@@ -70,6 +82,10 @@ url_entry_icon_release_cb (GtkEntry *entry,
text = gtk_entry_get_text (entry);
g_return_if_fail (text != NULL);
+ /* Skip leading whitespace. */
+ while (g_ascii_isspace (*text))
+ text++;
+
e_show_uri (toplevel, text);
}
}