A larger dot cursor for the visually challenged

vnc.z.tryfixingit@antichef.net vnc.z.tryfixingit "at" antichef.net
Tue Jul 11 02:16:01 2006


I'm not going blind, but my eyes are getting older.  Every time a new 
vncviewer comes out, I change the "dotcursor", so I can actually see 
it.  But I never remember to post the two simple changes that make it 
far more usable to people like me.  I guess I'm always hoping this will 
show up in the next release of the software, but perhaps it doesn't 
bother other people  as much as it bothers me.

This change uses cursorfont.h, which I've found in most Unix-like X 
include directories.  It uses the "crosshair" cursor, instead of the 
dot.  I've found that the lines of the crosshair are small enough to 
make it relatively unobtrusive, but it is still a lot easier to find on 
the screen than the dot.

I've done this to IRIX, Solaris, and Mac OSX (10.3.x).  I can't vouch 
for other Unices, but I suspect it's a fairly generic change.

For the current distribution, the change is to 
vnc-4_1_2-unixsrc/unix/vncviewer/DesktopWindow.cxx

Here is the patch.  For those unfamiliar, you can just cd to the 
directory above the vnc source distribution and paste all of the 
commands below on a command line.  Hope this helps others.

-Jon

cd vnc-4_1_2-unixsrc/unix/vncviewer/

patch << END
*** DesktopWindow.cxx.orig	Mon Jul 10 14:22:04 2006
--- DesktopWindow.cxx	Mon Jul 10 14:24:02 2006
***************
*** 27,32 ****
--- 27,33 ----
   #include <X11/Xatom.h>
   #include <stdio.h>
   #include <string.h>
+ #include <X11/cursorfont.h>
   #include "parameters.h"

   #ifndef XK_ISO_Left_Tab
***************
*** 115,121 ****
     XColor fg, bg;
     fg.red = fg.green = fg.blue = 0;
     bg.red = bg.green = bg.blue = 0xffff;
!   dotCursor = XCreatePixmapCursor(dpy, source, mask, &fg, &bg, 2, 2);
     XFreePixmap(dpy, source);
     XFreePixmap(dpy, mask);
     char zero = 0;
--- 116,123 ----
     XColor fg, bg;
     fg.red = fg.green = fg.blue = 0;
     bg.red = bg.green = bg.blue = 0xffff;
! //  dotCursor = XCreatePixmapCursor(dpy, source, mask, &fg, &bg, 2, 
2);
!   dotCursor = XCreateFontCursor(dpy, XC_crosshair);
     XFreePixmap(dpy, source);
     XFreePixmap(dpy, mask);
     char zero = 0;
END