diff options
author | dscho <dscho> | 2005-01-18 23:18:04 +0000 |
---|---|---|
committer | dscho <dscho> | 2005-01-18 23:18:04 +0000 |
commit | a84b3d072a89e05c5aa5f702d223cfe304379293 (patch) | |
tree | 6e8b11537f0fe91e5a62b2dc559521ce8c9a9a13 /vncterm | |
parent | dd923e866021418379ee88b8a927597f616fbc84 (diff) | |
download | libvncserver-a84b3d072a89e05c5aa5f702d223cfe304379293.zip libvncserver-a84b3d072a89e05c5aa5f702d223cfe304379293.tar.gz |
pointerClient was still static.
do not make requestedRegion empty without reason.
the cursor handling for clients which don't handle CursorShape updates was
completely broken. It originally was very complicated for performance
reasons, however, in most cases it made performance even worse, because at
idle times there was way too much checking going on, and furthermore,
sometimes unnecessary updates were inevitable.
The code now is much more elegant: the ClientRec structure knows exactly
where it last painted the cursor, and the ScreenInfo structure knows where
the cursor shall be.
As a consequence there is no more rfbDrawCursor()/rfbUndrawCursor(), no more
dontSendFramebufferUpdate, and no more isCursorDrawn. It is now possible to
have clients which understand CursorShape updates and clients which don't at
the same time.
rfbSetCursor no longer has the option freeOld; this is obsolete, as the cursor
structure knows what to free and what not.
Diffstat (limited to 'vncterm')
-rw-r--r-- | vncterm/VNConsole.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/vncterm/VNConsole.c b/vncterm/VNConsole.c index ac8e260..651546a 100644 --- a/vncterm/VNConsole.c +++ b/vncterm/VNConsole.c @@ -50,8 +50,7 @@ void vcDrawOrHideCursor(vncConsolePtr c) void vcDrawCursor(vncConsolePtr c) { - rfbDrawCursor(c->screen); - if(c->cursorActive && !c->cursorIsDrawn && c->y<c->height && c->x<c->width) { + if(c->cursorActive && c->y<c->height && c->x<c->width) { /* rfbLog("DrawCursor: %d,%d\n",c->x,c->y); */ vcDrawOrHideCursor(c); } @@ -59,13 +58,9 @@ void vcDrawCursor(vncConsolePtr c) void vcHideCursor(vncConsolePtr c) { - rfbUndrawCursor(c->screen); if(c->currentlyMarking) vcUnmark(c); - if(c->cursorIsDrawn) { - /* rfbLog("HideCursor: %d,%d\n",c->x,c->y); */ - vcDrawOrHideCursor(c); - } + vcDrawOrHideCursor(c); } void vcMakeSureCursorIsDrawn(rfbClientPtr cl) @@ -394,8 +389,6 @@ void vcPtrAddEventProc(int buttonMask,int x,int y,rfbClientPtr cl) { vncConsolePtr c=(vncConsolePtr)cl->screen->screenData; - rfbUndrawCursor(c->screen); - if(c->wasRightButtonDown) { if((buttonMask&4)==0) { if(c->selection) { |