From 1712064f24b8053ed233c15b3869ec1572dcfdcc Mon Sep 17 00:00:00 2001 From: Olivier Fourdan <fourdan.olivier@wanadoo.fr> Date: Mon, 13 Jun 2005 19:49:50 +0000 Subject: [PATCH] Add a new channel "wm_tweaks" - The plan is to add a new WM Tweak plugin for all current "hidden" options. (Old svn revision: 15962) --- src/settings.c | 245 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 173 insertions(+), 72 deletions(-) diff --git a/src/settings.c b/src/settings.c index 493548547..a69b23dbf 100644 --- a/src/settings.c +++ b/src/settings.c @@ -42,6 +42,7 @@ #define CHANNEL2 "margins" #define CHANNEL3 "workspaces" #define CHANNEL4 "xfwm4_keys" +#define CHANNEL5 "wm_tweaks" #define TOINT(x) (x ? atoi(x) : 0) #define DEFAULT_KEYTHEME "Default" #define KEYTHEMERC "keythemerc" @@ -172,26 +173,6 @@ notify_cb (const char *name, const char *channel_name, McsAction action, McsSett { screen_info->params->raise_on_focus = setting->data.v_int; } - else if (!strcmp (name, "Xfwm/MoveOpacity")) - { - screen_info->params->move_opacity = setting->data.v_int; - } - else if (!strcmp (name, "Xfwm/ResizeOpacity")) - { - screen_info->params->resize_opacity = setting->data.v_int; - } - else if (!strcmp (name, "Xfwm/PlacementRatio")) - { - screen_info->params->placement_ratio = setting->data.v_int; - } - else if (!strcmp (name, "Xfwm/ShowFrameShadow")) - { - screen_info->params->show_frame_shadow = setting->data.v_int; - } - else if (!strcmp (name, "Xfwm/PreventFocusStealing")) - { - screen_info->params->prevent_focus_stealing = setting->data.v_int; - } else if (!strcmp (name, "Xfwm/RaiseDelay")) { screen_info->params->raise_delay = setting->data.v_int; @@ -201,11 +182,6 @@ notify_cb (const char *name, const char *channel_name, McsAction action, McsSett screen_info->params->raise_on_click = setting->data.v_int; check_for_grabs (screen_info); } - else if (!strcmp (name, "Xfwm/RaiseWithAnyButton")) - { - screen_info->params->raise_with_any_button = setting->data.v_int; - check_for_grabs (screen_info); - } else if (!strcmp (name, "Xfwm/SnapToBorder")) { screen_info->params->snap_to_border = setting->data.v_int; @@ -218,10 +194,6 @@ notify_cb (const char *name, const char *channel_name, McsAction action, McsSett { screen_info->params->snap_width = setting->data.v_int; } - else if (!strcmp (name, "Xfwm/ToggleWorkspaces")) - { - screen_info->params->toggle_workspaces = setting->data.v_int; - } else if (!strcmp (name, "Xfwm/WrapWorkspaces")) { screen_info->params->wrap_workspaces = setting->data.v_int; @@ -357,6 +329,83 @@ notify_cb (const char *name, const char *channel_name, McsAction action, McsSett break; } } + else if (!g_ascii_strcasecmp (CHANNEL5, channel_name)) + { + switch (action) + { + case MCS_ACTION_NEW: + /* The following is to reduce initial startup time and reloads */ + if (!screen_info->mcs_initted) + { + return; + } + case MCS_ACTION_CHANGED: + if (setting->type == MCS_TYPE_INT) + { + if (!strcmp (name, "Xfwm/CycleMinimum")) + { + screen_info->params->cycle_minimum = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/CycleHidden")) + { + screen_info->params->cycle_hidden = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/EasyClick")) + { + screen_info->params->easy_click = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/FocusHint")) + { + screen_info->params->focus_hint = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/MoveOpacity")) + { + screen_info->params->move_opacity = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/ResizeOpacity")) + { + screen_info->params->resize_opacity = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/PlacementRatio")) + { + screen_info->params->placement_ratio = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/ShowFrameShadow")) + { + screen_info->params->show_frame_shadow = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/PreventFocusStealing")) + { + screen_info->params->prevent_focus_stealing = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/RaiseWithAnyButton")) + { + screen_info->params->raise_with_any_button = setting->data.v_int; + check_for_grabs (screen_info); + } + else if (!strcmp (name, "Xfwm/ScrollWorkspaces")) + { + screen_info->params->scroll_workspaces = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/ToggleWorkspaces")) + { + screen_info->params->toggle_workspaces = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/WrapLayout")) + { + screen_info->params->wrap_layout = setting->data.v_int; + } + else if (!strcmp (name, "Xfwm/WrapCycle")) + { + screen_info->params->wrap_cycle = setting->data.v_int; + } + } + break; + case MCS_ACTION_DELETED: + default: + break; + } + } } static GdkFilterReturn @@ -443,6 +492,7 @@ loadMcsData (ScreenInfo *screen_info, Settings *rc) McsSetting *setting; if (screen_info->mcs_client) { + /* "Regular" channel */ if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ClickToFocus", CHANNEL1, &setting) == MCS_SUCCESS) { @@ -462,30 +512,6 @@ loadMcsData (ScreenInfo *screen_info, Settings *rc) setBooleanValueFromInt ("raise_on_focus", setting->data.v_int, rc); mcs_setting_free (setting); } - if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/MoveOpacity", CHANNEL1, - &setting) == MCS_SUCCESS) - { - setIntValueFromInt ("move_opacity", setting->data.v_int, rc); - mcs_setting_free (setting); - } - if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ResizeOpacity", CHANNEL1, - &setting) == MCS_SUCCESS) - { - setIntValueFromInt ("resize_opacity", setting->data.v_int, rc); - mcs_setting_free (setting); - } - if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/PlacementRatio", CHANNEL1, - &setting) == MCS_SUCCESS) - { - setIntValueFromInt ("placement_ratio", setting->data.v_int, rc); - mcs_setting_free (setting); - } - if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/PreventFocusStealing", CHANNEL1, - &setting) == MCS_SUCCESS) - { - setBooleanValueFromInt ("prevent_focus_stealing", setting->data.v_int, rc); - mcs_setting_free (setting); - } if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/RaiseDelay", CHANNEL1, &setting) == MCS_SUCCESS) { @@ -499,19 +525,6 @@ loadMcsData (ScreenInfo *screen_info, Settings *rc) check_for_grabs (screen_info); mcs_setting_free (setting); } - if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/RaiseWithAnyButton", CHANNEL1, - &setting) == MCS_SUCCESS) - { - setBooleanValueFromInt ("raise_with_any_button", setting->data.v_int, rc); - check_for_grabs (screen_info); - mcs_setting_free (setting); - } - if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ShowFrameShadow", CHANNEL1, - &setting) == MCS_SUCCESS) - { - setBooleanValueFromInt ("show_frame_shadow", setting->data.v_int, rc); - mcs_setting_free (setting); - } if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/SnapToBorder", CHANNEL1, &setting) == MCS_SUCCESS) { @@ -537,12 +550,6 @@ loadMcsData (ScreenInfo *screen_info, Settings *rc) setBooleanValueFromInt ("wrap_workspaces", setting->data.v_int, rc); mcs_setting_free (setting); } - if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ToggleWorkspaces", CHANNEL1, - &setting) == MCS_SUCCESS) - { - setBooleanValueFromInt ("toggle_workspaces", setting->data.v_int, rc); - mcs_setting_free (setting); - } if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/WrapWindows", CHANNEL1, &setting) == MCS_SUCCESS) { @@ -597,6 +604,8 @@ loadMcsData (ScreenInfo *screen_info, Settings *rc) setValue ("title_font", setting->data.v_string, rc); mcs_setting_free (setting); } + + /* Margins channel */ if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/LeftMargin", CHANNEL2, &setting) == MCS_SUCCESS) { @@ -621,18 +630,109 @@ loadMcsData (ScreenInfo *screen_info, Settings *rc) setIntValueFromInt ("margin_top", setting->data.v_int, rc); mcs_setting_free (setting); } + + /* Workspaces channel */ if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/WorkspaceCount", CHANNEL3, &setting) == MCS_SUCCESS) { setIntValueFromInt ("workspace_count", setting->data.v_int, rc); mcs_setting_free (setting); } + + /* Keyboard theme channel */ if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/KeyThemeName", CHANNEL4, &setting) == MCS_SUCCESS) { setValue ("keytheme", setting->data.v_string, rc); mcs_setting_free (setting); } + + /* Tweaks channel */ + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/CycleMinimum", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("cycle_minimum", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/CycleHidden", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("cycle_hidden", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/EasyClick", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("easy_click", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/FocusHint", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("focus_hint", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/PlacementRatio", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setIntValueFromInt ("placement_ratio", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/MoveOpacity", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setIntValueFromInt ("move_opacity", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ResizeOpacity", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setIntValueFromInt ("resize_opacity", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ShowFrameShadow", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("show_frame_shadow", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/PreventFocusStealing", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("prevent_focus_stealing", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/RaiseWithAnyButton", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("raise_with_any_button", setting->data.v_int, rc); + check_for_grabs (screen_info); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ScrollWorkspaces", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("scroll_workspaces", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ToggleWorkspaces", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("toggle_workspaces", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/WrapLayout", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("wrap_layout", setting->data.v_int, rc); + mcs_setting_free (setting); + } + if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/WrapCycle", CHANNEL5, + &setting) == MCS_SUCCESS) + { + setBooleanValueFromInt ("wrap_cycle", setting->data.v_int, rc); + mcs_setting_free (setting); + } } } @@ -1492,6 +1592,7 @@ initSettings (ScreenInfo *screen_info) mcs_client_add_channel (screen_info->mcs_client, CHANNEL2); mcs_client_add_channel (screen_info->mcs_client, CHANNEL3); mcs_client_add_channel (screen_info->mcs_client, CHANNEL4); + mcs_client_add_channel (screen_info->mcs_client, CHANNEL5); mcs_client_set_raw_channel (screen_info->mcs_client, CHANNEL4, TRUE); } else -- GitLab