mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-28 21:37:28 -04:00
fix: fix switch_layout not apply instantly
This commit is contained in:
parent
18e5ba3bed
commit
72a9f71c51
1 changed files with 14 additions and 8 deletions
|
|
@ -1029,11 +1029,10 @@ int32_t switch_keyboard_layout(const Arg *arg) {
|
|||
}
|
||||
|
||||
int32_t switch_layout(const Arg *arg) {
|
||||
|
||||
int32_t jk, ji;
|
||||
char *target_layout_name = NULL;
|
||||
uint32_t len;
|
||||
uint32_t target_tag = selmon->pertag->curtag ? selmon->pertag->curtag
|
||||
: selmon->pertag->prevtag;
|
||||
|
||||
if (!selmon)
|
||||
return 0;
|
||||
|
|
@ -1041,11 +1040,13 @@ int32_t switch_layout(const Arg *arg) {
|
|||
if (config.circle_layout_count != 0) {
|
||||
for (jk = 0; jk < config.circle_layout_count; jk++) {
|
||||
|
||||
len = MAX(strlen(config.circle_layout[jk]),
|
||||
strlen(selmon->pertag->ltidxs[target_tag]->name));
|
||||
len = MAX(
|
||||
strlen(config.circle_layout[jk]),
|
||||
strlen(selmon->pertag->ltidxs[selmon->pertag->curtag]->name));
|
||||
|
||||
if (strncmp(config.circle_layout[jk],
|
||||
selmon->pertag->ltidxs[target_tag]->name, len) == 0) {
|
||||
selmon->pertag->ltidxs[selmon->pertag->curtag]->name,
|
||||
len) == 0) {
|
||||
target_layout_name = jk == config.circle_layout_count - 1
|
||||
? config.circle_layout[0]
|
||||
: config.circle_layout[jk + 1];
|
||||
|
|
@ -1060,16 +1061,21 @@ int32_t switch_layout(const Arg *arg) {
|
|||
for (ji = 0; ji < LENGTH(layouts); ji++) {
|
||||
len = MAX(strlen(layouts[ji].name), strlen(target_layout_name));
|
||||
if (strncmp(layouts[ji].name, target_layout_name, len) == 0) {
|
||||
selmon->pertag->ltidxs[target_tag] = &layouts[ji];
|
||||
selmon->pertag->ltidxs[selmon->pertag->curtag] = &layouts[ji];
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
clear_fullscreen_and_maximized_state(selmon);
|
||||
arrange(selmon, false, false);
|
||||
printstatus();
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (jk = 0; jk < LENGTH(layouts); jk++) {
|
||||
if (strcmp(layouts[jk].name,
|
||||
selmon->pertag->ltidxs[target_tag]->name) == 0) {
|
||||
selmon->pertag->ltidxs[target_tag] =
|
||||
selmon->pertag->ltidxs[selmon->pertag->curtag]->name) == 0) {
|
||||
selmon->pertag->ltidxs[selmon->pertag->curtag] =
|
||||
jk == LENGTH(layouts) - 1 ? &layouts[0] : &layouts[jk + 1];
|
||||
clear_fullscreen_and_maximized_state(selmon);
|
||||
arrange(selmon, false, false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue