[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