|
1113 | 1113 | monitors(Mons), |
1114 | 1114 | (Mons \= [_] -> % keep logic of final monitor even if it's disconnected |
1115 | 1115 | (nextto(Mon, NMon, Mons) -> NextMon = NMon ; Mons = [NextMon|_]), |
1116 | | - nb_getval(workspaces, Wss), |
| 1116 | + |
| 1117 | + nb_getval(workspaces, Wss), % move windows to next monitor |
1117 | 1118 | forall(member(Ws, Wss), ( |
1118 | 1119 | forall(global_key_value(windows, Mon-Ws, Wins), ( |
1119 | 1120 | forall(member(Win, Wins), win_tomon_toworkspace_top(Win, NextMon, Ws, false)) |
1120 | 1121 | )))), |
| 1122 | + |
| 1123 | + nb_getval(active_mon, ActMon), % focus next monitor if this was the focused one |
| 1124 | + (ActMon == Mon -> switch_monitor(NextMon) ; true), |
| 1125 | + |
1121 | 1126 | nb_getval(monitor_geom, AMonGeom), nb_getval(free_win_space, AFreeWinSpace), |
1122 | 1127 | nb_getval(active_ws, AActiveWs), nb_getval(prev_ws, APrevWs), |
1123 | 1128 | del_assoc(Mon, AMonGeom, _, NewAMonGeom), del_assoc(Mon, AFreeWinSpace, _, NewAFreeWinSpace), |
|
1127 | 1132 |
|
1128 | 1133 | forall(member(Ws, Wss), delete_ws_assocs(Mon, Ws)), |
1129 | 1134 |
|
1130 | | - nb_getval(active_mon, ActMon), |
1131 | | - (ActMon == Mon -> switch_monitor(NextMon) ; true), |
1132 | | - |
1133 | 1135 | format(string(Msg), "Monitor \"~s\" unmanaged", [Mon]), |
1134 | 1136 | writeln(Msg) |
1135 | 1137 | ; true) |
|
0 commit comments