218 |
display = XOpenDisplay(NULL); |
display = XOpenDisplay(NULL); |
219 |
if (display == NULL) |
if (display == NULL) |
220 |
{ |
{ |
221 |
error("Failed to open display\n"); |
error("Failed to open display: %s\n", XDisplayName(NULL)); |
222 |
return False; |
return False; |
223 |
} |
} |
224 |
|
|
345 |
} |
} |
346 |
|
|
347 |
input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | |
input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | |
348 |
VisibilityChangeMask | FocusChangeMask; |
VisibilityChangeMask | FocusChangeMask | LeaveWindowMask; |
349 |
|
|
350 |
if (sendmotion) |
if (sendmotion) |
351 |
input_mask |= PointerMotionMask; |
input_mask |= PointerMotionMask; |
352 |
if (ownbackstore) |
if (ownbackstore) |
353 |
input_mask |= ExposureMask; |
input_mask |= ExposureMask; |
354 |
|
if (fullscreen) |
355 |
|
input_mask |= EnterWindowMask; |
356 |
|
|
357 |
if (IM != NULL) |
if (IM != NULL) |
358 |
{ |
{ |
374 |
} |
} |
375 |
while (xevent.type != VisibilityNotify); |
while (xevent.type != VisibilityNotify); |
376 |
|
|
|
if (fullscreen) |
|
|
XSetInputFocus(display, wnd, RevertToPointerRoot, CurrentTime); |
|
|
|
|
377 |
return True; |
return True; |
378 |
} |
} |
379 |
|
|
530 |
XUngrabKeyboard(display, CurrentTime); |
XUngrabKeyboard(display, CurrentTime); |
531 |
break; |
break; |
532 |
|
|
533 |
|
case EnterNotify: |
534 |
|
/* we only register for this event when in fullscreen mode */ |
535 |
|
XSetInputFocus(display, wnd, RevertToPointerRoot, CurrentTime); |
536 |
|
break; |
537 |
|
|
538 |
|
case LeaveNotify: |
539 |
|
XUngrabKeyboard(display, CurrentTime); |
540 |
|
break; |
541 |
|
|
542 |
case Expose: |
case Expose: |
543 |
XCopyArea(display, backstore, wnd, gc, |
XCopyArea(display, backstore, wnd, gc, |
544 |
xevent.xexpose.x, xevent.xexpose.y, |
xevent.xexpose.x, xevent.xexpose.y, |