Browse Source

Send explicitly unused Events to the parent

pull/1639/head
Cameron Leger 6 years ago
parent
commit
0d3928872a
1 changed files with 90 additions and 53 deletions
  1. +90
    -53
      dep/lglw/lglw_linux.c

+ 90
- 53
dep/lglw/lglw_linux.c View File

@@ -372,20 +372,23 @@ static void loc_eventProc(void *_xevent) {


if(NULL != lglw) if(NULL != lglw)
{ {
lglw_bool_t bHandled = LGLW_FALSE;
lglw_bool_t eventHandled = LGLW_FALSE;


switch(xev->type) switch(xev->type)
{ {
default: default:
printf("vstgltest<lglw_linux>: unhandled X11 event type=%d\n", xev->type); printf("vstgltest<lglw_linux>: unhandled X11 event type=%d\n", xev->type);
eventHandled = LGLW_FALSE;
break; break;


case Expose: case Expose:
printf("vstgltest<lglw_linux>: xev Expose\n"); printf("vstgltest<lglw_linux>: xev Expose\n");
loc_handle_queued_mouse_warp(lglw); loc_handle_queued_mouse_warp(lglw);
eventHandled = LGLW_FALSE;
if(NULL != lglw->redraw.cbk) if(NULL != lglw->redraw.cbk)
{ {
lglw->redraw.cbk(lglw); lglw->redraw.cbk(lglw);
eventHandled = LGLW_TRUE;
} }
break; break;


@@ -393,10 +396,12 @@ static void loc_eventProc(void *_xevent) {


case FocusIn: case FocusIn:
printf("vstgltest<lglw_linux>: xev FocusIn\n"); printf("vstgltest<lglw_linux>: xev FocusIn\n");
eventHandled = LGLW_FALSE;
break; break;


case FocusOut: case FocusOut:
printf("vstgltest<lglw_linux>: xev FocusOut\n"); printf("vstgltest<lglw_linux>: xev FocusOut\n");
eventHandled = LGLW_FALSE;
break; break;


case EnterNotify: case EnterNotify:
@@ -415,6 +420,7 @@ static void loc_eventProc(void *_xevent) {
{ {
loc_handle_mouseenter(lglw); loc_handle_mouseenter(lglw);
} }
eventHandled = LGLW_TRUE;


break; break;


@@ -431,6 +437,7 @@ static void loc_eventProc(void *_xevent) {
{ {
loc_handle_mouseleave(lglw); loc_handle_mouseleave(lglw);
} }
eventHandled = LGLW_TRUE;


break; break;


@@ -456,6 +463,7 @@ static void loc_eventProc(void *_xevent) {
} }


loc_handle_mousemotion(lglw); loc_handle_mousemotion(lglw);
eventHandled = LGLW_TRUE;


break; break;


@@ -463,6 +471,7 @@ static void loc_eventProc(void *_xevent) {
printf("vstgltest<lglw_linux>: xev KeyPress\n"); printf("vstgltest<lglw_linux>: xev KeyPress\n");
XKeyPressedEvent *keyPress = (XKeyPressedEvent*)xev; XKeyPressedEvent *keyPress = (XKeyPressedEvent*)xev;


eventHandled = LGLW_FALSE;
KeySym xkp = XLookupKeysym(keyPress, 0); KeySym xkp = XLookupKeysym(keyPress, 0);
switch(xkp) switch(xkp)
{ {
@@ -473,11 +482,11 @@ static void loc_eventProc(void *_xevent) {
KeySym xkpl; KeySym xkpl;
KeySym xkpu; KeySym xkpu;
XConvertCase(xkp, &xkpl, &xkpu); XConvertCase(xkp, &xkpl, &xkpu);
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, xkpu);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, xkpu);
} }
else else
{ {
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, xkp);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, xkp);
} }
break; break;


@@ -486,91 +495,91 @@ static void loc_eventProc(void *_xevent) {
break; break;


case XK_F1: case XK_F1:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F1);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F1);
break; break;


case XK_F2: case XK_F2:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F2);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F2);
break; break;


case XK_F3: case XK_F3:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F3);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F3);
break; break;


case XK_F4: case XK_F4:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F4);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F4);
break; break;


case XK_F5: case XK_F5:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F5);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F5);
break; break;


case XK_F6: case XK_F6:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F6);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F6);
break; break;


case XK_F7: case XK_F7:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F7);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F7);
break; break;


case XK_F8: case XK_F8:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F8);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F8);
break; break;


case XK_F9: case XK_F9:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F9);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F9);
break; break;


case XK_F10: case XK_F10:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F10);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F10);
break; break;


case XK_F11: case XK_F11:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F11);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F11);
break; break;


case XK_F12: case XK_F12:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F12);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_F12);
break; break;


case XK_BackSpace: case XK_BackSpace:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_BACKSPACE);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_BACKSPACE);
break; break;


