Exemplo n.º 1
0
static BOOL xf_event_KeyPress(xfContext* xfc, XEvent* event, BOOL app)
{
	KeySym keysym;
	char str[256];

	XLookupString((XKeyEvent*) event, str, sizeof(str), &keysym, NULL);

	xf_kbd_set_keypress(xfc, event->xkey.keycode, keysym);

	if (keysym == XK_Insert 
			&& ((xf_kbd_key_pressed(xfc, XK_Alt_L) || xf_kbd_key_pressed(xfc, XK_Alt_R))
			&& (xf_kbd_key_pressed(xfc, XK_Control_L) || xf_kbd_key_pressed(xfc, XK_Control_R)))
		)
		{
			// Ctrl-Alt-Insert: translate to Ctrl-Alt-Delete 
			xf_kbd_send_key(xfc, TRUE, (BYTE)0x77);
			return TRUE;
		}

	if (xfc->fullscreen_toggle && xf_kbd_handle_special_keys(xfc, keysym))
		return TRUE;

	xf_kbd_send_key(xfc, TRUE, event->xkey.keycode);

	return TRUE;
}
Exemplo n.º 2
0
static BOOL xf_event_KeyPress(xfInfo* xfi, XEvent* event, BOOL app)
{
	KeySym keysym;
	char str[256];

	XLookupString((XKeyEvent*) event, str, sizeof(str), &keysym, NULL);

	xf_kbd_set_keypress(xfi, event->xkey.keycode, keysym);

	if (xfi->fullscreen_toggle && xf_kbd_handle_special_keys(xfi, keysym))
		return TRUE;

	xf_kbd_send_key(xfi, TRUE, event->xkey.keycode);

	return TRUE;
}
Exemplo n.º 3
0
static BOOL xf_event_KeyRelease(xfInfo* xfi, XEvent* event, BOOL app)
{
	XEvent next_event;

	if (XPending(xfi->display))
	{
		ZeroMemory(&next_event, sizeof(next_event));
		XPeekEvent(xfi->display, &next_event);

		if (next_event.type == KeyPress)
		{
			if (next_event.xkey.keycode == event->xkey.keycode)
				return TRUE;
		}
	}

	xf_kbd_unset_keypress(xfi, event->xkey.keycode);
	xf_kbd_send_key(xfi, FALSE, event->xkey.keycode);

	return TRUE;
}
Exemplo n.º 4
0
boolean xf_event_KeyRelease(xfInfo* xfi, XEvent* event, boolean app)
{
	XEvent next_event;

	if (XPending(xfi->display))
	{
		memset(&next_event, 0, sizeof(next_event));
		XPeekEvent(xfi->display, &next_event);

		if (next_event.type == KeyPress)
		{
			if (next_event.xkey.keycode == event->xkey.keycode)
				return true;
		}
	}

	xf_kbd_unset_keypress(xfi, event->xkey.keycode);
	xf_kbd_send_key(xfi, false, event->xkey.keycode);

	return true;
}