From f6798c86ddba557588f69af994601adc1ddf9b50 Mon Sep 17 00:00:00 2001 From: zcake Date: Wed, 14 Oct 2020 16:32:31 +0000 Subject: [PATCH] null --- dmenu | Bin 40808 -> 44904 bytes dmenu.c | 119 ++++++++++++++++++++++- dmenu.c.orig | 25 ++++- dmenu.o | Bin 31736 -> 33416 bytes patches/dmenu-mousesupport-5.0.diff | 144 ++++++++++++++++++++++++++++ 5 files changed, 285 insertions(+), 3 deletions(-) create mode 100644 patches/dmenu-mousesupport-5.0.diff diff --git a/dmenu b/dmenu index 4e7106cbda7fdffe84b9d0cedcc765563650bfed..9513c34cf3088b702c576db221d5b3bbc0588b90 100755 GIT binary patch delta 15388 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 + int x = 0, y = 0, h = bh, w; + + if (ev->window != win) + return; + + /* right-click: exit */ + if (ev->button == Button3) + exit(1); + + if (prompt && *prompt) + x += promptw; + + /* input field */ + w = (lines > 0 || !matches) ? mw - x : inputw; + + /* left-click on input: clear input, + * NOTE: if there is no left-arrow the space for < is reserved so + * add that to the input width */ + if (ev->button == Button1 && + ((lines <= 0 && ev->x >= 0 && ev->x <= x + w + + ((!prev || !curr->left) ? TEXTW("<") : 0)) || + (lines > 0 && ev->y >= y && ev->y <= y + h))) { + insert(NULL, -cursor); + drawmenu(); + return; + } + /* middle-mouse click: paste selection */ + if (ev->button == Button2) { + XConvertSelection(dpy, (ev->state & ShiftMask) ? clip : XA_PRIMARY, + utf8, utf8, win, CurrentTime); + drawmenu(); + return; + } + /* scroll up */ + if (ev->button == Button4 && prev) { + sel = curr = prev; + calcoffsets(); + drawmenu(); + return; + } + /* scroll down */ + if (ev->button == Button5 && next) { + sel = curr = next; + calcoffsets(); + drawmenu(); + return; + } + if (ev->button != Button1) + return; + if (ev->state & ~ControlMask) + return; + if (lines > 0) { + /* vertical list: (ctrl)left-click on item */ + w = mw - x; + for (item = curr; item != next; item = item->right) { + y += h; + if (ev->y >= y && ev->y <= (y + h)) { + puts(item->text); + if (!(ev->state & ControlMask)) + exit(0); + sel = item; + if (sel) { + sel->out = 1; + drawmenu(); + } + return; + } + } + } else if (matches) { + /* left-click on left arrow */ + x += inputw; + w = TEXTW("<"); + if (prev && curr->left) { + if (ev->x >= x && ev->x <= x + w) { + sel = curr = prev; + calcoffsets(); + drawmenu(); + return; + } + } + /* horizontal list: (ctrl)left-click on item */ + for (item = curr; item != next; item = item->right) { + x += w; + w = MIN(TEXTW(item->text), mw - x - TEXTW(">")); + if (ev->x >= x && ev->x <= x + w) { + puts(item->text); + if (!(ev->state & ControlMask)) + exit(0); + sel = item; + if (sel) { + sel->out = 1; + drawmenu(); + } + return; + } + } + /* left-click on right arrow */ + w = TEXTW(">"); + x = mw - w; + if (next && ev->x >= x && ev->x <= x + w) { + sel = curr = next; + calcoffsets(); + drawmenu(); + return; + } + } +} + static void paste(void) { @@ -724,6 +837,9 @@ run(void) break; cleanup(); exit(1); + case ButtonPress: + buttonpress(&ev); + break; case Expose: if (ev.xexpose.count == 0) drw_map(drw, win, 0, 0, mw, mh); @@ -821,7 +937,8 @@ setup(void) /* create menu window */ swa.override_redirect = True; swa.background_pixel = scheme[SchemeNorm][ColBg].pixel; - swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask; + swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask | + ButtonPressMask; win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0, CopyFromParent, CopyFromParent, CopyFromParent, CWOverrideRedirect | CWBackPixel | CWEventMask, &swa); diff --git a/dmenu.c.orig b/dmenu.c.orig index 1d2d693..a5c3971 100644 --- a/dmenu.c.orig +++ b/dmenu.c.orig @@ -25,6 +25,8 @@ * MAX(0, MIN((y)+(h),(r).y_org+(r).height) - MAX((y),(r).y_org))) #define LENGTH(X) (sizeof X / sizeof X[0]) #define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad) +#define NUMBERSMAXDIGITS 100 +#define NUMBERSBUFSIZE (NUMBERSMAXDIGITS * 2) + 1 /* enums */ enum { SchemeNorm, SchemeSel, SchemeNormHighlight, SchemeSelHighlight, @@ -38,6 +40,7 @@ struct item { double distance; }; +static char numbers[NUMBERSBUFSIZE] = ""; static char text[BUFSIZ] = ""; static char *embed; static int bh, mw, mh; @@ -172,6 +175,21 @@ drawitem(struct item *item, int x, int y, int w) return r; } +static void +recalculatenumbers() +{ + unsigned int numer = 0, denom = 0; + struct item *item; + if (matchend) { + numer++; + for (item = matchend; item && item->left; item = item->left) + numer++; + } + for (item = items; item && item->text; item++) + denom++; + snprintf(numbers, NUMBERSBUFSIZE, "%d/%d", numer, denom); +} + static void drawmenu(void) { @@ -203,6 +221,7 @@ drawmenu(void) drw_rect(drw, x + curpos, 2, 2, bh - 4, 1, 0); } + recalculatenumbers(); if (lines > 0) { /* draw vertical list */ for (item = curr; item != next; item = item->right) @@ -217,13 +236,15 @@ drawmenu(void) } x += w; for (item = curr; item != next; item = item->right) - x = drawitem(item, x, 0, MIN(TEXTW(item->text), mw - x - TEXTW(">"))); + x = drawitem(item, x, 0, MIN(TEXTW(item->text), mw - x - TEXTW(">") - TEXTW(numbers))); if (next) { w = TEXTW(">"); drw_setscheme(drw, scheme[SchemeNorm]); - drw_text(drw, mw - w, 0, w, bh, lrpad / 2, ">", 0); + drw_text(drw, mw - w - TEXTW(numbers), 0, w, bh, lrpad / 2, ">", 0); } } + drw_setscheme(drw, scheme[SchemeNorm]); + drw_text(drw, mw - TEXTW(numbers), 0, TEXTW(numbers), bh, lrpad / 2, numbers, 0); drw_map(drw, win, 0, 0, mw, mh); } diff --git a/dmenu.o b/dmenu.o index c4cc0fb3d702d7d8566c8ea988dc5ce0fdb2561a..d0accf6635edba96197939339bc177a9fcd42fd5 100644 GIT binary patch delta 6131 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 delta 4777 zcmZ`+4Nz3q6+U+t&7x94k+&<5-6j4kL?ap${NDvD)~dy3qmHq%XiyOZHd3oCahFIE zl2|JqI%Ct!1S}f0Nh^hPWX7~ONhYM27Oiz`YNxx@{IsT1x6L$cMtMEwz5DcKXSfXa z-uHdq`MKxb`*yeGSMon4~hV;%`6-z3ZTaY-i3XS;*rc+;ljI_|IY5qgEu)wfb7#Lqc$2d zXnc9BxAhu|Yy~~pbHx_ioc)M+0bj^=inqGYWbd@h^}eeX%o$M?3neKae1)BaKZJPS zduq>e!nMQ+tDw0v31a_1pQ~Dg@eS7;u^RvCsuNprt^3jGzlEgg&i3Z1ZW`TXuTF(V zk?HzCo!>SV(%6=Z5X6)2C+oh}I0B++PtV8x$Qf8=9tJpNEh>qpipXKz|Fv@a;n5;2$z{^AyKx!eP>T~|~; zjX}>9+&y#ZJeWqd6yJ7P_4jQK?5_Ywb)9y-1mL{pY=oe1kn$Pw#y{Tfi~kMa*2O>I zuX6G>d&j~2FGAk9G7fqoR^_Zu=&40=p+|r+z!)zzLK+@d0;KakMxXG-p}-qoPOf~H zR6lbrd6pt?7x%Ug;BRK+6#J=intbDZdE|XvzLvQ1nv$WNd1hE38+UkeCb{lTEQ}uXVubdIl^?12vgg>OQ?%_B zR?7fG+brJrPzf%}by8AWbLXY?-&GYiosD4f~> zv|VY@ccp`J+_5MRsE~UQwQb891s^(^?CF^sy{&C!@C1T-X68UC^ywN zUP<`LZna0Qb9|eCF_drkN~?K32vGN=UJ3arLw1lyqYxF2B zK=Vi1xQfLO=jD8dsuZ!NpXGbS6i_I*Nul^=+o3mG#Ul@Aggzh|Y~J3!Q};9S4Uvqq zpwYt7D9UoM+-i!d{y~#F*Gb9(Xm`{@S2z@BQm!svXv`_BmfZ+#zj3Og^nN?X&)vnn zuAixs3$(Q9SVKPjlY{iTxM4dMb>mbQrp*qZYj#R^aP~&4#gm4=%b#vpl++!||7487?msV3lL+npaPbj~Sd6iy zidd)hTe$B&x9o6|Z_lL>t$(cHsjAwYu&K1NVPjS8lXc%Kd#bL!@~MUcP+q>h z;Xr+5`L^>@9zba}WHl9zS* zRO{0*N~~S7ykdI0-fLNywo7qLlPuTCLR=Pi)I8`Tc9vuxOt4*|#a&^t<;+)UmH=z8 zgKPtm<=U~+M(Md;vu!l7FG@Qe!YHZ~N3&$PF6^1B$gNGYZ6C$96D!E}w8@rhYS^CF zZ2Kh3>t)ZU*)6qxyjZ1(>#PwGjFF#DrIOcPqKmYCSn~r9=n(s1HdQKYxPG@H?C7T6 zg-yE^hes+6KSnCG5emA|Z-P<>-s zJ0|>y2~QobKX6vY0c0dy;=C?19+o&q|B=bhaUGuoOz;m4qtUyyPH~(wnH@AJ8qcG< zUU6J9vAhBHuj!JjxW1mtN1Bv7Ce03ftNx*oeS)syh-}p&-wP`wZY*h*E`wDPH5;t-)@P3mYUSlVB)Gp~b zDwKmgMaMV?`Vn}q6_{`~%SzX&S0v8Y%zR`!6ZAHze|;4Fc^zM;ZMiu>e}W?;@YPZ9 z>*fHM;#a1#H=~rpCM$C(ZCK&w7drK!S@OVe3HbM{(HbOfl>4wG_DkF-w}JObJh3!` zCjaK#uIl(^NHn-UildvOIQo1P{jj!38wNKhjtLX>>=R?r_k|70+ycoOC$U8?)jJ9v zV5{T?!zW(cprj>w4ztG5nc%_Lm>y=ur`(6`BxsE2N%G^D3vE7YsiWW?iSsI6Fm{o~ z0u#;~V7wt#=y(Vc18k87iAxGdJW<~`3f?&ienH}#=rIW0Pqp7fti2DzC5a~{G-%TE z%8Xlg!-Sjt+?M!P7Qo*^@1%Brd0xbutton; ++ int x = 0, y = 0, h = bh, w; ++ ++ if (ev->window != win) ++ return; ++ ++ /* right-click: exit */ ++ if (ev->button == Button3) ++ exit(1); ++ ++ if (prompt && *prompt) ++ x += promptw; ++ ++ /* input field */ ++ w = (lines > 0 || !matches) ? mw - x : inputw; ++ ++ /* left-click on input: clear input, ++ * NOTE: if there is no left-arrow the space for < is reserved so ++ * add that to the input width */ ++ if (ev->button == Button1 && ++ ((lines <= 0 && ev->x >= 0 && ev->x <= x + w + ++ ((!prev || !curr->left) ? TEXTW("<") : 0)) || ++ (lines > 0 && ev->y >= y && ev->y <= y + h))) { ++ insert(NULL, -cursor); ++ drawmenu(); ++ return; ++ } ++ /* middle-mouse click: paste selection */ ++ if (ev->button == Button2) { ++ XConvertSelection(dpy, (ev->state & ShiftMask) ? clip : XA_PRIMARY, ++ utf8, utf8, win, CurrentTime); ++ drawmenu(); ++ return; ++ } ++ /* scroll up */ ++ if (ev->button == Button4 && prev) { ++ sel = curr = prev; ++ calcoffsets(); ++ drawmenu(); ++ return; ++ } ++ /* scroll down */ ++ if (ev->button == Button5 && next) { ++ sel = curr = next; ++ calcoffsets(); ++ drawmenu(); ++ return; ++ } ++ if (ev->button != Button1) ++ return; ++ if (ev->state & ~ControlMask) ++ return; ++ if (lines > 0) { ++ /* vertical list: (ctrl)left-click on item */ ++ w = mw - x; ++ for (item = curr; item != next; item = item->right) { ++ y += h; ++ if (ev->y >= y && ev->y <= (y + h)) { ++ puts(item->text); ++ if (!(ev->state & ControlMask)) ++ exit(0); ++ sel = item; ++ if (sel) { ++ sel->out = 1; ++ drawmenu(); ++ } ++ return; ++ } ++ } ++ } else if (matches) { ++ /* left-click on left arrow */ ++ x += inputw; ++ w = TEXTW("<"); ++ if (prev && curr->left) { ++ if (ev->x >= x && ev->x <= x + w) { ++ sel = curr = prev; ++ calcoffsets(); ++ drawmenu(); ++ return; ++ } ++ } ++ /* horizontal list: (ctrl)left-click on item */ ++ for (item = curr; item != next; item = item->right) { ++ x += w; ++ w = MIN(TEXTW(item->text), mw - x - TEXTW(">")); ++ if (ev->x >= x && ev->x <= x + w) { ++ puts(item->text); ++ if (!(ev->state & ControlMask)) ++ exit(0); ++ sel = item; ++ if (sel) { ++ sel->out = 1; ++ drawmenu(); ++ } ++ return; ++ } ++ } ++ /* left-click on right arrow */ ++ w = TEXTW(">"); ++ x = mw - w; ++ if (next && ev->x >= x && ev->x <= x + w) { ++ sel = curr = next; ++ calcoffsets(); ++ drawmenu(); ++ return; ++ } ++ } ++} ++ + static void + paste(void) + { +@@ -561,6 +674,9 @@ run(void) + break; + cleanup(); + exit(1); ++ case ButtonPress: ++ buttonpress(&ev); ++ break; + case Expose: + if (ev.xexpose.count == 0) + drw_map(drw, win, 0, 0, mw, mh); +@@ -658,7 +774,8 @@ setup(void) + /* create menu window */ + swa.override_redirect = True; + swa.background_pixel = scheme[SchemeNorm][ColBg].pixel; +- swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask; ++ swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask | ++ ButtonPressMask; + win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0, + CopyFromParent, CopyFromParent, CopyFromParent, + CWOverrideRedirect | CWBackPixel | CWEventMask, &swa);