--- sourceforge.net/trunk/rdesktop/xwin.c 2002/08/26 17:14:04 102 +++ sourceforge.net/trunk/rdesktop/xwin.c 2002/09/11 11:45:20 118 @@ -247,7 +247,7 @@ } } -static BOOL +BOOL get_key_state(int keysym) { int keysymMask = 0, modifierpos, key; @@ -429,9 +429,6 @@ attribs.override_redirect = False; } - width = (width + 3) & ~3; /* make width a multiple of 32 bits */ - - input_mask = KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | VisibilityChangeMask | FocusChangeMask; @@ -577,32 +574,20 @@ str, sizeof(str), &keysym, NULL); } - if (keysym == XK_Break) /* toggle full screen */ - { - if (get_key_state(XK_Alt_L) || get_key_state(XK_Alt_R)) - { - toggle_fullscreen(); - break; - } - } - ksname = get_ksname(keysym); DEBUG_KBD(("\nKeyPress for (keysym 0x%lx, %s)\n", keysym, ksname)); - if (inhibit_key(keysym)) - { - DEBUG_KBD(("Inhibiting key\n")); + if (handle_special_keys(keysym, ev_time, True)) break; - } tr = xkeymap_translate_key(keysym, xevent.xkey.keycode, xevent.xkey.state); - ensure_remote_modifiers(ev_time, tr); - if (tr.scancode == 0) break; + ensure_remote_modifiers(ev_time, tr); + rdp_send_scancode(ev_time, RDP_KEYPRESS, tr.scancode); break; case KeyRelease: @@ -613,7 +598,7 @@ DEBUG_KBD(("\nKeyRelease for (keysym 0x%lx, %s)\n", keysym, ksname)); - if (inhibit_key(keysym)) + if (handle_special_keys(keysym, ev_time, False)) break; tr = xkeymap_translate_key(keysym,