5
0
mirror of git://git.proxmox.com/git/vncterm.git synced 2025-01-02 05:17:38 +03:00

add custom cursor

instead of a black 'x' we now have a 'proper' cursor with a white edge,
to be able to see it when we are in the novnc console

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2017-06-06 11:01:51 +02:00 committed by Wolfgang Bumiller
parent dc2a34958e
commit ade0cff254

View File

@ -2201,6 +2201,63 @@ new_client (rfbClientPtr client)
static char *vncticket = NULL;
static void
MakeRichCursor(rfbScreenInfoPtr rfbScreen)
{
int w = 16,
h = 16;
rfbCursorPtr c = rfbScreen->cursor;
char bitmap[] =
" "
" x "
" xx "
" xxx "
" xxxx "
" xxxxx "
" xxxxxx "
" xxxxxxx "
" xxxxxxxx "
" xxxxxxxxx "
" xxxxxxxxxx "
" xxxx "
" xxx "
" xx "
" x "
" ";
char edge[] =
" "
" x "
" xx "
" x x "
" x x "
" x x "
" x x "
" x x "
" x x "
" x x "
" x xxxxxx "
" x x "
" x x "
" xx "
" x "
" ";
c = rfbScreen->cursor = rfbMakeXCursor(w,h,bitmap,bitmap);
c->richSource = (unsigned char*)calloc(w*h, 1);
c->cleanupRichSource = TRUE;
for(int j=0;j<h;j++) {
for(int i=0;i<w;i++) {
unsigned int pos = j*w+i;
if (edge[pos] == 'x') {
c->richSource[pos] = 15; // white
} else {
c->richSource[pos] = 0; // black
}
}
}
}
vncTerm *
create_vncterm (int argc, char** argv, int maxx, int maxy)
{
@ -2208,6 +2265,7 @@ create_vncterm (int argc, char** argv, int maxx, int maxy)
rfbScreenInfoPtr screen = rfbGetScreen (&argc, argv, maxx, maxy, 8, 1, 1);
screen->frameBuffer=(char*)calloc(maxx*maxy, 1);
MakeRichCursor(screen);
char **passwds = calloc(sizeof(char**), 2);