aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXan Lopez <xan@gnome.org>2009-09-07 20:28:28 +0800
committerXan Lopez <xan@gnome.org>2009-09-07 20:31:04 +0800
commit7d58850eb100ff84bb2fe3f48658e01f64bb088c (patch)
treeff3e0aa65c9225039d3a2c9799fd41d575d25db3
parent108eade49982245d1ffcf30159707554cdb63d69 (diff)
downloadgsoc2013-epiphany-7d58850eb100ff84bb2fe3f48658e01f64bb088c.tar.gz
gsoc2013-epiphany-7d58850eb100ff84bb2fe3f48658e01f64bb088c.tar.zst
gsoc2013-epiphany-7d58850eb100ff84bb2fe3f48658e01f64bb088c.zip
Simplify EXPIRE logic in ephy_web_view_set_typed_address
The whole thing just had one functionality at this point as far as I can see: prevent the typed address from being wiped out when a page is loading. Simplify the code to do just that.
-rw-r--r--embed/ephy-web-view.c29
-rw-r--r--embed/ephy-web-view.h10
-rw-r--r--src/ephy-lockdown.c3
-rw-r--r--src/ephy-shell.c3
-rw-r--r--src/ephy-toolbar.c3
5 files changed, 16 insertions, 32 deletions
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 49fc653d5..499fb86f1 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -54,7 +54,6 @@ static void ephy_web_view_init (EphyWebView *gs);
#define EMPTY_PAGE _("Blank page") /* Title for the empty page */
struct _EphyWebViewPrivate {
- EphyWebViewAddressExpire address_expire;
EphyWebViewSecurityLevel security_level;
EphyWebViewDocumentType document_type;
EphyWebViewNavigationFlags nav_flags;
@@ -72,6 +71,7 @@ struct _EphyWebViewPrivate {
char *link_message;
char *icon_address;
GdkPixbuf *icon;
+ gboolean expire_address_now;
/* File watch */
GFileMonitor *monitor;
@@ -441,8 +441,7 @@ ephy_web_view_set_property (GObject *object,
ephy_web_view_set_popups_allowed (EPHY_WEB_VIEW (object), g_value_get_boolean (value));
break;
case PROP_TYPED_ADDRESS:
- ephy_web_view_set_typed_address (EPHY_WEB_VIEW (object), g_value_get_string (value),
- EPHY_WEB_VIEW_ADDRESS_EXPIRE_NOW);
+ ephy_web_view_set_typed_address (EPHY_WEB_VIEW (object), g_value_get_string (value));
break;
break;
case PROP_ADDRESS:
@@ -1011,7 +1010,7 @@ ephy_web_view_init (EphyWebView *web_view)
priv = web_view->priv = EPHY_WEB_VIEW_GET_PRIVATE (web_view);
- priv->address_expire = EPHY_WEB_VIEW_ADDRESS_EXPIRE_NOW;
+ priv->expire_address_now = TRUE;
priv->is_blank = TRUE;
priv->load_status = WEBKIT_LOAD_PROVISIONAL;
priv->title = g_strdup (EMPTY_PAGE);
@@ -1198,7 +1197,7 @@ ephy_web_view_set_address (EphyWebView *view,
strcmp (address, "about:blank") == 0;
if (ephy_web_view_is_loading (view) &&
- priv->address_expire == EPHY_WEB_VIEW_ADDRESS_EXPIRE_NOW &&
+ priv->expire_address_now == TRUE &&
priv->typed_address != NULL) {
g_free (priv->typed_address);
priv->typed_address = NULL;
@@ -1293,7 +1292,7 @@ ensure_page_info (EphyWebView *view, const char *address)
EphyWebViewPrivate *priv = view->priv;
if ((priv->address == NULL || priv->address[0] == '\0') &&
- priv->address_expire == EPHY_WEB_VIEW_ADDRESS_EXPIRE_NOW) {
+ priv->expire_address_now == TRUE) {
ephy_web_view_set_address (view, address);
}
@@ -1404,7 +1403,7 @@ ephy_web_view_update_from_net_state (EphyWebView *view,
g_free (priv->loading_title);
priv->loading_title = NULL;
- priv->address_expire = EPHY_WEB_VIEW_ADDRESS_EXPIRE_NOW;
+ priv->expire_address_now = TRUE;
g_object_notify (object, "embed-title");
@@ -1909,27 +1908,23 @@ ephy_web_view_get_typed_address (EphyWebView *view)
* ephy_web_view_set_typed_address:
* @view: an #EphyWebView
* @address: the new typed address, or %NULL to clear it
- * @expire: when to expire this address_expire
*
* Sets the text that @view's #EphyWindow will display in its location toolbar
* entry when @view is selected.
**/
void
ephy_web_view_set_typed_address (EphyWebView *view,
- const char *address,
- EphyWebViewAddressExpire expire)
+ const char *address)
{
EphyWebViewPrivate *priv = EPHY_WEB_VIEW (view)->priv;
g_free (priv->typed_address);
priv->typed_address = g_strdup (address);
-
- if (expire == EPHY_WEB_VIEW_ADDRESS_EXPIRE_CURRENT &&
- !ephy_web_view_is_loading (view)) {
- priv->address_expire = EPHY_WEB_VIEW_ADDRESS_EXPIRE_NOW;
- } else {
- priv->address_expire = expire;
- }
+ /* If the page is loading prevent the typed address from going away,
+ since Epiphany will try to overwrite the typed address with the
+ confirmed full URL when passing through, for example, the
+ COMMITTED state. */
+ priv->expire_address_now = !ephy_web_view_is_loading (view);
g_object_notify (G_OBJECT (view), "typed-address");
}
diff --git a/embed/ephy-web-view.h b/embed/ephy-web-view.h
index dd92b9d5d..d50bf4fa1 100644
--- a/embed/ephy-web-view.h
+++ b/embed/ephy-web-view.h
@@ -108,13 +108,6 @@ typedef enum
EPHY_WEB_VIEW_DOCUMENT_OTHER
} EphyWebViewDocumentType;
-typedef enum
-{
- EPHY_WEB_VIEW_ADDRESS_EXPIRE_NOW,
- EPHY_WEB_VIEW_ADDRESS_EXPIRE_NEXT,
- EPHY_WEB_VIEW_ADDRESS_EXPIRE_CURRENT
-} EphyWebViewAddressExpire;
-
struct _EphyWebView
{
WebKitWebView parent;
@@ -195,8 +188,7 @@ void ephy_web_view_set_visibility (EphyWebView
gboolean visibility);
const char * ephy_web_view_get_typed_address (EphyWebView *view);
void ephy_web_view_set_typed_address (EphyWebView *view,
- const char *address,
- EphyWebViewAddressExpire expire);
+ const char *address);
gboolean ephy_web_view_get_is_blank (EphyWebView *view);
gboolean ephy_web_view_has_modified_forms (EphyWebView *view);
char * ephy_web_view_get_location (EphyWebView *view,
diff --git a/src/ephy-lockdown.c b/src/ephy-lockdown.c
index 98627e722..f11d7b086 100644
--- a/src/ephy-lockdown.c
+++ b/src/ephy-lockdown.c
@@ -106,8 +106,7 @@ update_location_editable (EphyWindow *window,
{
address = ephy_web_view_get_location (EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (embed), TRUE);
ephy_toolbar_set_location (EPHY_TOOLBAR (toolbar), address, NULL);
- ephy_web_view_set_typed_address (EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (embed), NULL,
- EPHY_WEB_VIEW_ADDRESS_EXPIRE_CURRENT);
+ ephy_web_view_set_typed_address (EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (embed), NULL);
g_free (address);
}
}
diff --git a/src/ephy-shell.c b/src/ephy-shell.c
index 0d37e609f..38c0c1a69 100644
--- a/src/ephy-shell.c
+++ b/src/ephy-shell.c
@@ -515,8 +515,7 @@ ephy_shell_new_tab_full (EphyShell *shell,
if (flags & EPHY_NEW_TAB_HOME_PAGE ||
flags & EPHY_NEW_TAB_NEW_PAGE)
{
- ephy_web_view_set_typed_address (EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (embed), "",
- EPHY_WEB_VIEW_ADDRESS_EXPIRE_NEXT);
+ ephy_web_view_set_typed_address (EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (embed), "");
ephy_toolbar_activate_location (toolbar);
is_empty = load_homepage (embed);
}
diff --git a/src/ephy-toolbar.c b/src/ephy-toolbar.c
index e91b8ed62..61a34fccc 100644
--- a/src/ephy-toolbar.c
+++ b/src/ephy-toolbar.c
@@ -183,8 +183,7 @@ sync_user_input_cb (EphyLocationAction *action,
address = ephy_location_action_get_address (action);
priv->updating_address = TRUE;
- ephy_web_view_set_typed_address (EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (embed), address,
- EPHY_WEB_VIEW_ADDRESS_EXPIRE_CURRENT);
+ ephy_web_view_set_typed_address (EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (embed), address);
priv->updating_address = FALSE;
}