For example, if we have earlier disabled an output because it was too
large for the framebuffer, we should prefer this output when
allocating new outputs.
Move the code that turn off unused outputs to the end.
Also, add support for checking the output connection state.
In RandR land, there's a lot of return code confusion. Our wrappers
are using the same return codes as RRCrtcSet, RRScreenSizeSet: 1/TRUE
for success. Fixes:
* vncRandRCreateOutputs did not follow this convention
* A lot of code returned -1 upon failure
* vncRandRDisableOutput returned 0 for already disabled outputs
Move computeScreenLayout/setScreenLayout to unixcommon lib
These two code blocks are not specific to Xvnc/vnc.so, but useful for
x0vncserver as well. RandrGlue.h defines the interface on which
unixcommon depends on.
Unset pixel buffer when x0vncserver client disconnects.
In XDesktop::start() we allocate pixel buffer and set it as the backend to the given VNCServer.
In XDesktop::stop() we deallocate the buffer, so we must unset it from the VNCServer as well.
Otherwise the VNCServer could try to access it and crash, for example in deferred update.
No longer tolerate loading the VNC extension but not being able to
initialize it. This avoids a lot of error prone checking to see
if the extension has started fully or not.
It was moved to the common code in f8e3b34c6, but it was unreliable
because the state could sometimes get out of sync. Push it back in
to Xvnc since it isn't necessarily something all servers will have.
x0vncserver: keyEvent(): use scancodes if available
Use the client provided (using QEMU extendend key event) scancodes if
available instead of reverse mapping the keysym.
X11 unfortunately uses keyboard driver specific keycodes and provides
no direct way to query this, so guess based on the keyboard mapping.
Handle the two most likely keyboard drivers, the old xorgkbd and evdev.
Signed-off-by: Peter Korsgaard <peter.korsgaard@barco.com>
This adds the basic infrastructure and handshake for the QEMU
Extended Key Events extension. No viewer or server makes use of
the extra functionality yet though.
x0vncserver: add support for led state notifications
Listen for XKb XkbIndicatorStateNotify events for scroll/num/caps lock and
map them to the RFB protocol.
Signed-off-by: Peter Korsgaard <peter.korsgaard@barco.com>