From f74b860d66e6bb00ea9db2b4c925aad7f3208499 Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Wed, 2 Sep 2009 23:54:53 +0200 Subject: [PATCH] Wrap session saving in a 5 second timeout --- midori/main.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/midori/main.c b/midori/main.c index 56d69e8f..7608ad42 100644 --- a/midori/main.c +++ b/midori/main.c @@ -978,10 +978,10 @@ midori_app_add_browser_cb (MidoriApp* app, g_object_unref (panel); } -static void -midori_browser_session_cb (MidoriBrowser* browser, - gpointer pspec, - KatzeArray* session) +static guint save_timeout = 0; + +static gboolean +midori_session_save_timeout_cb (KatzeArray* session) { gchar* config_file; GError* error; @@ -994,6 +994,24 @@ midori_browser_session_cb (MidoriBrowser* browser, g_error_free (error); } g_free (config_file); + + save_timeout = 0; + g_object_unref (session); + + return FALSE; +} + +static void +midori_browser_session_cb (MidoriBrowser* browser, + gpointer pspec, + KatzeArray* session) +{ + if (!save_timeout) + { + g_object_ref (session); + save_timeout = g_timeout_add_full (G_PRIORITY_LOW, 5000, + (GSourceFunc)midori_session_save_timeout_cb, session, NULL); + } } static void -- 2.39.5