Change fullscreen toggle key to Ctrl-Alt-Enter.

git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@243 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
Matt Chapman 2002-10-24 08:48:51 +00:00
parent 55fbfd2cec
commit 817a83c1d7

View File

@ -240,60 +240,59 @@ handle_special_keys(uint32 keysym, unsigned int state, uint32 ev_time, BOOL pres
{ {
switch (keysym) switch (keysym)
{ {
case XK_Break: case XK_Return:
case XK_Pause:
if ((get_key_state(state, XK_Alt_L) || get_key_state(state, XK_Alt_R)) if ((get_key_state(state, XK_Alt_L) || get_key_state(state, XK_Alt_R))
&& (get_key_state(state, XK_Control_L) && (get_key_state(state, XK_Control_L)
|| get_key_state(state, XK_Control_R))) || get_key_state(state, XK_Control_R)))
{ {
/* Ctrl-Alt-Break: toggle full screen */ /* Ctrl-Alt-Enter: toggle full screen */
if (pressed) if (pressed)
xwin_toggle_fullscreen(); xwin_toggle_fullscreen();
return True;
}
break;
} case XK_Break:
else if (keysym == XK_Break) /* Send Break sequence E0 46 E0 C6 */
if (pressed)
{ {
/* Send Break sequence E0 46 E0 C6 */ rdp_send_scancode(ev_time, RDP_KEYPRESS,
if (pressed) (SCANCODE_EXTENDED | 0x46));
{ rdp_send_scancode(ev_time, RDP_KEYPRESS,
rdp_send_scancode(ev_time, RDP_KEYPRESS, (SCANCODE_EXTENDED | 0xc6));
(SCANCODE_EXTENDED | 0x46));
rdp_send_scancode(ev_time, RDP_KEYPRESS,
(SCANCODE_EXTENDED | 0xc6));
}
/* No break sequence */
} }
else /* XK_Pause */ /* No release sequence */
return True;
case XK_Pause:
/* According to MS Keyboard Scan Code
Specification, pressing Pause should result
in E1 1D 45 E1 9D C5. I'm not exactly sure
of how this is supposed to be sent via
RDP. The code below seems to work, but with
the side effect that Left Ctrl stays
down. Therefore, we release it when Pause
is released. */
if (pressed)
{ {
/* According to MS Keyboard Scan Code rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS,
Specification, pressing Pause should result 0xe1, 0);
in E1 1D 45 E1 9D C5. I'm not exactly sure rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS,
of how this is supposed to be sent via 0x1d, 0);
RDP. The code below seems to work, but with rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS,
the side effect that Left Ctrl stays 0x45, 0);
down. Therefore, we release it when Pause rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS,
is released. */ 0xe1, 0);
if (pressed) rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS,
{ 0x9d, 0);
rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS, rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS,
0xe1, 0); 0xc5, 0);
rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS, }
0x1d, 0); else
rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS, {
0x45, 0); /* Release Left Ctrl */
rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS, rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYRELEASE,
0xe1, 0); 0x1d, 0);
rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS,
0x9d, 0);
rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYPRESS,
0xc5, 0);
}
else
{
/* Release Left Ctrl */
rdp_send_input(ev_time, RDP_INPUT_SCANCODE, RDP_KEYRELEASE,
0x1d, 0);
}
} }
return True; return True;