Browse Source

Request keyboard grab ability under Xwayland

We're usually white listed, but let's be a good citizen and formally
request the keyboard grab ability from the compositor.
tags/v1.9.90
Pierre Ossman 4 years ago
parent
commit
da10343f32
2 changed files with 23 additions and 0 deletions
  1. 22
    0
      vncviewer/DesktopWindow.cxx
  2. 1
    0
      vncviewer/DesktopWindow.h

+ 22
- 0
vncviewer/DesktopWindow.cxx View File

@@ -290,6 +290,28 @@ void DesktopWindow::setCursor(int width, int height,
}


void DesktopWindow::show()
{
Fl_Window::show();

#if !defined(WIN32) && !defined(__APPLE__)
XEvent e;

// Request ability to grab keyboard under Xwayland
e.xany.type = ClientMessage;
e.xany.window = fl_xid(this);
e.xclient.message_type = XInternAtom (fl_display, "_XWAYLAND_MAY_GRAB_KEYBOARD", 0);
e.xclient.format = 32;
e.xclient.data.l[0] = 1;
e.xclient.data.l[1] = 0;
e.xclient.data.l[2] = 0;
e.xclient.data.l[3] = 0;
e.xclient.data.l[4] = 0;
XSendEvent(fl_display, RootWindow(fl_display, fl_screen), 0, SubstructureNotifyMask | SubstructureRedirectMask, &e);
#endif
}


void DesktopWindow::draw()
{
bool redraw;

+ 1
- 0
vncviewer/DesktopWindow.h View File

@@ -73,6 +73,7 @@ public:
void setLEDState(unsigned int state);

// Fl_Window callback methods
virtual void show();
void draw();
void resize(int x, int y, int w, int h);


Loading…
Cancel
Save