case XK_Tab: case XK_Tab:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_TAB);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_TAB);
break; break;


case XK_Return: case XK_Return:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_RETURN);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_RETURN);
break; break;


case XK_Escape: case XK_Escape:
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_ESCAPE);
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_ESCAPE);
break; break;


case XK_Shift_L: case XK_Shift_L:
lglw->keyboard.kmod_state |= LGLW_KMOD_LSHIFT; lglw->keyboard.kmod_state |= LGLW_KMOD_LSHIFT;
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_LSHIFT);
bHandled = LGLW_FALSE;
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_LSHIFT);
eventHandled = LGLW_FALSE;
break; break;


case XK_Shift_R: case XK_Shift_R:
lglw->keyboard.kmod_state |= LGLW_KMOD_RSHIFT; lglw->keyboard.kmod_state |= LGLW_KMOD_RSHIFT;
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_RSHIFT);
bHandled = LGLW_FALSE;
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_VKEY_RSHIFT);
eventHandled = LGLW_FALSE;
break; break;


case XK_Control_L: case XK_Control_L:
lglw->keyboard.kmod_state |= LGLW_KMOD_LCTRL; lglw->keyboard.kmod_state |= LGLW_KMOD_LCTRL;
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_KMOD_LCTRL);
bHandled = LGLW_FALSE;
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_KMOD_LCTRL);
eventHandled = LGLW_FALSE;
break; break;


case XK_Control_R: case XK_Control_R:
lglw->keyboard.kmod_state |= LGLW_KMOD_RCTRL; lglw->keyboard.kmod_state |= LGLW_KMOD_RCTRL;
bHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_KMOD_RCTRL);
bHandled = LGLW_FALSE;
eventHandled = loc_handle_key(lglw, LGLW_TRUE/*bPressed*/, LGLW_KMOD_RCTRL);
eventHandled = LGLW_FALSE;
break; break;
} }


@@ -580,6 +589,7 @@ static void loc_eventProc(void *_xevent) {
printf("vstgltest<lglw_linux>: xev KeyRelease\n"); printf("vstgltest<lglw_linux>: xev KeyRelease\n");
XKeyReleasedEvent *keyRelease = (XKeyReleasedEvent*)xev; XKeyReleasedEvent *keyRelease = (XKeyReleasedEvent*)xev;


eventHandled = LGLW_FALSE;
KeySym xkr = XLookupKeysym(keyRelease, 0); KeySym xkr = XLookupKeysym(keyRelease, 0);
switch(xkr) switch(xkr)
{ {
@@ -590,11 +600,11 @@ static void loc_eventProc(void *_xevent) {
KeySym xkrl; KeySym xkrl;
KeySym xkru; KeySym xkru;
XConvertCase(xkr, &xkrl, &xkru); XConvertCase(xkr, &xkrl, &xkru);
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, xkru);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, xkru);
} }
else else
{ {
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, xkr);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, xkr);
} }
break; break;


@@ -603,91 +613,91 @@ static void loc_eventProc(void *_xevent) {
break; break;


case XK_F1: case XK_F1:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F1);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F1);
break; break;


case XK_F2: case XK_F2:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F2);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F2);
break; break;


case XK_F3: case XK_F3:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F3);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F3);
break; break;


case XK_F4: case XK_F4:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F4);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F4);
break; break;


case XK_F5: case XK_F5:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F5);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F5);
break; break;


case XK_F6: case XK_F6:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F6);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F6);
break; break;


case XK_F7: case XK_F7:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F7);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F7);
break; break;


case XK_F8: case XK_F8:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F8);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F8);
break; break;


case XK_F9: case XK_F9:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F9);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F9);
break; break;


case XK_F10: case XK_F10:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F10);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F10);
break; break;


case XK_F11: case XK_F11:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F11);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F11);
break; break;


case XK_F12: case XK_F12:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F12);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_F12);
break; break;


case XK_BackSpace: case XK_BackSpace:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_BACKSPACE);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_BACKSPACE);
break; break;


case XK_Tab: case XK_Tab:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_TAB);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_TAB);
break; break;


case XK_Return: case XK_Return:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_RETURN);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_RETURN);
break; break;


case XK_Escape: case XK_Escape:
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_ESCAPE);
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_ESCAPE);
break; break;


case XK_Shift_L: case XK_Shift_L:
lglw->keyboard.kmod_state &= ~LGLW_KMOD_LSHIFT; lglw->keyboard.kmod_state &= ~LGLW_KMOD_LSHIFT;
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_LSHIFT);
bHandled = LGLW_FALSE;
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_LSHIFT);
eventHandled = LGLW_FALSE;
break; break;


