diff options
author | Christoph Lohmann <20h@r-36.net> | 2013-04-28 17:42:30 +0200 |
---|---|---|
committer | Christoph Lohmann <20h@r-36.net> | 2013-04-28 17:42:30 +0200 |
commit | a53017c8b47f511cf0462ac910cf9223a31ceb2f (patch) | |
tree | 711c8eca1a8079229e15c3c3bb45353b1b0dc658 /st.c | |
parent | a77b01176a34de741485024e5e36002cff3c1124 (diff) | |
download | st-a53017c8b47f511cf0462ac910cf9223a31ceb2f.tar.gz st-a53017c8b47f511cf0462ac910cf9223a31ceb2f.tar.bz2 |
Add a possibility to modify the string sent by mouse buttons.
Thanks Alexander Rezinsky <alexrez@gmail.com> for the suggestion!
Diffstat (limited to 'st.c')
-rw-r--r-- | st.c | 26 |
1 files changed, 21 insertions, 5 deletions
@@ -229,6 +229,12 @@ typedef struct { } XWindow; typedef struct { + int b; + uint mask; + char s[ESC_BUF_SIZ]; +} Mousekey; + +typedef struct { KeySym k; uint mask; char s[ESC_BUF_SIZ]; @@ -771,10 +777,24 @@ mousereport(XEvent *e) { void bpress(XEvent *e) { struct timeval now; + Mousekey *mk; if(IS_SET(MODE_MOUSE)) { mousereport(e); - } else if(e->xbutton.button == Button1) { + return; + } + + for(mk = mshortcuts; mk < mshortcuts + LEN(mshortcuts); mk++) { + if(e->xbutton.button == mk->b + && match(mk->mask, e->xbutton.state)) { + ttywrite(mk->s, strlen(mk->s)); + if(IS_SET(MODE_ECHO)) + techo(mk->s, strlen(mk->s)); + return; + } + } + + if(e->xbutton.button == Button1) { gettimeofday(&now, NULL); /* Clear previous selection, logically and visually. */ @@ -817,10 +837,6 @@ bpress(XEvent *e) { } sel.tclick2 = sel.tclick1; sel.tclick1 = now; - } else if(e->xbutton.button == Button4) { - ttywrite("\031", 1); - } else if(e->xbutton.button == Button5) { - ttywrite("\005", 1); } } |