From c6d0f26bdddf5f3b70adc1602947318d4b17fa3d Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Mon, 1 Jul 2013 21:54:00 -0400 Subject: [PATCH] Tracking the first idle callback --- src/browser.c | 6 +++++- src/browser.h | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/browser.c b/src/browser.c index 4ac16f2..3860d62 100644 --- a/src/browser.c +++ b/src/browser.c @@ -278,6 +278,7 @@ Browser * browser_new(char const * directory) browser_error(NULL, (directory != NULL) ? directory : ".", 1); return NULL; } + browser->source = 0; browser->window = NULL; browser->theme = gtk_icon_theme_get_default(); #if GTK_CHECK_VERSION(2, 6, 0) @@ -509,7 +510,7 @@ Browser * browser_new(char const * directory) browser->history = g_list_append(browser->history, p); browser->current = browser->history; } - g_idle_add(_new_idle, browser); + browser->source = g_idle_add(_new_idle, browser); gtk_container_add(GTK_CONTAINER(browser->window), vbox); gtk_widget_show_all(browser->window); @@ -522,6 +523,7 @@ static gboolean _new_idle(gpointer data) Browser * browser = data; char const * location; + browser->source = 0; _idle_load_plugins(browser); if((location = browser_get_location(browser)) == NULL) browser_go_home(browser); @@ -626,6 +628,8 @@ static void _delete_plugins(Browser * browser); void browser_delete(Browser * browser) { + if(browser->source != 0) + g_source_remove(browser->source); _delete_plugins(browser); if(browser->config != NULL) config_delete(browser->config); diff --git a/src/browser.h b/src/browser.h index 89b4f7a..3c65284 100644 --- a/src/browser.h +++ b/src/browser.h @@ -1,5 +1,5 @@ /* $Id$ */ -/* Copyright (c) 2006-2012 Pierre Pronchery */ +/* Copyright (c) 2006-2013 Pierre Pronchery */ /* This file is part of DeforaOS Desktop Browser */ /* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -89,6 +89,8 @@ typedef struct _BrowserPrefs struct _Browser { + guint source; + /* config */ Config * config; BrowserPrefs prefs;