case XK_Shift_R: case XK_Shift_R:
lglw->keyboard.kmod_state &= ~LGLW_KMOD_RSHIFT; lglw->keyboard.kmod_state &= ~LGLW_KMOD_RSHIFT;
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_RSHIFT);
bHandled = LGLW_FALSE;
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_RSHIFT);
eventHandled = LGLW_FALSE;
break; break;


case XK_Control_L: case XK_Control_L:
lglw->keyboard.kmod_state &= ~LGLW_KMOD_LCTRL; lglw->keyboard.kmod_state &= ~LGLW_KMOD_LCTRL;
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_LCTRL);
bHandled = LGLW_FALSE;
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_LCTRL);
eventHandled = LGLW_FALSE;
break; break;


case XK_Control_R: case XK_Control_R:
lglw->keyboard.kmod_state &= ~LGLW_KMOD_RCTRL; lglw->keyboard.kmod_state &= ~LGLW_KMOD_RCTRL;
bHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_RCTRL);
bHandled = LGLW_FALSE;
eventHandled = loc_handle_key(lglw, LGLW_FALSE/*bPressed*/, LGLW_VKEY_RCTRL);
eventHandled = LGLW_FALSE;
break; break;
} }


@@ -708,21 +718,27 @@ static void loc_eventProc(void *_xevent) {
{ {
default: default:
printf("vstgltest<lglw_linux>: xev ButtonPress unhandled button: %i\n", btnPress->button); printf("vstgltest<lglw_linux>: xev ButtonPress unhandled button: %i\n", btnPress->button);
eventHandled = LGLW_FALSE;
break; break;
case Button1: case Button1:
loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_LBUTTON); loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_LBUTTON);
eventHandled = LGLW_TRUE;
break; break;
case Button2: case Button2:
loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_RBUTTON); loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_RBUTTON);
eventHandled = LGLW_TRUE;
break; break;
case Button3: case Button3:
loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_MBUTTON); loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_MBUTTON);
eventHandled = LGLW_TRUE;
break; break;
case Button4: case Button4:
loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_WHEELUP); loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_WHEELUP);
eventHandled = LGLW_TRUE;
break; break;
case Button5: case Button5:
loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_WHEELDOWN); loc_handle_mousebutton(lglw, LGLW_TRUE/*bPressed*/, LGLW_MOUSE_WHEELDOWN);
eventHandled = LGLW_TRUE;
break; break;
} }
break; break;
@@ -736,21 +752,27 @@ static void loc_eventProc(void *_xevent) {
{ {
default: default:
printf("vstgltest<lglw_linux>: xev ButtonRelease unhandled button: %i\n", btnRelease->button); printf("vstgltest<lglw_linux>: xev ButtonRelease unhandled button: %i\n", btnRelease->button);
eventHandled = LGLW_FALSE;
break; break;
case Button1: case Button1:
loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_LBUTTON); loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_LBUTTON);
eventHandled = LGLW_TRUE;
break; break;
case Button2: case Button2:
loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_RBUTTON); loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_RBUTTON);
eventHandled = LGLW_TRUE;
break; break;
case Button3: case Button3:
loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_MBUTTON); loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_MBUTTON);
eventHandled = LGLW_TRUE;
break; break;
case Button4: case Button4:
loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_WHEELUP); loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_WHEELUP);
eventHandled = LGLW_TRUE;
break; break;
case Button5: case Button5:
loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_WHEELDOWN); loc_handle_mousebutton(lglw, LGLW_FALSE/*bPressed*/, LGLW_MOUSE_WHEELDOWN);
eventHandled = LGLW_TRUE;
break; break;
} }
break; break;
@@ -759,6 +781,7 @@ static void loc_eventProc(void *_xevent) {
printf("vstgltest<lglw_linux>: xev SelectionClear\n"); printf("vstgltest<lglw_linux>: xev SelectionClear\n");
lglw->clipboard.numChars = 0; lglw->clipboard.numChars = 0;
free(lglw->clipboard.data); free(lglw->clipboard.data);
eventHandled = LGLW_TRUE;
break; break;


case SelectionRequest: case SelectionRequest:
@@ -787,9 +810,23 @@ static void loc_eventProc(void *_xevent) {
} }


XSendEvent(lglw->xdsp, cbReq->requestor, True, NoEventMask, (XEvent *)&cbRes); XSendEvent(lglw->xdsp, cbReq->requestor, True, NoEventMask, (XEvent *)&cbRes);
eventHandled = LGLW_TRUE;


break; break;
} }

if(LGLW_FALSE == eventHandled)
{
if(0 == lglw->parent_xwnd)
{
printf("lglw_linux:loc_eventProc: no parent window to send events to");
XSendEvent(lglw->xdsp, InputFocus, True/*propgate*/, NoEventMask, xev);
}
else
{
XSendEvent(lglw->xdsp, lglw->parent_xwnd, True/*propgate*/, NoEventMask, xev);
}
}
} }
} }
} }


Loading…
Cancel
Save