| tAdd enumeration for sel.mode - st - [fork] customized build of st, the simple … | |
| git clone git://src.adamsgaard.dk/st | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit 1811b6030cd9ac6bb938449eef778c6f54ab0e49 | |
| parent 22571ea4e8729efee6940b704666566b46e42e76 | |
| Author: noname <[email protected]> | |
| Date: Fri, 1 May 2015 17:13:13 +0000 | |
| Add enumeration for sel.mode | |
| This patch also prevents sel.mode from increasing beyond 2. It is almost | |
| impossible, but sel.mode may overflow if mouse is moved around for too | |
| long while selecting. | |
| Diffstat: | |
| M st.c | 23 ++++++++++++++--------- | |
| 1 file changed, 14 insertions(+), 9 deletions(-) | |
| --- | |
| diff --git a/st.c b/st.c | |
| t@@ -162,6 +162,12 @@ enum window_state { | |
| WIN_FOCUSED = 2 | |
| }; | |
| +enum selection_mode { | |
| + SEL_IDLE = 0, | |
| + SEL_EMPTY = 1, | |
| + SEL_READY = 2 | |
| +}; | |
| + | |
| enum selection_type { | |
| SEL_REGULAR = 1, | |
| SEL_RECTANGULAR = 2 | |
| t@@ -643,7 +649,7 @@ void | |
| selinit(void) { | |
| memset(&sel.tclick1, 0, sizeof(sel.tclick1)); | |
| memset(&sel.tclick2, 0, sizeof(sel.tclick2)); | |
| - sel.mode = 0; | |
| + sel.mode = SEL_IDLE; | |
| sel.ob.x = -1; | |
| sel.primary = NULL; | |
| sel.clipboard = NULL; | |
| t@@ -897,7 +903,7 @@ bpress(XEvent *e) { | |
| /* Clear previous selection, logically and visually. */ | |
| selclear(NULL); | |
| - sel.mode = 1; | |
| + sel.mode = SEL_EMPTY; | |
| sel.type = SEL_REGULAR; | |
| sel.oe.x = sel.ob.x = x2col(e->xbutton.x); | |
| sel.oe.y = sel.ob.y = y2row(e->xbutton.y); | |
| t@@ -920,7 +926,7 @@ bpress(XEvent *e) { | |
| * make clicks visible | |
| */ | |
| if(sel.snap != 0) { | |
| - sel.mode++; | |
| + sel.mode = SEL_READY; | |
| tsetdirt(sel.nb.y, sel.ne.y); | |
| } | |
| sel.tclick2 = sel.tclick1; | |
| t@@ -1142,13 +1148,12 @@ brelease(XEvent *e) { | |
| if(e->xbutton.button == Button2) { | |
| selpaste(NULL); | |
| } else if(e->xbutton.button == Button1) { | |
| - if(sel.mode < 2) { | |
| - selclear(NULL); | |
| - } else { | |
| + if(sel.mode == SEL_READY) { | |
| getbuttoninfo(e); | |
| selcopy(e->xbutton.time); | |
| - } | |
| - sel.mode = 0; | |
| + } else | |
| + selclear(NULL); | |
| + sel.mode = SEL_IDLE; | |
| tsetdirt(sel.nb.y, sel.ne.y); | |
| } | |
| } | |
| t@@ -1165,7 +1170,7 @@ bmotion(XEvent *e) { | |
| if(!sel.mode) | |
| return; | |
| - sel.mode++; | |
| + sel.mode = SEL_READY; | |
| oldey = sel.oe.y; | |
| oldex = sel.oe.x; | |
| oldsby = sel.nb.y; |