@ -11,7 +11,8 @@
enum gaps_op {
enum gaps_op {
GAPS_OP_SET ,
GAPS_OP_SET ,
GAPS_OP_ADD ,
GAPS_OP_ADD ,
GAPS_OP_SUBTRACT
GAPS_OP_SUBTRACT ,
GAPS_OP_TOGGLE
} ;
} ;
struct gaps_data {
struct gaps_data {
@ -102,6 +103,9 @@ static void apply_gaps_op(int *prop, enum gaps_op op, int amount) {
case GAPS_OP_SUBTRACT :
case GAPS_OP_SUBTRACT :
* prop - = amount ;
* prop - = amount ;
break ;
break ;
case GAPS_OP_TOGGLE :
* prop = * prop ? 0 : amount ;
break ;
}
}
}
}
@ -133,9 +137,9 @@ static void configure_gaps(struct sway_workspace *ws, void *_data) {
}
}
// gaps inner|outer|horizontal|vertical|top|right|bottom|left current|all
// gaps inner|outer|horizontal|vertical|top|right|bottom|left current|all
// set|plus|minus <px>
// set|plus|minus |toggle <px>
static const char expected_runtime [ ] = " 'gaps inner|outer|horizontal|vertical| "
static const char expected_runtime [ ] = " 'gaps inner|outer|horizontal|vertical| "
" top|right|bottom|left current|all set|plus|minus <px>'" ;
" top|right|bottom|left current|all set|plus|minus |toggle <px>'" ;
static struct cmd_results * gaps_set_runtime ( int argc , char * * argv ) {
static struct cmd_results * gaps_set_runtime ( int argc , char * * argv ) {
struct cmd_results * error = checkarg ( argc , " gaps " , EXPECTED_EQUAL_TO , 4 ) ;
struct cmd_results * error = checkarg ( argc , " gaps " , EXPECTED_EQUAL_TO , 4 ) ;
if ( error ) {
if ( error ) {
@ -180,6 +184,8 @@ static struct cmd_results *gaps_set_runtime(int argc, char **argv) {
data . operation = GAPS_OP_ADD ;
data . operation = GAPS_OP_ADD ;
} else if ( strcasecmp ( argv [ 2 ] , " minus " ) = = 0 ) {
} else if ( strcasecmp ( argv [ 2 ] , " minus " ) = = 0 ) {
data . operation = GAPS_OP_SUBTRACT ;
data . operation = GAPS_OP_SUBTRACT ;
} else if ( strcasecmp ( argv [ 2 ] , " toggle " ) = = 0 ) {
data . operation = GAPS_OP_TOGGLE ;
} else {
} else {
return cmd_results_new ( CMD_INVALID , " Expected %s " , expected_runtime ) ;
return cmd_results_new ( CMD_INVALID , " Expected %s " , expected_runtime ) ;
}
}
@ -200,7 +206,7 @@ static struct cmd_results *gaps_set_runtime(int argc, char **argv) {
}
}
// gaps inner|outer|<dir>|<side> <px> - sets defaults for workspaces
// gaps inner|outer|<dir>|<side> <px> - sets defaults for workspaces
// gaps inner|outer|<dir>|<side> current|all set|plus|minus <px> - runtime only
// gaps inner|outer|<dir>|<side> current|all set|plus|minus |toggle <px> - runtime only
// <dir> = horizontal|vertical
// <dir> = horizontal|vertical
// <side> = top|right|bottom|left
// <side> = top|right|bottom|left
struct cmd_results * cmd_gaps ( int argc , char * * argv ) {
struct cmd_results * cmd_gaps ( int argc , char * * argv ) {