Compare commits

...

5 Commits

Author SHA1 Message Date
Jef Roosens 2cddf3f42f
Merge branch 'master' of git://git.suckless.org/st
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-02-19 13:27:46 +01:00
Santtu Lakkala e823e2308f Delay redrawals on palette changes
Build on auto-sync and only mark window dirty on palette changes and let
the event handler do the actual draw.
2022-02-18 13:03:37 +01:00
Hiltjo Posthuma 2c5edf28ec X10/SGR mouse: use alt as meta key instead of super/windows key 2022-01-12 09:44:27 +01:00
Hiltjo Posthuma b1d97fec47 LICENSE: bump year 2022-01-10 17:11:17 +01:00
robert ea7cd7b62f Fix mousereport
This patch replaces the previous one I sent.

The following changes are made in this patch:
 - Fix tracking of pressed buttons. Previously, pressing two buttons and
   then releasing one would make st think no buttons are pressed, which
   in particular broke MODE_MOUSEMOTION.
 - Always send the lowest-numbered pressed button on motion events; when
   no button is pressed for a motion event in MODE_MOUSEMANY, then send
   a release. This matches the behaviour of xterm. (Previously, st sent
   the most recently pressed button in the motion report.)
 - Remove UB (?) access to potentially inactive struct member
   e->xbutton.button of XEvent union.
 - Fix (unlikely) possibility of overflow for large button numbers.

The one discrepancy I found between st and xterm is that xterm sometimes
encodes buttons with large numbers (>5) strangely. E.g., xterm reports
presses of buttons 8 and 9 as releases, whereas st properly (?) encodes
them as presses.
2022-01-10 17:04:01 +01:00
4 changed files with 1663 additions and 1851 deletions

View File

@ -1,6 +1,6 @@
MIT/X Consortium License
© 2014-2020 Hiltjo Posthuma <hiltjo at codemadness dot org>
© 2014-2022 Hiltjo Posthuma <hiltjo at codemadness dot org>
© 2018 Devin J. Pohly <djpohly at gmail dot com>
© 2014-2017 Quentin Rameau <quinq at fifth dot space>
© 2009-2012 Aurélien APTEL <aurelien dot aptel at gmail dot com>

View File

@ -1,8 +1,8 @@
# Maintainer: Jef Roosens
pkgname=jjr-st
pkgver=0.8.6
pkgrel=3
pkgver=0.8.7
pkgrel=1
pkgdesc="My build of the st terminal"
arch=("x86_64")
@ -14,7 +14,9 @@ makedepends=("clang")
provides=("st")
conflicts=("st" "st-git")
source=("arg.h" "boxdraw.c" "boxdraw_data.h" "config.def.h" "config.h" "config.mk" "hb.c" "hb.h" "LICENSE" "Makefile" "st.1" "st.c" "st.h" "st.info" "win.h" "x.c" "README")
source=("arg.h" "boxdraw.c" "boxdraw_data.h" "config.def.h" "config.h"
"config.mk" "hb.c" "hb.h" "LICENSE" "Makefile" "st.1" "st.c" "st.h" "st.info"
"win.h" "x.c" "README")
md5sums=('7a0155e070d14041f69ca4466aad18bf'
'67a7923385b308ab714a66a81e2803f5'
'54322cef62604ce8c288b3d2d20f1baa'
@ -23,14 +25,14 @@ md5sums=('7a0155e070d14041f69ca4466aad18bf'
'ad217c165bd7a52f3335ded5e863c509'
'f6fcbd03c6f1013e4f592278bf96086d'
'704b67624d026f76577ce51d021ef00a'
'04c3ca13a702147c62db90f556c5b3ca'
'703e9835709f45ee7b81082277f1daec'
'84025d924d1ddf176f8dc028bc5f6453'
'bafec1da6c9f80fffd25dd5a85004b42'
'ef77a180cc99be9226e8296e5ae3ada5'
'dde058f89688f3039f8d3809c7b36c5d'
'4f1e1612b1e43442b34bb0fb44254af0'
'0cbfe790d927cce15ae8e658de03f8aa'
'ab9cbb2f172fd88c3c0d8a87eb7bd666'
'63ed863d96f9571cbdb50664b3e70001'
'cf03cbcdf728f24bb276f67dca5ed3fd'
'd344c31a3b60c2a3ba1c84b914dd2509')
build() {

8
st.c
View File

@ -1997,7 +1997,7 @@ strhandle(void)
else if (xsetcolorname(defaultfg, p))
fprintf(stderr, "erresc: invalid foreground color: %s\n", p);
else
redraw();
tfulldirt();
return;
case 11:
if (narg < 2)
@ -2010,7 +2010,7 @@ strhandle(void)
else if (xsetcolorname(defaultbg, p))
fprintf(stderr, "erresc: invalid background color: %s\n", p);
else
redraw();
tfulldirt();
return;
case 12:
if (narg < 2)
@ -2023,7 +2023,7 @@ strhandle(void)
else if (xsetcolorname(defaultcs, p))
fprintf(stderr, "erresc: invalid cursor color: %s\n", p);
else
redraw();
tfulldirt();
return;
case 4: /* color set */
if (narg < 3)
@ -2045,7 +2045,7 @@ strhandle(void)
* TODO if defaultbg color is changed, borders
* are dirty
*/
redraw();
tfulldirt();
}
return;
}

3490
x.c

File diff suppressed because it is too large Load Diff