Because maprequest immediately calls wl_list_insert(&fstack, &c->flink), in the following call to setmon(), the selclient() which is passed to focusclient() as the old client is actually the newly mapped client, and the real old one is never deactivated. You can see this by, for example, opening Chromium's devtools, then spawning a terminal. The background of the focused line in the devtools doesn't change from light blue to grey.
We can't just remove wl_list_insert(&fstack, &c->flink) from maprequest, because calling wl_list_remove in focusclient() with a client that has not been added to the list causes a segmentation fault. Therefore we fix the focusclient call by not passing it the old client every time, but instead using the wlroots function that gets the focused surface and deactivate that, like in TinyWL. This also avoids getting the selected client and passing it to focusclient() on every call unnecessarily, and will allow removing shouldfocusclients in a future commit by checking if old is a layer surface instead.
I2UG6WQKU6GNMQXFZXVONILKQFYXI7AIGK44KCMDWCQETA3UZW2AC
TOHEQJ4RLXZXOUGTQN2OCPCIKSVNGVMSUC4UB3KGCLZV4JUULD2QC
TBCINKTPRLMPUWXGGPFZLJQO3KYXCGIQFE5IMHNLKNBO4TWJHM2AC
22AOV53ZPZKPZPJGHYOLNJYTUNQEB55NXSDW3HNFXD4IX4KXGHTAC
MO5ORR7VSER3YUNO77DZJVKGOVYC2KNDCSC72J4NF7JYOHHTLRQAC
R7M5DZY2NDAELIYA3HNBHQZ37HJKXTESMS6U46OZ2SZVD7KIMJXQC
7B74AT3BXYB7PVW4F6SGQNPMHOU5TEV5TZ54CG6VSQI46XSEKWXQC
FCEQONUYK6M5ZEWKBAPW6F64EURYKHBH4YIM4HVBSBKFRDD7YHRQC
F72VJF4KJZEYZEYGAGKCWPMEQGPKS7T5PEEJPJKZO6ZG246TTLAQC
6EIUJVNFJWXI2TBRWBILPQZIKLPZW3KA2MXBPTRGBF34KW5JXFKQC
SCBBNYN2ZEI2UBCW5C5QXQLLQGEWY4DWM2UHGTRZ7B653AONDQKAC
W32YIHMVPAREXUADJOAX45B6CTXZY42EE77RDDZYNJFEE2HLQ3HAC
VYZMMYEO3CEHLATYEHS7G6XBGEVOWDMAXHMHMINACSNF75TH72UAC
5IGKKZ3URJE5EL5ZVCOKDTIBHRL7DTLKUJXIVYVJ4LRMKYARRNZAC
4QUF4MKRSB5LYYS5FSYTCDSIEMYIERI2BQZLRGJ3GIGVYCPJVEPAC
OKQDKOVUGULJA6E4XL4VMUHPT4IOFYBFBJAU7QXNNPP6PJ4DYLVAC
E2R42IRNQ5XSPNVGV6YNTHVQF53UG46G3MZ3HE3KLTRN7LUZLRAQC
CD2JEM3MH5BXN7ADZAWLJFTRZG7PMDCKISDNJEO472PIBEJHBH2AC
W2IIP5B2G4PR6LRN5C3WYIMROFJV7YIAT5NBMCQTYCEMOZAULMVQC
BI7H3J3BRWCCZEPPL3RBWEG5OKN25TCVVP3Z2CBIARI56FJS2GWQC
ZIXAFAJJEKSFECJJW57MQ2Z666IZSJXU5FVAQ2JLG34BEJIV322AC
ZJSS4UDVHV6NYWHSI2U4CHCP46CKN3S5XJ3LL2KT4V6FFYHD5D2QC
QIIHRSY26Q3QJQUIDTU4M4C5NGAW3NGDOKT5UVZBD25A6UVPQDPQC
FJIYVCRICFJ7T52B2SLJOGFFX6AEYZNOSM3FJZ2B2ETFFYX2QXNAC
ZCTQJ724XCOD6BTABJD4UWCUIB4JBMOVNLVK2BTK2J6CCNCDJWSAC
QD3NDIJ4CRDN6QGCHALU2UG5DPMAYGE4MSGJPLYVXKLZNCV2WGIAC
5N25IN2JVE2A7FJWC3ZYGBQSH2SOX6NIGD6SDJU6YCX75YMG6KLQC
6ZKVISYIRGGLYDMIHGXDCHV6N6WYJP2DK3CRJL4AMCZY65OSEYDAC
LQPHYO7IIMLXHUD5IK657BO4BE3SGT5HYDRJDU5OFDF5YUXKIRTAC
CBXTRF6YOMNM7AIPQR63T3YA63U6QPWE4IQOGNY7F2JAPR6QVGPAC
EUJMBPB6W6ADQS4ZFMODC4S5WWH6SZIVM5OW46Z6CPMPDOL4HM7QC
GX2PWWI3Y7BOEOUIXW5NS4SYX4SXRWUC4TZ4RALA3AVCPX23CUEAC
FC37JD7W53YYYY7ZFXCYZ3F62BRT5YACMMVNCLAFFIQSCT5H22QAC
4WVZ2LAGAIQ2EROHNA4T5PWQEEIPJRTA3CBHGAO55NACCUGLKEZQC
R2EEZTZFT5S4KDNLI6RTD5X4H6BYJCL6EF24I33DSLUI6E7FBYRQC
if (old->type != XDGShell)
wlr_xwayland_surface_activate(old->surface.xwayland, 0);
else
else if (wlr_surface_is_xwayland_surface(old))
wlr_xwayland_surface_activate(
wlr_xwayland_surface_from_wlr_surface(old), false);