247 |
} |
} |
248 |
} |
} |
249 |
|
|
250 |
static BOOL |
BOOL |
251 |
get_key_state(int keysym) |
get_key_state(int keysym) |
252 |
{ |
{ |
253 |
int keysymMask = 0, modifierpos, key; |
int keysymMask = 0, modifierpos, key; |
429 |
attribs.override_redirect = False; |
attribs.override_redirect = False; |
430 |
} |
} |
431 |
|
|
|
width = (width + 3) & ~3; /* make width a multiple of 32 bits */ |
|
|
|
|
|
|
|
432 |
input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | |
input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | |
433 |
VisibilityChangeMask | FocusChangeMask; |
VisibilityChangeMask | FocusChangeMask; |
434 |
|
|
574 |
str, sizeof(str), &keysym, NULL); |
str, sizeof(str), &keysym, NULL); |
575 |
} |
} |
576 |
|
|
|
if (keysym == XK_Break) /* toggle full screen */ |
|
|
{ |
|
|
if (get_key_state(XK_Alt_L) || get_key_state(XK_Alt_R)) |
|
|
{ |
|
|
toggle_fullscreen(); |
|
|
break; |
|
|
} |
|
|
} |
|
|
|
|
577 |
ksname = get_ksname(keysym); |
ksname = get_ksname(keysym); |
578 |
DEBUG_KBD(("\nKeyPress for (keysym 0x%lx, %s)\n", keysym, ksname)); |
DEBUG_KBD(("\nKeyPress for (keysym 0x%lx, %s)\n", keysym, ksname)); |
579 |
|
|
580 |
if (inhibit_key(keysym)) |
if (handle_special_keys(keysym, ev_time, True)) |
|
{ |
|
|
DEBUG_KBD(("Inhibiting key\n")); |
|
581 |
break; |
break; |
|
} |
|
582 |
|
|
583 |
tr = xkeymap_translate_key(keysym, |
tr = xkeymap_translate_key(keysym, |
584 |
xevent.xkey.keycode, xevent.xkey.state); |
xevent.xkey.keycode, xevent.xkey.state); |
585 |
|
|
|
ensure_remote_modifiers(ev_time, tr); |
|
|
|
|
586 |
if (tr.scancode == 0) |
if (tr.scancode == 0) |
587 |
break; |
break; |
588 |
|
|
589 |
|
ensure_remote_modifiers(ev_time, tr); |
590 |
|
|
591 |
rdp_send_scancode(ev_time, RDP_KEYPRESS, tr.scancode); |
rdp_send_scancode(ev_time, RDP_KEYPRESS, tr.scancode); |
592 |
break; |
break; |
593 |
case KeyRelease: |
case KeyRelease: |
598 |
DEBUG_KBD(("\nKeyRelease for (keysym 0x%lx, %s)\n", keysym, |
DEBUG_KBD(("\nKeyRelease for (keysym 0x%lx, %s)\n", keysym, |
599 |
ksname)); |
ksname)); |
600 |
|
|
601 |
if (inhibit_key(keysym)) |
if (handle_special_keys(keysym, ev_time, False)) |
602 |
break; |
break; |
603 |
|
|
604 |
tr = xkeymap_translate_key(keysym, |
tr = xkeymap_translate_key(keysym, |