[gnome-panel/wip/segeiger/fix-gvariant-issue] Fix crash of gnome-panel if applet crashes on panel reload
- From: Sebastian Geiger <segeiger src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel/wip/segeiger/fix-gvariant-issue] Fix crash of gnome-panel if applet crashes on panel reload
- Date: Sun, 7 Feb 2016 15:21:33 +0000 (UTC)
commit fceebdd3bec9cae2f52ef79fc806a57cb1a7b979
Author: Sebastian Geiger <sbastig gmx net>
Date: Sun Feb 7 16:20:30 2016 +0100
Fix crash of gnome-panel if applet crashes on panel reload
.../panel-applet-container.c | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
---
diff --git a/gnome-panel/libpanel-applet-private/panel-applet-container.c
b/gnome-panel/libpanel-applet-private/panel-applet-container.c
index fea6bfe..76eb032 100644
--- a/gnome-panel/libpanel-applet-private/panel-applet-container.c
+++ b/gnome-panel/libpanel-applet-private/panel-applet-container.c
@@ -460,6 +460,21 @@ on_factory_appeared (GDBusConnection *connection,
}
static void
+on_factory_disappeared (GDBusConnection *connection,
+ const gchar *name,
+ AppletFactoryData *data)
+{
+ PanelAppletContainer *container;
+
+ container = PANEL_APPLET_CONTAINER (g_async_result_get_source_object (G_ASYNC_RESULT (data->task)));
+
+ g_bus_unwatch_name (container->priv->name_watcher_id);
+ container->priv->name_watcher_id = 0;
+
+ g_object_unref (container);
+}
+
+static void
panel_applet_container_get_applet (PanelAppletContainer *container,
GdkScreen *screen,
const gchar *iid,
@@ -510,7 +525,7 @@ panel_applet_container_get_applet (PanelAppletContainer *container,
bus_name,
G_BUS_NAME_WATCHER_FLAGS_AUTO_START,
(GBusNameAppearedCallback) on_factory_appeared,
- NULL,
+ (GBusNameVanishedCallback) on_factory_disappeared,
data,
(GDestroyNotify) applet_factory_data_free);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]