Undo "Don't queue thumbs already waiting, 5 seconds timeout"
For now the behavior isn't reliable enough and should be investigated more.
This commit is contained in:
parent
37d14e16b7
commit
6f6a57a623
1 changed files with 3 additions and 49 deletions
|
@ -62,9 +62,6 @@ midori_view_speed_dial_get_thumb (MidoriView* view,
|
||||||
gchar* dial_id,
|
gchar* dial_id,
|
||||||
gchar* url);
|
gchar* url);
|
||||||
|
|
||||||
static void
|
|
||||||
midori_view_speed_dial_thumb_apply (MidoriView* view);
|
|
||||||
|
|
||||||
struct _MidoriView
|
struct _MidoriView
|
||||||
{
|
{
|
||||||
GtkVBox parent_instance;
|
GtkVBox parent_instance;
|
||||||
|
@ -191,7 +188,6 @@ static guint signals[LAST_SIGNAL];
|
||||||
static gchar* speeddial_markup = NULL;
|
static gchar* speeddial_markup = NULL;
|
||||||
static GtkWidget* thumb_view = NULL;
|
static GtkWidget* thumb_view = NULL;
|
||||||
static GList* thumb_queue = NULL;
|
static GList* thumb_queue = NULL;
|
||||||
static guint thumb_timeout = 0;
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_view_finalize (GObject* object);
|
midori_view_finalize (GObject* object);
|
||||||
|
@ -5316,22 +5312,6 @@ static void
|
||||||
thumb_view_load_status_cb (WebKitWebView* thumb_view_,
|
thumb_view_load_status_cb (WebKitWebView* thumb_view_,
|
||||||
GParamSpec* pspec,
|
GParamSpec* pspec,
|
||||||
MidoriView* view)
|
MidoriView* view)
|
||||||
{
|
|
||||||
if (webkit_web_view_get_load_status (thumb_view_) != WEBKIT_LOAD_FINISHED)
|
|
||||||
return;
|
|
||||||
|
|
||||||
midori_view_speed_dial_thumb_apply (view);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
midori_view_speed_dial_thumb_timeout (MidoriView* view)
|
|
||||||
{
|
|
||||||
webkit_web_view_stop_loading (WEBKIT_WEB_VIEW (thumb_view));
|
|
||||||
midori_view_speed_dial_thumb_apply (view);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
midori_view_speed_dial_thumb_apply (MidoriView* view)
|
|
||||||
{
|
{
|
||||||
GdkPixbuf* img;
|
GdkPixbuf* img;
|
||||||
#if HAVE_OFFSCREEN
|
#if HAVE_OFFSCREEN
|
||||||
|
@ -5346,8 +5326,8 @@ midori_view_speed_dial_thumb_apply (MidoriView* view)
|
||||||
GKeyFile* key_file;
|
GKeyFile* key_file;
|
||||||
const gchar* title;
|
const gchar* title;
|
||||||
|
|
||||||
if (thumb_timeout > 0)
|
if (webkit_web_view_get_load_status (thumb_view_) != WEBKIT_LOAD_FINISHED)
|
||||||
g_source_remove (thumb_timeout);
|
return;
|
||||||
|
|
||||||
spec = g_object_get_data (G_OBJECT (thumb_view), "spec");
|
spec = g_object_get_data (G_OBJECT (thumb_view), "spec");
|
||||||
url = strstr (spec, "|") + 1;
|
url = strstr (spec, "|") + 1;
|
||||||
|
@ -5385,10 +5365,6 @@ midori_view_speed_dial_thumb_apply (MidoriView* view)
|
||||||
thumb_queue = g_list_remove (thumb_queue, spec);
|
thumb_queue = g_list_remove (thumb_queue, spec);
|
||||||
if (thumb_queue != NULL)
|
if (thumb_queue != NULL)
|
||||||
{
|
{
|
||||||
/* At best wait 5 seconds for a single thumbnail to load */
|
|
||||||
thumb_timeout = g_timeout_add_seconds (5,
|
|
||||||
(GSourceFunc)midori_view_speed_dial_thumb_timeout, view);
|
|
||||||
|
|
||||||
g_object_set_data_full (G_OBJECT (thumb_view), "spec",
|
g_object_set_data_full (G_OBJECT (thumb_view), "spec",
|
||||||
thumb_queue->data, (GDestroyNotify)g_free);
|
thumb_queue->data, (GDestroyNotify)g_free);
|
||||||
webkit_web_view_open (WEBKIT_WEB_VIEW (thumb_view),
|
webkit_web_view_open (WEBKIT_WEB_VIEW (thumb_view),
|
||||||
|
@ -5399,14 +5375,6 @@ midori_view_speed_dial_thumb_apply (MidoriView* view)
|
||||||
thumb_view, thumb_view_load_status_cb, view);
|
thumb_view, thumb_view_load_status_cb, view);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
|
||||||
midori_view_speed_dial_thumb_cf (gconstpointer spec1,
|
|
||||||
gconstpointer spec2)
|
|
||||||
{
|
|
||||||
/* Compare URL without dial id */
|
|
||||||
return strcmp (strstr (spec1, "|") + 1, strstr (spec2, "|") + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* midori_view_speed_dial_get_thumb
|
* midori_view_speed_dial_get_thumb
|
||||||
* @view: a #MidoriView
|
* @view: a #MidoriView
|
||||||
|
@ -5420,7 +5388,6 @@ midori_view_speed_dial_get_thumb (MidoriView* view,
|
||||||
{
|
{
|
||||||
WebKitWebSettings* settings;
|
WebKitWebSettings* settings;
|
||||||
GtkWidget* browser;
|
GtkWidget* browser;
|
||||||
gchar* spec;
|
|
||||||
#if !HAVE_OFFSCREEN
|
#if !HAVE_OFFSCREEN
|
||||||
GtkWidget* notebook;
|
GtkWidget* notebook;
|
||||||
GtkWidget* label;
|
GtkWidget* label;
|
||||||
|
@ -5470,23 +5437,10 @@ midori_view_speed_dial_get_thumb (MidoriView* view,
|
||||||
g_object_unref (notebook);
|
g_object_unref (notebook);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
spec = g_strconcat (dial_id, "|", url, NULL);
|
thumb_queue = g_list_append (thumb_queue, g_strconcat (dial_id, "|", url, NULL));
|
||||||
/* If spec is already queued, there's nothing to be done */
|
|
||||||
if (g_list_find_custom (thumb_queue, spec, midori_view_speed_dial_thumb_cf))
|
|
||||||
{
|
|
||||||
g_free (spec);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
thumb_queue = g_list_append (thumb_queue, spec);
|
|
||||||
if (g_list_nth_data (thumb_queue, 1) != NULL)
|
if (g_list_nth_data (thumb_queue, 1) != NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* At best wait 5 seconds for a single thumbnail to load */
|
|
||||||
if (thumb_timeout > 0)
|
|
||||||
g_source_remove (thumb_timeout);
|
|
||||||
thumb_timeout = g_timeout_add_seconds (5,
|
|
||||||
(GSourceFunc)midori_view_speed_dial_thumb_timeout, view);
|
|
||||||
|
|
||||||
g_object_set_data_full (G_OBJECT (thumb_view), "spec",
|
g_object_set_data_full (G_OBJECT (thumb_view), "spec",
|
||||||
thumb_queue->data, (GDestroyNotify)g_free);
|
thumb_queue->data, (GDestroyNotify)g_free);
|
||||||
g_signal_connect (thumb_view, "notify::load-status",
|
g_signal_connect (thumb_view, "notify::load-status",
|
||||||
|
|
Loading…
Reference in a new issue