From 4bc59e98cb2bcc0d59542f6798ed783eee6135e5 Mon Sep 17 00:00:00 2001 From: choyy <2797516208@qq.com> Date: Fri, 1 Jul 2022 18:25:58 +0800 Subject: [PATCH] =?UTF-8?q?'=E4=BF=AE=E6=94=B9=E5=BF=AB=E6=8D=B7=E9=94=AE?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0pr=E4=B8=AD=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E8=81=9A=E7=84=A6'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- virgo.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/virgo.c b/virgo.c index 2359d80..2321762 100644 --- a/virgo.c +++ b/virgo.c @@ -38,6 +38,7 @@ typedef struct { unsigned current; unsigned handle_hotkeys; Windows desktops[NUM_DESKTOPS]; + HWND focused[NUM_DESKTOPS]; Trayicon trayicon; } Virgo; @@ -234,7 +235,7 @@ static void virgo_toggle_hotkeys(Virgo *v) if (v->handle_hotkeys) { for (i = 0; i < NUM_DESKTOPS; i++) { register_hotkey(i * 2, MOD_ALT | MOD_NOREPEAT, i + 1 + '0'); - register_hotkey(i * 2 + 1, MOD_CONTROL | MOD_NOREPEAT, i + 1 + '0'); + register_hotkey(i * 2 + 1, MOD_ALT | MOD_SHIFT | MOD_NOREPEAT, i + 1 + '0'); } } else { for (i = 0; i < NUM_DESKTOPS; i++) { @@ -250,7 +251,7 @@ static void virgo_init(Virgo *v) v->handle_hotkeys = 1; for (i = 0; i < NUM_DESKTOPS; i++) { register_hotkey(i * 2, MOD_ALT | MOD_NOREPEAT, i + 1 + '0'); - register_hotkey(i * 2 + 1, MOD_CONTROL | MOD_NOREPEAT, i + 1 + '0'); + register_hotkey(i * 2 + 1, MOD_ALT | MOD_SHIFT | MOD_NOREPEAT, i + 1 + '0'); } register_hotkey(i * 2, MOD_ALT | MOD_CONTROL | MOD_SHIFT | MOD_NOREPEAT, 'Q'); @@ -291,8 +292,10 @@ static void virgo_go_to_desk(Virgo *v, unsigned desk) return; } virgo_update(v); + v->focused[v->current] = GetForegroundWindow(); windows_hide(&v->desktops[v->current]); windows_show(&v->desktops[desk]); + SetForegroundWindow(v->focused[desk]); v->current = desk; trayicon_set(&v->trayicon, v->current + 1); }