support more complex monitor layouts with move/focus actions using left|right|up|down

Conflicts:
	config.h
This commit is contained in:
Sean Pringle
2016-06-30 09:45:21 +10:00
parent 0e0fa13f32
commit d7de4ff112
6 changed files with 86 additions and 13 deletions

View File

@@ -100,7 +100,7 @@ void action_find_or_start(void *data, int num, Client *cli)
void action_move_monitor(void *data, int num, Client *cli)
{
if (!cli) return;
cli->monitor = MAX(0, MIN(current_mon+num, nmonitors-1));
cli->monitor = monitor_choose_by_direction(current_mon, num);
client_place_spot(cli, cli->spot, cli->monitor, 1);
client_raise_family(cli);
current_mon = cli->monitor;
@@ -109,7 +109,7 @@ void action_move_monitor(void *data, int num, Client *cli)
void action_focus_monitor(void *data, int num, Client *cli)
{
int i, mon = MAX(0, MIN(current_mon+num, nmonitors-1));
int i, mon = monitor_choose_by_direction(current_mon, num);
if (!spot_focus_top_window(current_spot, mon, None))
for_spots(i) if (spot_focus_top_window(i, mon, None)) break;
spot_warp_pointer(current_spot, current_mon);