summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--TODO3
-rw-r--r--font.c6
3 files changed, 8 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 93287be..17c893e 100644
--- a/Makefile
+++ b/Makefile
@@ -9,8 +9,8 @@ VNCSERVERLIB=-L. -lvncserver -L/usr/local/lib -lz -ljpeg
# The code for 3 Bytes/Pixel is not very efficient!
FLAG24 = -DALLOW24BPP
-OPTFLAGS=-g # -Wall
-#OPTFLAGS=-O2 -Wall
+#OPTFLAGS=-g # -Wall
+OPTFLAGS=-O2 -Wall
CFLAGS=$(OPTFLAGS) $(PTHREADDEF) $(FLAG24) $(INCLUDES)
RANLIB=ranlib
diff --git a/TODO b/TODO
index 522481b..0aa137b 100644
--- a/TODO
+++ b/TODO
@@ -1,7 +1,8 @@
immediate:
----------
-in keysym tester mouse buttons make copy rect, but text is not marked as mod.
+extra_bytes in rfbDrawCharWithClip.
+in keysym tested mouse buttons make copy rect, but text is not marked as mod.
cursor drawing: set optional grain to mark bigger rectangles as drawn (else
you end up with thousands of one-pixel-rectangles to encode).
selectbox: scroll bars
diff --git a/font.c b/font.c
index cb31f7f..f61f09e 100644
--- a/font.c
+++ b/font.c
@@ -68,12 +68,14 @@ int rfbDrawCharWithClip(rfbScreenInfoPtr rfbScreen,rfbFontDataPtr font,
/* after clipping, x2 will be count of bytes between rows,
* x1 start of i, y1 start of j, width and height will be adjusted. */
- if(y1>y) { y1-=y; d+=(width+7)/8; height-=y1; y+=y1; } else y1=0;
- if(x1>x) { x1-=x; d+=x1; width-=x1; x+=x1; extra_bytes+=x1/8; } else x1=0;
+ if(y1>y) { y1-=y; data+=(width+7)/8; height-=y1; y+=y1; } else y1=0;
+ if(x1>x) { x1-=x; data+=x1; width-=x1; x+=x1; extra_bytes+=x1/8; } else x1=0;
if(y2<y+height) height-=y+height-y2;
if(x2<x+width) { extra_bytes+=(x1+width)/8-(x+width-x2+7)/8; width-=x+width-x2; }
for(j=y1;j<height;j++) {
+ if((x1&7)!=0)
+ d=data[-1]; /* TODO: check if in this case extra_bytes is correct! */
for(i=x1;i<width;i++) {
if((i&7)==0) {
d=*data;