fix: fix ov_tab_mon when no monitor

This commit is contained in:
DreamMaoMao 2026-07-10 07:55:16 +08:00
parent deecb4ca33
commit 60e6ef9b97
2 changed files with 14 additions and 8 deletions

View file

@ -1908,6 +1908,11 @@ int32_t toggleoverview(const Arg *arg) {
}
view(&(Arg){.ui = target}, false);
if (selmon->isoverview && config.ov_tab_mode && !selmon->is_jump_mode) {
focusstack(&(Arg){.i = 1});
}
fix_mon_tagset_from_overview(selmon);
refresh_monitors_workspaces_status(selmon);

View file

@ -133,6 +133,10 @@
#define TAGMATCH(C, M) \
((C) && (M) && (C)->mon == (M) && (((C)->tags & (M)->tagset[(M)->seltags])))
#define ISMODEKEYCODE(KEY) \
((KEY) == 133 || (KEY) == 37 || (KEY) == 64 || (KEY) == 50 || \
(KEY) == 134 || (KEY) == 105 || (KEY) == 108 || (KEY) == 62)
#define LENGTH(X) (sizeof X / sizeof X[0])
#define END(A) ((A) + LENGTH(A))
#define TAGMASK ((1 << LENGTH(tags)) - 1)
@ -4395,14 +4399,11 @@ void keypress(struct wl_listener *listener, void *data) {
wlr_idle_notifier_v1_notify_activity(idle_notifier, seat);
// ov tab mode detect moe key release
if (config.ov_tab_mode && !selmon->is_jump_mode && !locked &&
group == kb_group && event->state == WL_KEYBOARD_KEY_STATE_RELEASED &&
(keycode == 133 || keycode == 37 || keycode == 64 || keycode == 50 ||
keycode == 134 || keycode == 105 || keycode == 108 || keycode == 62) &&
selmon && selmon->sel) {
if (selmon->isoverview && selmon->sel) {
toggleoverview(&(Arg){.i = 1});
}
if (config.ov_tab_mode && selmon && !selmon->is_jump_mode &&
selmon->isoverview && selmon->sel && !locked && group == kb_group &&
event->state == WL_KEYBOARD_KEY_STATE_RELEASED &&
ISMODEKEYCODE(keycode)) {
toggleoverview(&(Arg){.i = 1});
}
if (config.cursor_hide_on_keypress && !cursor_hidden &&