[Xfce4-commits] <midori:master> Fix un-delaying of tabs and introduce MidoriDelay enum
Christian Dywan
noreply at xfce.org
Thu Sep 20 23:46:04 CEST 2012
Updating branch refs/heads/master
to 467f9ddf45e4d29dbc85ca4558cd72ec4408c84d (commit)
from b58bb3edae3086201ff38f62d37ee58bd7f7f706 (commit)
commit 467f9ddf45e4d29dbc85ca4558cd72ec4408c84d
Author: Christian Dywan <christian at twotoasts.de>
Date: Thu Sep 20 22:17:27 2012 +0200
Fix un-delaying of tabs and introduce MidoriDelay enum
Fixes: https://bugs.launchpad.net/midori/+bug/1053226
extensions/delayed-load.vala | 6 +++---
midori/main.c | 5 +++--
midori/midori-view.c | 12 +++++++-----
midori/midori-view.h | 7 +++++++
midori/midori.vapi | 7 +++++++
5 files changed, 27 insertions(+), 10 deletions(-)
diff --git a/extensions/delayed-load.vala b/extensions/delayed-load.vala
index 83af253..4f290d7 100644
--- a/extensions/delayed-load.vala
+++ b/extensions/delayed-load.vala
@@ -86,7 +86,7 @@ namespace DelayedLoad {
item.ref();
int64 delay = item.get_meta_integer ("delay");
- if (delay == -2) {
+ if (delay == Midori.Delay.PENDING_UNDELAY) {
view.reload (true);
}
}
@@ -141,7 +141,7 @@ namespace DelayedLoad {
item.ref();
int64 delay = item.get_meta_integer ("delay");
- if (delay == -2 && new_view.progress < 1.0) {
+ if (delay == Midori.Delay.PENDING_UNDELAY && new_view.progress < 1.0) {
this.schedule_reload (browser, new_view);
}
}
@@ -157,7 +157,7 @@ namespace DelayedLoad {
item.ref();
int64 delay = item.get_meta_integer ("delay");
- if (delay != 1) {
+ if (delay != Midori.Delay.DELAYED) {
unowned WebKit.WebView web_view = view.get_web_view ();
WebKit.LoadStatus load_status = web_view.load_status;
if (load_status == WebKit.LoadStatus.FINISHED) {
diff --git a/midori/main.c b/midori/main.c
index 2d3af37..69163d5 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -1430,8 +1430,9 @@ midori_load_session (gpointer data)
{
katze_item_set_meta_integer (item, "append", 1);
katze_item_set_meta_integer (item, "dont-write-history", 1);
- if (load_on_startup == MIDORI_STARTUP_DELAYED_PAGES)
- katze_item_set_meta_integer (item, "delay", 1);
+ if (load_on_startup == MIDORI_STARTUP_DELAYED_PAGES
+ || katze_item_get_meta_integer (item, "delay") == MIDORI_DELAY_PENDING_UNDELAY)
+ katze_item_set_meta_integer (item, "delay", MIDORI_DELAY_DELAYED);
midori_browser_add_item (browser, item);
}
current = katze_item_get_meta_integer (KATZE_ITEM (_session), "current");
diff --git a/midori/midori-view.c b/midori/midori-view.c
index b3b6634..92b4a5e 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -1025,6 +1025,9 @@ midori_view_web_view_navigation_decision_cb (WebKitWebView* web_view
#endif
view->special = FALSE;
+ if (katze_item_get_meta_integer (view->item, "delay") == MIDORI_DELAY_PENDING_UNDELAY)
+ katze_item_set_meta_integer (view->item, "delay", MIDORI_DELAY_UNDELAYED);
+
/* Remove link labels */
js_context = webkit_web_frame_get_global_context (web_frame);
result = sokoke_js_script_eval (js_context,
@@ -4205,7 +4208,7 @@ midori_view_set_uri (MidoriView* view,
katze_assign (view->uri, NULL);
katze_assign (view->mime_type, NULL);
katze_item_set_meta_string (view->item, "mime-type", NULL);
- katze_item_set_meta_integer (view->item, "delay", -1);
+ katze_item_set_meta_integer (view->item, "delay", MIDORI_DELAY_UNDELAYED);
html = midori_speed_dial_get_html (dial, NULL);
midori_view_load_alternate_string (view, html, "about:blank", NULL);
@@ -4437,15 +4440,15 @@ midori_view_set_uri (MidoriView* view,
webkit_web_view_load_html_string (
WEBKIT_WEB_VIEW (view->web_view), data, view->uri);
g_free (data);
- katze_item_set_meta_integer (view->item, "delay", -1);
+ katze_item_set_meta_integer (view->item, "delay", MIDORI_DELAY_UNDELAYED);
if (g_strcmp0 (view->item->uri, view->uri))
katze_item_set_uri (view->item, view->uri);
g_object_notify (G_OBJECT (view), "uri");
}
- else if (katze_item_get_meta_boolean (view->item, "delay"))
+ else if (katze_item_get_meta_integer (view->item, "delay") == MIDORI_DELAY_DELAYED)
{
katze_assign (view->uri, g_strdup (uri));
- katze_item_set_meta_integer (view->item, "delay", -2);
+ katze_item_set_meta_integer (view->item, "delay", MIDORI_DELAY_PENDING_UNDELAY);
midori_view_display_error (
view, view->uri, view->title ? view->title : view->uri,
_("Page loading delayed"),
@@ -5479,7 +5482,6 @@ midori_view_reload (MidoriView* view,
webkit_web_view_reload (WEBKIT_WEB_VIEW (view->web_view));
else
webkit_web_view_reload_bypass_cache (WEBKIT_WEB_VIEW (view->web_view));
- katze_item_set_meta_integer (view->item, "delay", -1);
}
/**
diff --git a/midori/midori-view.h b/midori/midori-view.h
index 22d98e8..daf29fd 100644
--- a/midori/midori-view.h
+++ b/midori/midori-view.h
@@ -35,6 +35,13 @@ typedef enum
MIDORI_NEW_VIEW_WINDOW
} MidoriNewView;
+typedef enum
+{
+ MIDORI_DELAY_UNDELAYED = -1, /* The view is in a regular undelayed state */
+ MIDORI_DELAY_DELAYED = 1, /* The view is delayed but has not displayed any indication of such */
+ MIDORI_DELAY_PENDING_UNDELAY = -2 /* The view is delayed and showing a message asking to be undelayed */
+} MidoriDelay;
+
GType
midori_new_view_get_type (void) G_GNUC_CONST;
diff --git a/midori/midori.vapi b/midori/midori.vapi
index 2d5f13b..3d2d14c 100644
--- a/midori/midori.vapi
+++ b/midori/midori.vapi
@@ -191,6 +191,13 @@ namespace Midori {
OPEN_IN_VIEWER
}
+ [CCode (cheader_filename = "midori/midori-view.h", cprefix = "MIDORI_DELAY_")]
+ public enum Delay {
+ UNDELAYED,
+ DELAYED,
+ PENDING_UNDELAY,
+ }
+
public class WebSettings : WebKit.WebSettings {
public WebSettings ();
[NoAccessorMethod]
More information about the Xfce4-commits
mailing list