1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 04:20:27 +01:00

WPrefs: add expert option to disable switch panel

This patch is adding a checkbox option in the expert panel
to let the user enable/disable switching panel.
This commit is contained in:
David Maciejak
2014-06-05 11:23:51 +07:00
committed by Carlos R. Mafra
parent b323800c02
commit f33c89e369

View File

@@ -2,6 +2,7 @@
*
* WPrefs - Window Maker Preferences Program
*
* Copyright (c) 2014 Window Maker Team
* Copyright (c) 1998-2003 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
@@ -31,6 +32,7 @@ static const struct {
enum {
OPTION_WMAKER,
OPTION_WMAKER_ARRAY,
OPTION_USERDEF
} class;
@@ -65,6 +67,9 @@ static const struct {
{ N_("Ignore minimized windows when cycling."),
/* default: */ False, OPTION_WMAKER, "CycleIgnoreMinimized" },
{ N_("Show switch panel when cycling windows."),
/* default: */ True, OPTION_WMAKER_ARRAY, "SwitchPanelImages" },
{ N_("Show workspace title on Clip."),
/* default: */ True, OPTION_WMAKER, "ShowClipTitle" },
@@ -134,6 +139,14 @@ static void createPanel(Panel * p)
state = expert_options[i].def_state;
break;
case OPTION_WMAKER_ARRAY: {
char *str = GetStringForKey(expert_options[i].op_name);
state = expert_options[i].def_state;
if (str && strcasecmp(str, "None") == 0)
state = False;
}
break;
case OPTION_USERDEF:
state = WMGetUDBoolForKey(udb, expert_options[i].op_name);
break;
@@ -165,6 +178,17 @@ static void storeDefaults(_Panel * panel)
SetBoolForKey(WMGetButtonSelected(panel->swi[i]), expert_options[i].op_name);
break;
case OPTION_WMAKER_ARRAY:
if (WMGetButtonSelected(panel->swi[i])) {
/* check if the array was not manually modified */
char *str = GetStringForKey(expert_options[i].op_name);
if (str && strcasecmp(str, "None") == 0)
RemoveObjectForKey(expert_options[i].op_name);
}
else
SetStringForKey("None", expert_options[i].op_name);
break;
case OPTION_USERDEF:
WMSetUDBoolForKey(udb, WMGetButtonSelected(panel->swi[i]), expert_options[i].op_name);
break;