summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dwm.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/dwm.c b/dwm.c
index a60de73..9939a8b 100644
--- a/dwm.c
+++ b/dwm.c
@@ -2894,6 +2894,9 @@ sendmon(Client *c, Monitor *m)
#endif // EXRESIZE_PATCH
if (c->mon == m)
return;
+ #if SENDMON_KEEPFOCUS_PATCH && !EXRESIZE_PATCH
+ int hadfocus = (c == selmon->sel);
+ #endif // SENDMON_KEEPFOCUS_PATCH
unfocus(c, 1);
detach(c);
detachstack(c);
@@ -2920,8 +2923,11 @@ sendmon(Client *c, Monitor *m)
restack(m);
#elif SENDMON_KEEPFOCUS_PATCH
arrange(m);
- focus(c);
- restack(m);
+ if (hadfocus) {
+ focus(c);
+ restack(m);
+ } else
+ focus(NULL);
#else
focus(NULL);
arrange(NULL);