diff --git a/indicator-application/indicator-application.cpp b/indicator-application/indicator-application.cpp index 8b05efd..1e6f467 100644 --- a/indicator-application/indicator-application.cpp +++ b/indicator-application/indicator-application.cpp @@ -33,6 +33,9 @@ IndicatorApplication::IndicatorApplication(AppletData *ad) : orientation(ad->orientation), icon_size(16) { + char *path; + GSettings *settings; + tray = na_tray_new_for_screen(gtk_widget_get_screen(GTK_WIDGET(applet)), orientation); force_no_focus_padding(GTK_WIDGET(tray)); @@ -50,6 +53,13 @@ IndicatorApplication::IndicatorApplication(AppletData *ad) : G_CALLBACK(applet_size_changed), this); applet_size_changed(applet, ukui_panel_applet_get_size(applet), this); + + for(int i = 1; i < 20; i ++){ + path = g_strdup_printf ("%s%d/", "/org/ukui/panel/indicator/tray", i); + settings = g_settings_new_with_path ("org.ukui.panel.indicator.tray", path); + + g_settings_set_int (settings, "number",0); + } } IndicatorApplication::~IndicatorApplication() diff --git a/indicator-application/na-tray-manager.c b/indicator-application/na-tray-manager.c index fa18ef9..db926a7 100644 --- a/indicator-application/na-tray-manager.c +++ b/indicator-application/na-tray-manager.c @@ -268,6 +268,12 @@ na_tray_manager_plug_removed (GtkSocket *socket, return FALSE; } +static void +tray_widget_destroy (GtkWidget *child, + GSettings *settings) +{ + g_settings_set_int (settings,"number",-1); +} static void tray_widget_show_notify (GSettings *settings, gchar *key, @@ -341,6 +347,11 @@ na_tray_manager_handle_dock_request (NaTrayManager *manager, G_CALLBACK (tray_widget_show_notify), child); + g_signal_connect (child, + "destroy", + G_CALLBACK (tray_widget_destroy), + settings); + GdkDisplay *display; display = gdk_screen_get_display (manager->screen);