From b3e41fff05d2c4ecf717abb3abc3d66a51c1d650 Mon Sep 17 00:00:00 2001 From: mbkma Date: Sun, 25 Oct 2020 11:37:53 +0100 Subject: mcc: windows-applet: Rewrite windows-properties.ui and add new settings. --- capplets/windows/mate-window-properties.c | 150 ++--- capplets/windows/window-properties.ui | 876 ++++++++++++++---------------- 2 files changed, 500 insertions(+), 526 deletions(-) diff --git a/capplets/windows/mate-window-properties.c b/capplets/windows/mate-window-properties.c index ee9eb541..8cb185e0 100644 --- a/capplets/windows/mate-window-properties.c +++ b/capplets/windows/mate-window-properties.c @@ -40,16 +40,20 @@ #include "capplet-util.h" #define MARCO_SCHEMA "org.mate.Marco.general" + +#define MARCO_CENTER_NEW_WINDOWS_KEY "center-new-windows" +#define MARCO_ALLOW_TILING_KEY "allow-tiling" +#define MARCO_SHOW_TAB_BORDER_KEY "show-tab-border" +#define MARCO_BUTTON_LAYOUT_KEY "button-layout" +#define MARCO_DOUBLE_CLICK_TITLEBAR_KEY "action-double-click-titlebar" #define MARCO_FOCUS_KEY "focus-mode" #define MARCO_AUTORAISE_KEY "auto-raise" #define MARCO_AUTORAISE_DELAY_KEY "auto-raise-delay" +#define MARCO_REDUCED_RESOURCES_KEY "reduced-resources" #define MARCO_MOUSE_MODIFIER_KEY "mouse-button-modifier" -#define MARCO_DOUBLE_CLICK_TITLEBAR_KEY "action-double-click-titlebar" + #define MARCO_COMPOSITING_MANAGER_KEY "compositing-manager" #define MARCO_COMPOSITING_FAST_ALT_TAB_KEY "compositing-fast-alt-tab" -#define MARCO_ALLOW_TILING_KEY "allow-tiling" -#define MARCO_CENTER_NEW_WINDOWS_KEY "center-new-windows" -#define MARCO_BUTTON_LAYOUT_KEY "button-layout" #define MARCO_BUTTON_LAYOUT_RIGHT "menu:minimize,maximize,close" #define MARCO_BUTTON_LAYOUT_LEFT "close,minimize,maximize:" @@ -66,6 +70,7 @@ enum ACTION_TITLEBAR_LOWER, ACTION_TITLEBAR_MENU }; + enum { FOCUS_MODE_CLICK, @@ -82,19 +87,24 @@ typedef struct } MouseClickModifier; static GtkWidget *dialog_win; -static GtkWidget *compositing_checkbutton; -static GtkWidget *compositing_fast_alt_tab_checkbutton; -static GtkWidget *allow_tiling_checkbutton; + +/* General */ static GtkWidget *center_new_windows_checkbutton; +static GtkWidget *allow_tiling_checkbutton; +static GtkWidget *show_tab_border_checkbutton; +static GtkWidget *titlebar_layout_optionmenu; +static GtkWidget *double_click_titlebar_optionmenu; static GtkWidget *focus_mode_checkbutton; static GtkWidget *focus_mode_mouse_checkbutton; static GtkWidget *autoraise_checkbutton; -static GtkWidget *autoraise_delay_slider; -static GtkWidget *autoraise_delay_hbox; -static GtkWidget *double_click_titlebar_optionmenu; -static GtkWidget *titlebar_layout_optionmenu; +static GtkWidget *autoraise_delay_spinbutton; +static GtkWidget *reduced_resources_checkbutton; static GtkWidget *alt_click_vbox; +/* Compositing Manager */ +static GtkWidget *compositing_checkbutton; +static GtkWidget *compositing_fast_alt_tab_checkbutton; + static GSettings *marco_settings; static MouseClickModifier *mouse_modifiers = NULL; @@ -107,18 +117,20 @@ update_sensitivity (void) { gchar *str; - gtk_widget_set_sensitive (GTK_WIDGET (compositing_fast_alt_tab_checkbutton), + gtk_widget_set_sensitive (compositing_fast_alt_tab_checkbutton, g_settings_get_boolean (marco_settings, MARCO_COMPOSITING_MANAGER_KEY)); - gtk_widget_set_sensitive (GTK_WIDGET (focus_mode_mouse_checkbutton), + gtk_widget_set_sensitive (allow_tiling_checkbutton, + !g_settings_get_boolean (marco_settings, MARCO_REDUCED_RESOURCES_KEY)); + gtk_widget_set_sensitive (focus_mode_mouse_checkbutton, g_settings_get_enum (marco_settings, MARCO_FOCUS_KEY) != FOCUS_MODE_CLICK); - gtk_widget_set_sensitive (GTK_WIDGET (autoraise_checkbutton), + gtk_widget_set_sensitive (autoraise_checkbutton, g_settings_get_enum (marco_settings, MARCO_FOCUS_KEY) != FOCUS_MODE_CLICK); - gtk_widget_set_sensitive (GTK_WIDGET (autoraise_delay_hbox), + gtk_widget_set_sensitive (autoraise_delay_spinbutton, g_settings_get_enum (marco_settings, MARCO_FOCUS_KEY) != FOCUS_MODE_CLICK && g_settings_get_boolean (marco_settings, MARCO_AUTORAISE_KEY)); str = g_settings_get_string (marco_settings, MARCO_BUTTON_LAYOUT_KEY); - gtk_widget_set_sensitive (GTK_WIDGET (titlebar_layout_optionmenu), + gtk_widget_set_sensitive (titlebar_layout_optionmenu, g_strcmp0 (str, MARCO_BUTTON_LAYOUT_LEFT) == 0 || g_strcmp0 (str, MARCO_BUTTON_LAYOUT_RIGHT) == 0); g_free (str); @@ -167,12 +179,12 @@ mouse_focus_changed_callback (GSettings *settings, } static void -autoraise_delay_value_changed_callback (GtkWidget *slider, - void *data) +autoraise_delay_spinbutton_value_callback (GtkWidget *spinbutton, + void *data) { g_settings_set_int (marco_settings, MARCO_AUTORAISE_DELAY_KEY, - gtk_range_get_value (GTK_RANGE (slider)) * 1000); + gtk_spin_button_get_value (GTK_SPIN_BUTTON (spinbutton)) * 1000); } static void @@ -292,7 +304,6 @@ response_cb (GtkWidget *dialog_win, int main (int argc, char **argv) { - GError *error = NULL; GtkBuilder *builder; GdkScreen *screen; GtkWidget *nb; @@ -315,21 +326,12 @@ main (int argc, char **argv) return 1; } - marco_settings = g_settings_new (MARCO_SCHEMA); - - builder = gtk_builder_new (); - if (gtk_builder_add_from_resource (builder, "/org/mate/mcc/windows/window-properties.ui", &error) == 0) { - g_warning ("Could not load UI: %s", error->message); - g_error_free (error); - g_object_unref (marco_settings); - g_object_unref (builder); - return -1; - } + builder = gtk_builder_new_from_resource ("/org/mate/mcc/windows/window-properties.ui"); gtk_builder_add_callback_symbols (builder, "on_dialog_win_response", G_CALLBACK (response_cb), - "on_autoraise_delay_slider_value_changed", G_CALLBACK (autoraise_delay_value_changed_callback), "on_double_click_titlebar_optionmenu_changed", G_CALLBACK (double_click_titlebar_changed_callback), + "on_autoraise_delay_spinbutton_value_changed", G_CALLBACK (autoraise_delay_spinbutton_value_callback), "on_titlebar_layout_optionmenu_changed", G_CALLBACK (titlebar_layout_changed_callback), "on_focus_mode_checkbutton_toggled", G_CALLBACK (mouse_focus_toggled_callback), "on_focus_mode_mouse_checkbutton_toggled", G_CALLBACK (mouse_focus_toggled_callback), @@ -337,46 +339,42 @@ main (int argc, char **argv) gtk_builder_connect_signals (builder, NULL); + #define GET_WIDGET(x) GTK_WIDGET(gtk_builder_get_object(builder, x)) + /* Window */ - dialog_win = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_win")); + dialog_win = GET_WIDGET ("dialog_win"); /* Notebook */ - nb = GTK_WIDGET (gtk_builder_get_object (builder, "nb")); + nb = GET_WIDGET ("nb"); gtk_widget_add_events (nb, GDK_SCROLL_MASK); g_signal_connect (nb, "scroll-event", G_CALLBACK (capplet_notebook_scroll_event_cb), NULL); - /* Compositing manager */ - compositing_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "compositing_checkbutton")); - compositing_fast_alt_tab_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "compositing_fast_alt_tab_checkbutton")); - - /* Titlebar buttons */ - titlebar_layout_optionmenu = GTK_WIDGET (gtk_builder_get_object (builder, "titlebar_layout_optionmenu")); - - /* New Windows */ - center_new_windows_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "center_new_windows_checkbutton")); - - /* Window Snapping */ - allow_tiling_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "allow_tiling_checkbutton")); - - /* Window Selection */ - focus_mode_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "focus_mode_checkbutton")); - focus_mode_mouse_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "focus_mode_mouse_checkbutton")); - autoraise_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "autoraise_checkbutton")); - autoraise_delay_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "autoraise_delay_hbox")); - autoraise_delay_slider = GTK_WIDGET (gtk_builder_get_object (builder, "autoraise_delay_slider")); - - /* Titlebar Action */ - double_click_titlebar_optionmenu = GTK_WIDGET (gtk_builder_get_object (builder, "double_click_titlebar_optionmenu")); - - /* Movement Key */ - alt_click_vbox = GTK_WIDGET (gtk_builder_get_object (builder, "alt_click_vbox")); - + /* General */ + center_new_windows_checkbutton = GET_WIDGET ("center_new_windows_checkbutton"); + allow_tiling_checkbutton = GET_WIDGET ("allow_tiling_checkbutton"); + show_tab_border_checkbutton = GET_WIDGET ("show_tab_border_checkbutton"); + titlebar_layout_optionmenu = GET_WIDGET ("titlebar_layout_optionmenu"); + double_click_titlebar_optionmenu = GET_WIDGET ("double_click_titlebar_optionmenu"); + focus_mode_checkbutton = GET_WIDGET ("focus_mode_checkbutton"); + focus_mode_mouse_checkbutton = GET_WIDGET ("focus_mode_mouse_checkbutton"); + autoraise_checkbutton = GET_WIDGET ("autoraise_checkbutton"); + autoraise_delay_spinbutton = GET_WIDGET ("autoraise_delay_spinbutton"); + reduced_resources_checkbutton = GET_WIDGET ("reduced_resources_checkbutton"); + alt_click_vbox = GET_WIDGET ("alt_click_vbox"); + + /* Composition Manager */ + compositing_checkbutton = GET_WIDGET ("compositing_checkbutton"); + compositing_fast_alt_tab_checkbutton = GET_WIDGET ("compositing_fast_alt_tab_checkbutton"); g_object_unref (builder); + #undef GET_WIDGET + + /* Load settings */ + marco_settings = g_settings_new (MARCO_SCHEMA); reload_mouse_modifiers (); @@ -389,32 +387,45 @@ main (int argc, char **argv) g_settings_get_enum (marco_settings, MARCO_DOUBLE_CLICK_TITLEBAR_KEY)); set_alt_click_value (); - gtk_range_set_value (GTK_RANGE (autoraise_delay_slider), - g_settings_get_int (marco_settings, MARCO_AUTORAISE_DELAY_KEY) / 1000.0); + gtk_combo_box_set_active (GTK_COMBO_BOX (double_click_titlebar_optionmenu), g_settings_get_enum (marco_settings, MARCO_DOUBLE_CLICK_TITLEBAR_KEY)); + /* General */ g_settings_bind (marco_settings, - MARCO_COMPOSITING_MANAGER_KEY, - compositing_checkbutton, + MARCO_CENTER_NEW_WINDOWS_KEY, + center_new_windows_checkbutton, "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (marco_settings, - MARCO_COMPOSITING_FAST_ALT_TAB_KEY, - compositing_fast_alt_tab_checkbutton, + MARCO_ALLOW_TILING_KEY, + allow_tiling_checkbutton, "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (marco_settings, - MARCO_ALLOW_TILING_KEY, - allow_tiling_checkbutton, + MARCO_SHOW_TAB_BORDER_KEY, + show_tab_border_checkbutton, "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (marco_settings, - MARCO_CENTER_NEW_WINDOWS_KEY, - center_new_windows_checkbutton, + MARCO_REDUCED_RESOURCES_KEY, + reduced_resources_checkbutton, + "active", + G_SETTINGS_BIND_DEFAULT); + + /* Composition Manager */ + g_settings_bind (marco_settings, + MARCO_COMPOSITING_MANAGER_KEY, + compositing_checkbutton, + "active", + G_SETTINGS_BIND_DEFAULT); + + g_settings_bind (marco_settings, + MARCO_COMPOSITING_FAST_ALT_TAB_KEY, + compositing_fast_alt_tab_checkbutton, "active", G_SETTINGS_BIND_DEFAULT); @@ -427,7 +438,6 @@ main (int argc, char **argv) "active", G_SETTINGS_BIND_DEFAULT); - g_signal_connect (G_OBJECT (dialog_win), "destroy", G_CALLBACK (gtk_main_quit), NULL); diff --git a/capplets/windows/window-properties.ui b/capplets/windows/window-properties.ui index 67d37b6f..0f634059 100644 --- a/capplets/windows/window-properties.ui +++ b/capplets/windows/window-properties.ui @@ -1,5 +1,5 @@ - - + - + 10 - 0.20000000000000001 + 1 + 0.1 + 10 True - False - help-browser + False + help-browser True - False - window-close + False + window-close - False + False Window Preferences False True - preferences-system-windows - dialog + preferences-system-windows + normal - - False - 12 - 12 - 12 - 12 + + True + False vertical - 12 - False - end + True + False + end _Help True - True - True + True + True image_help_browser - True - True + True + True - True - True + False + False 0 @@ -83,15 +82,15 @@ Author: Robert Buj _Close True - True - True + True + True image_window_close - True - True + True + True - True - True + False + False 1 @@ -99,113 +98,108 @@ Author: Robert Buj False False + end 0 True - True + True + 6 - + True - False - 12 - 12 - 12 - 12 + False + 12 vertical - 12 + 18 - + True - False - 0 - none + False + vertical + 6 - - True - False - 12 - - - True - False - vertical - 6 - - - Enable software _compositing window manager - True - True - False - True - True - - - False - True - 0 - - - - - Disable _thumbnails in Alt-Tab - True - True - False - True - True - - - False - True - 1 - - - - - - - - + True - False - 12 - Compositing Manager + False + start + Position and Behaviour + + False + False + 0 + - - - False - True - 0 - - - - - True - False - 0 - none - + True - False - 12 + False + 6 + vertical + 6 + + + Center _new windows + True + True + False + True + True + + + False + True + 1 + + + + + Enable window _tiling + True + True + False + True + True + + + False + True + 2 + + + + + Show window border in Alt-Tab + True + True + False + True + True + + + False + True + 3 + + - + True - False + False 6 - + True - False - Position: + False + _Position of titlebar buttons: + True + titlebar_layout_optionmenu False @@ -216,7 +210,7 @@ Author: Robert Buj True - False + False Right Left @@ -230,74 +224,24 @@ Author: Robert Buj + + False + True + 7 + - - - - - True - False - 12 - Titlebar Buttons - - - - - - - - False - True - 1 - - - - - - - True - False - General - - - False - - - - - True - False - 12 - 12 - 12 - 12 - vertical - 12 - - - True - False - 0 - none - - - True - False - 12 - + True - False - vertical + False + 6 - - _Select windows when the mouse moves over them + True - True - False - True - True - + False + _Double-click titlebar action: + True + double_click_titlebar_optionmenu False @@ -306,111 +250,18 @@ Author: Robert Buj - + True - False - 12 - 12 - 12 - vertical - 6 - - - U_nselect windows when the mouse leaves them - True - True - False - True - True - - - - False - True - 0 - - - - - True - False - vertical - - - _Raise selected windows after an interval - True - True - False - True - True - - - False - True - 0 - - - - - True - False - 6 - 6 - 6 - 6 - - - True - False - _Interval before raising: - True - - - False - True - 0 - - - - - True - True - autoraise_delay_slider_adj - 1 - - - - True - True - 1 - - - - - True - False - seconds - - - False - True - 2 - - - - - True - True - 1 - - - - - False - True - 1 - - + False + + Roll up + Maximize + Maximize Horizontally + Maximize Vertically + Minimize + None + + False @@ -419,19 +270,18 @@ Author: Robert Buj + + False + True + 8 + - - - - True - False - 12 - Window Selection - - - - + + False + True + 2 + @@ -441,270 +291,381 @@ Author: Robert Buj - + True - False - 0 - none + False + vertical + 6 + + + True + False + start + Window Selection + + + + + + False + False + 0 + + - + True - False - 12 + False + 6 + vertical + 6 + + + _Select windows when the mouse moves over them + True + True + False + True + True + + + + False + True + 0 + + + + + U_nselect windows when the mouse leaves them + True + True + False + 12 + True + True + + + + False + True + 1 + + - + True - False + False + 12 6 - + + _Raise selected windows after True - False - _Double-click titlebar to perform this action: - True + True + False + True + True False - True + False 0 - + True - False - - Roll up - Maximize - Maximize Horizontally - Maximize Vertically - Minimize - None - - + True + 1,0 + adjustment1 + 0.1 + 1 + True + True + 1 + False - True + False 1 + + + True + False + seconds + + + False + True + 2 + + + + False + True + 2 + + + False + True + 1 + - - + + + False + True + 1 + + + + + True + False + vertical + 6 + + True - False - 12 - Titlebar Action + False + start + Performance + + False + False + 1 + + + + + True + False + 6 + vertical + 6 + + + Use reduced resources + True + True + False + True + True + + + False + True + 0 + + + + + False + True + 2 + False True - 1 + 2 - + True - False - 0 - none + False + vertical + 6 + + + True + False + start + Movement Key + + + + + + False + False + 1 + + - + True - False - 12 + False + 6 + vertical + 6 + + + True + False + To move a window, press-and-hold this key then grab the window: + + + False + True + 0 + + - + True - False + False vertical 6 - - True - False - To move a window, press-and-hold this key then grab the window: - - - False - True - 0 - - - - - True - False - vertical - 6 - - - - - - False - True - 1 - + + + False + True + 1 + - - - - True - False - 12 - Movement Key - - - - + + False + True + 2 + False True - 2 + 3 - - 1 - - + True - False - Behaviour + False + General - 1 - False + False - + True - False - 12 - 12 - 12 - 12 + False + 13 vertical - 12 + 18 - + True - False - 0 - none + False + vertical + 6 - - True - False - 12 - - - Center _new windows - True - True - False - True - True - - - - - - + True - False - 12 - New Windows + False + start + Software Compositing + + False + False + 0 + - - - False - True - 0 - - - - - True - False - 0 - none - + True - False - 12 + False + 6 + vertical + 6 - - Enable window _tiling + + Enable software _compositing window manager True - True - False - True - True + True + False + True + True + + False + True + 2 + + + + + Disable _thumbnails in Alt-Tab + True + True + False + 12 + True + True + + + False + True + 3 + - - - - True - False - 12 - Window Snapping - - - - + + False + True + 1 + False True - 1 + 0 - 2 + 1 - + True - False - Placement + False + Compositing Manager - 2 - False + 1 + False - True + False True 1 @@ -715,8 +676,11 @@ Author: Robert Buj button_help_browser button_window_close - - - + + + + + + -- cgit v1.2.1