+static void set_decoration(GtkWindow *win)
+{
+ gtk_window_set_decorated(win, config_is_window_decoration_enabled());
+}
+
+static void set_keep_below(GtkWindow *win)
+{
+ gtk_window_set_keep_below(win, config_is_window_keep_below_enabled());
+}
+
+static void
+decoration_changed_cbk(GSettings *settings, gchar *key, gpointer data)
+{
+ set_decoration((GtkWindow *)data);
+}
+
+static void
+keep_below_changed_cbk(GSettings *settings, gchar *key, gpointer data)
+{
+ set_keep_below((GtkWindow *)data);
+}
+
+static void connect_cbks(GtkWindow *win)
+{
+ log_fct_enter();
+
+ g_signal_connect_after(config_get_GSettings(),
+ "changed::interface-window-decoration-disabled",
+ G_CALLBACK(decoration_changed_cbk),
+ win);
+
+ g_signal_connect_after(config_get_GSettings(),
+ "changed::interface-window-keep-below-enabled",
+ G_CALLBACK(keep_below_changed_cbk),
+ win);
+
+ log_fct_exit();
+}
+
+static void save_window_pos(struct ui_psensor *ui)
+{
+ gboolean visible;
+ GtkWindow *win;
+ struct config *cfg;
+
+ visible = gtk_widget_get_visible(ui->main_window);
+ log_debug("Window visible: %d", visible);
+
+ if (visible == TRUE) {
+ cfg = ui->config;
+
+ win = GTK_WINDOW(ui->main_window);
+
+ gtk_window_get_position(win, &cfg->window_x, &cfg->window_y);
+ log_debug("Window position: %d %d",
+ cfg->window_x,
+ cfg->window_y);
+
+ gtk_window_get_size(win,
+ &cfg->window_w,
+ &cfg->window_h);
+ log_debug("Window size: %d %d", cfg->window_w, cfg->window_h);
+
+ cfg->window_divider_pos
+ = gtk_paned_get_position(GTK_PANED(ui->sensor_box));
+
+ config_save(cfg);
+ }
+}
+
+static gboolean
+on_delete_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+ struct ui_psensor *ui = data;
+
+ save_window_pos(ui);
+
+ log_debug("is_status_supported: %d\n", is_status_supported());
+
+ if (is_appindicator_supported() || is_status_supported())
+ gtk_widget_hide(ui->main_window);
+ else
+ ui_psensor_quit(ui);