Pierre Ossman před 1 rokem
rodič
revize
681d543254
2 změnil soubory, kde provedl 26 přidání a 6 odebrání
  1. 16
    2
      unix/x0vncserver/XDesktop.cxx
  2. 10
    4
      unix/x0vncserver/XDesktop.h

+ 16
- 2
unix/x0vncserver/XDesktop.cxx Zobrazit soubor

@@ -27,6 +27,7 @@
#include <unistd.h>

#include <rfb/LogWriter.h>
#include <rfb/Exception.h>

#include <x0vncserver/XDesktop.h>

@@ -43,7 +44,6 @@
#endif
#ifdef HAVE_XRANDR
#include <X11/extensions/Xrandr.h>
#include <rfb/Exception.h>
#include <RandrGlue.h>
extern "C" {
void vncSetGlueContext(Display *dpy, void *res);
@@ -276,8 +276,10 @@ void XDesktop::start(VNCServer* vs) {
void XDesktop::stop() {
running = false;

#ifdef HAVE_XTEST
// Delete added keycodes
deleteAddedKeysyms(dpy);
#endif

#ifdef HAVE_XDAMAGE
if (haveDamage)
@@ -355,6 +357,9 @@ void XDesktop::pointerEvent(const Point& pos, int buttonMask) {
}
}
oldButtonMask = buttonMask;
#else
(void)pos;
(void)buttonMask;
#endif
}

@@ -396,7 +401,6 @@ KeyCode XDesktop::XkbKeysymToKeycode(Display* dpy, KeySym keysym) {

return keycode;
}
#endif

KeyCode XDesktop::addKeysym(Display* dpy, KeySym keysym)
{
@@ -512,6 +516,7 @@ KeyCode XDesktop::keysymToKeycode(Display* dpy, KeySym keysym) {

return keycode;
}
#endif


void XDesktop::keyEvent(uint32_t keysym, uint32_t xtcode, bool down) {
@@ -546,6 +551,10 @@ void XDesktop::keyEvent(uint32_t keysym, uint32_t xtcode, bool down) {
vlog.debug("%d %s", keycode, down ? "down" : "up");

XTestFakeKeyEvent(dpy, keycode, down, CurrentTime);
#else
(void)keysym;
(void)xtcode;
(void)down;
#endif
}

@@ -778,6 +787,9 @@ unsigned int XDesktop::setScreenLayout(int fb_width, int fb_height,
return ret;

#else
(void)fb_width;
(void)fb_height;
(void)layout;
return rfb::resultProhibited;
#endif /* HAVE_XRANDR */
}
@@ -938,6 +950,7 @@ void XDesktop::queryRejected()
queryConnectSock = 0;
}

#ifdef HAVE_XFIXES
bool XDesktop::setCursor()
{
XFixesCursorImage *cim;
@@ -985,3 +998,4 @@ bool XDesktop::setCursor()
XFree(cim);
return true;
}
#endif

+ 10
- 4
unix/x0vncserver/XDesktop.h Zobrazit soubor

@@ -54,10 +54,6 @@ public:
virtual void queryConnection(network::Socket* sock,
const char* userName);
virtual void pointerEvent(const rfb::Point& pos, int buttonMask);
KeyCode XkbKeysymToKeycode(Display* dpy, KeySym keysym);
KeyCode addKeysym(Display* dpy, KeySym keysym);
void deleteAddedKeysyms(Display* dpy);
KeyCode keysymToKeycode(Display* dpy, KeySym keysym);
virtual void keyEvent(uint32_t keysym, uint32_t xtcode, bool down);
virtual void clientCutText(const char* str);
virtual unsigned int setScreenLayout(int fb_width, int fb_height,
@@ -101,7 +97,17 @@ protected:
unsigned ledState;
const unsigned short *codeMap;
unsigned codeMapLen;

protected:
#ifdef HAVE_XTEST
KeyCode XkbKeysymToKeycode(Display* dpy, KeySym keysym);
KeyCode addKeysym(Display* dpy, KeySym keysym);
void deleteAddedKeysyms(Display* dpy);
KeyCode keysymToKeycode(Display* dpy, KeySym keysym);
#endif
#ifdef HAVE_XFIXES
bool setCursor();
#endif
rfb::ScreenSet computeScreenLayout();
};


Načítá se…
Zrušit
Uložit