Browse Source
accessibility/mag: Fix all-black window bug.
Signed-off-by: B. Watson <yalhcru@gmail.com>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
pull/159/head
B. Watson
4 years ago
committed by
Willy Sudiarto Raharjo
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
4 changed files with
55 additions and
8 deletions
-
accessibility/mag/mag.1
-
accessibility/mag/mag.SlackBuild
-
accessibility/mag/mag.rst
-
accessibility/mag/xdestroyimage.diff
|
|
|
@ -1,8 +1,5 @@ |
|
|
|
.\" Man page generated from reStructuredText. |
|
|
|
. |
|
|
|
.TH MAG 1 "2020-11-01" "20100913" "SlackBuilds.org" |
|
|
|
.SH NAME |
|
|
|
mag \- dynamic X11 screen magnifier |
|
|
|
. |
|
|
|
.nr rst2man-indent-level 0 |
|
|
|
. |
|
|
|
@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] |
|
|
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] |
|
|
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u |
|
|
|
.. |
|
|
|
.TH "MAG" 1 "2021-12-07" "20100913" "SlackBuilds.org" |
|
|
|
.SH NAME |
|
|
|
mag \- dynamic X11 screen magnifier |
|
|
|
.\" RST source for mag(1) man page. Convert with: |
|
|
|
. |
|
|
|
.\" rst2man.py mag.rst > mag.1 |
|
|
|
@ -49,16 +49,16 @@ furthest corner away from the mouse. Without, you can grab it and move it as you |
|
|
|
.SH OPTIONS |
|
|
|
.INDENT 0.0 |
|
|
|
.TP |
|
|
|
.B \-s |
|
|
|
.B \-s |
|
|
|
small window. |
|
|
|
.TP |
|
|
|
.B \-m |
|
|
|
.B \-m |
|
|
|
medium window. |
|
|
|
.TP |
|
|
|
.B \-l |
|
|
|
.B \-l |
|
|
|
large window. |
|
|
|
.TP |
|
|
|
.B \-d |
|
|
|
.B \-d |
|
|
|
Dynamic placement. |
|
|
|
.TP |
|
|
|
.BI \-z \ n |
|
|
|
@ -70,6 +70,10 @@ Original X placement. |
|
|
|
.BI \-y \ Ycoord |
|
|
|
Original Y placement. |
|
|
|
.UNINDENT |
|
|
|
.SH BUGS |
|
|
|
.sp |
|
|
|
There is no way to exit \fBmag\fP normally. Use e.g. \fBkillall mag\fP or |
|
|
|
\fBxkill\fP to force it to quit. |
|
|
|
.SH AUTHORS |
|
|
|
.sp |
|
|
|
mag was written by Danny Chouinard. |
|
|
|
|
|
|
|
@ -8,11 +8,15 @@ |
|
|
|
|
|
|
|
# VERSION comes from the last modified date on the homepage. |
|
|
|
|
|
|
|
# 20211207 bkw: BUILD=2 |
|
|
|
# - fix blank window on -current (it shouldn't have worked on 14.2 either). |
|
|
|
# - add BUGS to man page (no way to exit mag). |
|
|
|
|
|
|
|
cd $(dirname $0) ; CWD=$(pwd) |
|
|
|
|
|
|
|
PRGNAM=mag |
|
|
|
VERSION=${VERSION:-20100913} |
|
|
|
BUILD=${BUILD:-1} |
|
|
|
BUILD=${BUILD:-2} |
|
|
|
TAG=${TAG:-_SBo} |
|
|
|
PKGTYPE=${PKGTYPE:-tgz} |
|
|
|
|
|
|
|
@ -54,7 +58,22 @@ set -e |
|
|
|
# In case you're wondering, -Wl,-s builds a stripped binary. |
|
|
|
rm -rf $PKG |
|
|
|
mkdir -p $PKG/usr/bin $OUTPUT |
|
|
|
|
|
|
|
cd $PKG |
|
|
|
|
|
|
|
# 20211207 bkw: we *do* have to patch it now, and we don't want |
|
|
|
# to write to $CWD, so: |
|
|
|
cat $CWD/$PRGNAM.c > $PRGNAM.c |
|
|
|
|
|
|
|
# 20211207 bkw: silly mistake in the code: it was calling |
|
|
|
# XDestroyImage(ximage) before the for loop that *uses* ximage. |
|
|
|
# On 14.2's X, this was equivalent to a use-after-free, and worked |
|
|
|
# accidentally most (or even all) of the time, but on -current's X, |
|
|
|
# it results in a blank (all-black) window. |
|
|
|
patch -p0 < $CWD/xdestroyimage.diff |
|
|
|
|
|
|
|
gcc $SLKCFLAGS -Wl,-s -o $PKG/usr/bin/$PRGNAM $PRGNAM.c -lX11 |
|
|
|
rm $PRGNAM.c |
|
|
|
|
|
|
|
# Man page written by SlackBuild author. Please don't include mag.rst |
|
|
|
# in the package, it's the source for the man page only. |
|
|
|
|
|
|
|
@ -43,6 +43,12 @@ OPTIONS |
|
|
|
-x Xcoord Original X placement. |
|
|
|
-y Ycoord Original Y placement. |
|
|
|
|
|
|
|
BUGS |
|
|
|
==== |
|
|
|
|
|
|
|
There is no way to exit **mag** normally. Use e.g. **killall mag** or |
|
|
|
**xkill** to force it to quit. |
|
|
|
|
|
|
|
AUTHORS |
|
|
|
======= |
|
|
|
|
|
|
|
|
|
|
|
@ -0,0 +1,18 @@ |
|
|
|
--- mag.c 2010-09-13 13:56:43.000000000 -0400
|
|
|
|
+++ mag.c.fixed 2021-12-07 23:23:49.729231259 -0500
|
|
|
|
@@ -174,7 +174,6 @@
|
|
|
|
ximage=XGetImage(display,root,x-sx,y-sy,width/zoom,height/zoom,AllPlanes,ZPixmap); |
|
|
|
// fprintf(stderr,"XGetImage returns:%d\n",(int)ximage); |
|
|
|
// XPutImage(display,main_win,the_GC,ximage,0,0,0,0,width,height); |
|
|
|
- XDestroyImage(ximage);
|
|
|
|
for(sx=0;sx<width/zoom;sx++) { |
|
|
|
for(sy=0;sy<height/zoom;sy++) { |
|
|
|
pix=XGetPixel(ximage,sx,sy); |
|
|
|
@@ -186,6 +185,7 @@
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
+ XDestroyImage(ximage);
|
|
|
|
XFlush(display); |
|
|
|
} else { |
|
|
|
usleep(30000); |