From 66aa25bbb5834e9278226680087f4e8b325f23e7 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Tue, 11 Nov 2014 13:44:35 +0100 Subject: [PATCH] made keep below dynamic --- src/cfg.c | 6 ++---- src/cfg.h | 4 +++- src/glade/psensor-pref.glade | 1 + src/ui.c | 20 +++++++++++++++++--- src/ui_pref.c | 24 +++++++----------------- src/ui_pref.h | 1 + 6 files changed, 31 insertions(+), 25 deletions(-) diff --git a/src/cfg.c b/src/cfg.c index 13ea515..19f99ba 100644 --- a/src/cfg.c +++ b/src/cfg.c @@ -333,7 +333,7 @@ bool config_is_window_decoration_enabled(void) return !get_bool(KEY_INTERFACE_WINDOW_DECORATION_DISABLED); } -static bool is_window_keep_below_enabled(void) +bool config_is_window_keep_below_enabled(void) { return get_bool(KEY_INTERFACE_WINDOW_KEEP_BELOW_ENABLED); } @@ -343,7 +343,7 @@ void config_set_window_decoration_enabled(bool enabled) set_bool(KEY_INTERFACE_WINDOW_DECORATION_DISABLED, !enabled); } -static void set_window_keep_below_enabled(bool enabled) +void config_set_window_keep_below_enabled(bool enabled) { set_bool(KEY_INTERFACE_WINDOW_KEEP_BELOW_ENABLED, enabled); } @@ -419,7 +419,6 @@ struct config *config_load(void) c->graph_bg_alpha = get_graph_background_alpha(); c->alpha_channel_enabled = is_alpha_channel_enabled(); c->sensorlist_position = get_sensorlist_position(); - c->window_keep_below_enabled = is_window_keep_below_enabled(); c->slog_enabled = is_slog_enabled(); c->slog_interval = config_get_slog_interval(); @@ -473,7 +472,6 @@ void config_save(const struct config *c) set_foreground_color(c->graph_fgcolor); set_graph_background_alpha(c->graph_bg_alpha); set_sensorlist_position(c->sensorlist_position); - set_window_keep_below_enabled(c->window_keep_below_enabled); set_slog_enabled(c->slog_enabled); set_slog_interval(c->slog_interval); diff --git a/src/cfg.h b/src/cfg.h index 1d6e777..f945956 100644 --- a/src/cfg.h +++ b/src/cfg.h @@ -47,7 +47,6 @@ struct config { /* Position of the sensors list table */ enum sensorlist_position sensorlist_position; - bool window_keep_below_enabled; bool window_restore_enabled; /* Last saved position of the window. */ int window_x; @@ -152,6 +151,9 @@ double config_get_default_high_threshold_temperature(void); bool config_is_window_decoration_enabled(void); void config_set_window_decoration_enabled(bool); +bool config_is_window_keep_below_enabled(void); +void config_set_window_keep_below_enabled(bool); + /* * Returns the user directory containing psensor data (configuration * and log). diff --git a/src/glade/psensor-pref.glade b/src/glade/psensor-pref.glade index 4cc27d9..135980e 100644 --- a/src/glade/psensor-pref.glade +++ b/src/glade/psensor-pref.glade @@ -153,6 +153,7 @@ 4 0 True + 0 diff --git a/src/ui.c b/src/ui.c index aa504c3..446da53 100644 --- a/src/ui.c +++ b/src/ui.c @@ -34,12 +34,23 @@ 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(); @@ -49,6 +60,11 @@ static void connect_cbks(GtkWindow *win) 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(); } @@ -250,9 +266,7 @@ void ui_window_create(struct ui_psensor *ui) "delete_event", G_CALLBACK(on_delete_event_cb), ui); set_decoration(GTK_WINDOW(window)); - - gtk_window_set_keep_below(GTK_WINDOW(window), - cfg->window_keep_below_enabled); + set_keep_below(GTK_WINDOW(window)); ui->menu_bar = GTK_WIDGET(gtk_builder_get_object(builder, "menu_bar")); ui->main_box = GTK_WIDGET(gtk_builder_get_object(builder, "main_box")); diff --git a/src/ui_pref.c b/src/ui_pref.c index 1db60a5..596bb41 100644 --- a/src/ui_pref.c +++ b/src/ui_pref.c @@ -39,6 +39,12 @@ void ui_pref_decoration_toggled_cbk(GtkToggleButton *btn, gpointer data) (!config_is_window_decoration_enabled()); } +void ui_pref_keep_below_toggled_cbk(GtkToggleButton *btn, gpointer data) +{ + config_set_window_keep_below_enabled + (!config_is_window_keep_below_enabled()); +} + GdkRGBA color_to_GdkRGBA(struct color *color) { GdkRGBA c; @@ -65,7 +71,7 @@ void ui_pref_dialog_run(struct ui_psensor *ui) GtkSpinButton *w_update_interval, *w_monitoring_duration, *w_s_update_interval, *w_slog_interval; GtkComboBox *w_sensorlist_pos; - GtkToggleButton *w_hide_window_decoration, *w_keep_window_below, + GtkToggleButton *w_enable_menu, *w_enable_launcher_counter, *w_hide_on_startup, *w_win_restore, *w_slog_enabled, *w_autostart, *w_smooth_curves, *w_atiadlsdk, *w_lmsensors, *w_nvctrl, *w_gtop2, *w_hddtemp, @@ -134,16 +140,6 @@ void ui_pref_dialog_run(struct ui_psensor *ui) (gtk_builder_get_object(builder, "sensors_list_position")); gtk_combo_box_set_active(w_sensorlist_pos, cfg->sensorlist_position); - w_hide_window_decoration = GTK_TOGGLE_BUTTON - (gtk_builder_get_object(builder, "hide_window_decoration")); - gtk_toggle_button_set_active(w_hide_window_decoration, - !config_is_window_decoration_enabled()); - - w_keep_window_below = GTK_TOGGLE_BUTTON - (gtk_builder_get_object(builder, "keep_window_below")); - gtk_toggle_button_set_active(w_keep_window_below, - cfg->window_keep_below_enabled); - w_autostart = GTK_TOGGLE_BUTTON (gtk_builder_get_object(builder, "autostart")); gtk_toggle_button_set_active(w_autostart, pxdg_is_autostarted()); @@ -318,9 +314,6 @@ void ui_pref_dialog_run(struct ui_psensor *ui) cfg->sensorlist_position = gtk_combo_box_get_active(w_sensorlist_pos); - cfg->window_keep_below_enabled - = gtk_toggle_button_get_active(w_keep_window_below); - cfg->menu_bar_disabled = !gtk_toggle_button_get_active(w_enable_menu); @@ -328,9 +321,6 @@ void ui_pref_dialog_run(struct ui_psensor *ui) = !gtk_toggle_button_get_active (w_enable_launcher_counter); - gtk_window_set_keep_below(GTK_WINDOW(ui->main_window), - cfg->window_keep_below_enabled); - cfg->sensor_update_interval = gtk_spin_button_get_value_as_int(w_s_update_interval); diff --git a/src/ui_pref.h b/src/ui_pref.h index 219545a..605c51e 100644 --- a/src/ui_pref.h +++ b/src/ui_pref.h @@ -25,5 +25,6 @@ void ui_pref_dialog_run(struct ui_psensor *); GdkRGBA color_to_GdkRGBA(struct color *color); void ui_pref_decoration_toggled_cbk(GtkToggleButton *, gpointer); +void ui_pref_keep_below_toggled_cbk(GtkToggleButton *, gpointer); #endif -- 2.7.4