shift modifier for dragging to tags
@@ -2008,6 +2008,9 @@ movemouse(const Arg *arg)
tx += TEXTW(tags[ti]);
} while (ev.xmotion.x_root >= tx && ++ti < LENGTH(tags));
selmon->sel->isfloating = 0;
+ if (ev.xmotion.state & ShiftMask)
+ tag(&((Arg) { .ui = 1 << ti }));
+ else
followtag(&((Arg) { .ui = 1 << ti }));
tagclient = 1;
@@ -2304,6 +2307,9 @@ dragtag(const Arg *arg)
if (!leftbar) {
if (ev.xmotion.x_root < tagwidth) {
+ if (ev.xmotion.state & ShiftMask)
+ followtag(&((Arg) { .ui = 1 << getxtag(ev.xmotion.x_root) }));
+ else
tag(&((Arg) { .ui = 1 << getxtag(ev.xmotion.x_root) }));
} else if (ev.xmotion.x_root > selmon->mx + selmon->mw - 50) {
if (selmon->sel == selmon->overlay) {
