Disconnect bookmark folder signals, for bookmarkbar and panel
This would lead to crashes when opening and closing windows and attempting to add bookmarks afterwards.
This commit is contained in:
parent
b77fdd45cf
commit
0da785e94c
2 changed files with 16 additions and 0 deletions
|
@ -175,6 +175,10 @@ midori_browser_settings_notify (MidoriWebSettings* web_settings,
|
|||
GParamSpec* pspec,
|
||||
MidoriBrowser* browser);
|
||||
|
||||
static void
|
||||
midori_browser_set_bookmarks (MidoriBrowser* browser,
|
||||
KatzeArray* bookmarks);
|
||||
|
||||
static GtkAction*
|
||||
_action_by_name (MidoriBrowser* browser,
|
||||
const gchar* name)
|
||||
|
@ -4512,6 +4516,9 @@ midori_browser_size_allocate_cb (MidoriBrowser* browser,
|
|||
static void
|
||||
midori_browser_destroy_cb (MidoriBrowser* browser)
|
||||
{
|
||||
if (browser->bookmarks)
|
||||
midori_browser_set_bookmarks (browser, NULL);
|
||||
|
||||
if (G_UNLIKELY (browser->panel_timeout))
|
||||
g_source_remove (browser->panel_timeout);
|
||||
if (G_UNLIKELY (browser->alloc_timeout))
|
||||
|
@ -5706,6 +5713,14 @@ midori_browser_set_bookmarks (MidoriBrowser* browser,
|
|||
if (browser->bookmarks == bookmarks)
|
||||
return;
|
||||
|
||||
if (browser->bookmarks)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (
|
||||
browser->bookmarks, browser_bookmarks_add_item_cb, browser->bookmarkbar);
|
||||
g_signal_handlers_disconnect_by_func (
|
||||
browser->bookmarks, browser_bookmarks_remove_item_cb, browser->bookmarkbar);
|
||||
}
|
||||
|
||||
if (bookmarks)
|
||||
g_object_ref (bookmarks);
|
||||
katze_object_assign (browser->bookmarks, bookmarks);
|
||||
|
|
|
@ -935,6 +935,7 @@ midori_bookmarks_finalize (GObject* object)
|
|||
{
|
||||
MidoriBookmarks* bookmarks = MIDORI_BOOKMARKS (object);
|
||||
|
||||
midori_bookmarks_disconnect_folder (bookmarks, bookmarks->array);
|
||||
if (bookmarks->app)
|
||||
g_object_unref (bookmarks->app);
|
||||
g_object_unref (bookmarks->net);
|
||||
|
|
Loading…
Reference in a new issue