Allow affecting more than one window at a time

This commit is contained in:
Pierre Pronchery 2015-10-23 19:25:04 +02:00
parent 209b02af91
commit 78f403e256

View File

@ -91,7 +91,7 @@ static int _usage(void)
int main(int argc, char * argv[]) int main(int argc, char * argv[])
{ {
int o; int o;
int what = -1; unsigned int what = 0;
gboolean show = TRUE; gboolean show = TRUE;
if(setlocale(LC_ALL, "") == NULL) if(setlocale(LC_ALL, "") == NULL)
@ -103,45 +103,59 @@ int main(int argc, char * argv[])
switch(o) switch(o)
{ {
case 'B': case 'B':
what = PANEL_MESSAGE_SHOW_PANEL_BOTTOM; what = show
? what | PANEL_MESSAGE_SHOW_PANEL_BOTTOM
: PANEL_MESSAGE_SHOW_PANEL_BOTTOM;
show = TRUE; show = TRUE;
break; break;
case 'L': case 'L':
what = PANEL_MESSAGE_SHOW_PANEL_LEFT; what = show
? what | PANEL_MESSAGE_SHOW_PANEL_LEFT
: PANEL_MESSAGE_SHOW_PANEL_LEFT;
show = TRUE; show = TRUE;
break; break;
case 'R': case 'R':
what = PANEL_MESSAGE_SHOW_PANEL_RIGHT; what = show
? what | PANEL_MESSAGE_SHOW_PANEL_RIGHT
: PANEL_MESSAGE_SHOW_PANEL_RIGHT;
show = TRUE; show = TRUE;
break; break;
case 'S': case 'S':
what = PANEL_MESSAGE_SHOW_SETTINGS; what = show
? what | PANEL_MESSAGE_SHOW_SETTINGS
: PANEL_MESSAGE_SHOW_SETTINGS;
show = TRUE; show = TRUE;
break; break;
case 'T': case 'T':
what = PANEL_MESSAGE_SHOW_PANEL_TOP; what = show
? what | PANEL_MESSAGE_SHOW_PANEL_TOP
: PANEL_MESSAGE_SHOW_PANEL_TOP;
show = TRUE; show = TRUE;
break; break;
case 'b': case 'b':
what = PANEL_MESSAGE_SHOW_PANEL_BOTTOM; what = show ? PANEL_MESSAGE_SHOW_PANEL_BOTTOM
: what | PANEL_MESSAGE_SHOW_PANEL_BOTTOM;
show = FALSE; show = FALSE;
break; break;
case 'l': case 'l':
what = PANEL_MESSAGE_SHOW_PANEL_LEFT; what = show ? PANEL_MESSAGE_SHOW_PANEL_LEFT
: what | PANEL_MESSAGE_SHOW_PANEL_LEFT;
show = FALSE; show = FALSE;
break; break;
case 'r': case 'r':
what = PANEL_MESSAGE_SHOW_PANEL_RIGHT; what = show ? PANEL_MESSAGE_SHOW_PANEL_RIGHT
: what | PANEL_MESSAGE_SHOW_PANEL_RIGHT;
show = FALSE; show = FALSE;
break; break;
case 't': case 't':
what = PANEL_MESSAGE_SHOW_PANEL_TOP; what = show ? PANEL_MESSAGE_SHOW_PANEL_TOP
: what | PANEL_MESSAGE_SHOW_PANEL_TOP;
show = FALSE; show = FALSE;
break; break;
default: default:
return _usage(); return _usage();
} }
if(argc != optind || what < 0) if(argc != optind || what == 0)
return _usage(); return _usage();
return (_panelctl(what, show) == 0) ? 0 : 2; return (_panelctl(what, show) == 0) ? 0 : 2;
} }