Pārlūkot izejas kodu

Create helper function for grabKeyboard conditions

tags/v1.12.90
Samuel Mannehed pirms 2 gadiem
vecāks
revīzija
d6f4edbbf3
2 mainītis faili ar 13 papildinājumiem un 18 dzēšanām
  1. 12
    18
      vncviewer/DesktopWindow.cxx
  2. 1
    0
      vncviewer/DesktopWindow.h

+ 12
- 18
vncviewer/DesktopWindow.cxx Parādīt failu

@@ -652,8 +652,7 @@ void DesktopWindow::resize(int x, int y, int w, int h)

// Some systems require a grab after the window size has been changed.
// Otherwise they might hold on to displays, resulting in them being unusable.
if (fullscreen_active() && fullscreenSystemKeys)
grabKeyboard();
maybeGrabKeyboard();
}


@@ -800,11 +799,8 @@ int DesktopWindow::handle(int event)
// Update scroll bars
repositionWidgets();

if (!fullscreenSystemKeys)
break;

if (fullscreen_active())
grabKeyboard();
maybeGrabKeyboard();
else
ungrabKeyboard();

@@ -870,10 +866,7 @@ int DesktopWindow::fltkDispatch(int event, Fl_Window *win)
// all monitors and the user clicked on another application.
// Make sure we update our grabs with the focus changes.
case FL_FOCUS:
if (fullscreenSystemKeys) {
if (dw->fullscreen_active())
dw->grabKeyboard();
}
dw->maybeGrabKeyboard();
break;
case FL_UNFOCUS:
if (fullscreenSystemKeys) {
@@ -1014,6 +1007,12 @@ Bool eventIsFocusWithSerial(Display *display, XEvent *event, XPointer arg)
}
#endif

void DesktopWindow::maybeGrabKeyboard()
{
if (fullscreenSystemKeys && fullscreen_active())
grabKeyboard();
}

void DesktopWindow::grabKeyboard()
{
// Grabbing the keyboard is fairly safe as FLTK reroutes events to the
@@ -1144,12 +1143,7 @@ void DesktopWindow::handleGrab(void *data)

assert(self);

if (!fullscreenSystemKeys)
return;
if (!self->fullscreen_active())
return;

self->grabKeyboard();
self->maybeGrabKeyboard();
}


@@ -1453,8 +1447,8 @@ void DesktopWindow::handleOptions(void *data)
{
DesktopWindow *self = (DesktopWindow*)data;

if (self->fullscreen_active() && fullscreenSystemKeys)
self->grabKeyboard();
if (fullscreenSystemKeys)
self->maybeGrabKeyboard();
else
self->ungrabKeyboard();


+ 1
- 0
vncviewer/DesktopWindow.h Parādīt failu

@@ -95,6 +95,7 @@ private:
static int fltkDispatch(int event, Fl_Window *win);
static int fltkHandle(int event);

void maybeGrabKeyboard();
void grabKeyboard();
void ungrabKeyboard();
void grabPointer();

Notiek ielāde…
Atcelt
Saglabāt