w = event->xexpose.width;
h = event->xexpose.height;
- if (app != TRUE)
+ if (!app)
{
XCopyArea(xfi->display, xfi->primary, xfi->window->handle, xfi->gc, x, y, w, h, x, y);
}
}
xf_kbd_focus_in(xfi);
- if (app != TRUE)
+ if (!app)
xf_cliprdr_check_owner(xfi);
return TRUE;
static BOOL xf_event_EnterNotify(xfInfo* xfi, XEvent* event, BOOL app)
{
- if (app != TRUE)
+ if (!app)
{
xfi->mouse_active = TRUE;
static BOOL xf_event_LeaveNotify(xfInfo* xfi, XEvent* event, BOOL app)
{
- if (app != TRUE)
+ if (!app)
{
xfi->mouse_active = FALSE;
XUngrabKeyboard(xfi->display, CurrentTime);
rdpUpdate* update = xfi->instance->update;
rdpRail* rail = ((rdpContext*) xfi->context)->rail;
- if (app != TRUE)
+ if (!app)
{
if (xfi->suppress_output == TRUE)
{
xf_kbd_release_all_keypress(xfi);
- if (app != TRUE)
+ if (!app)
{
if (xfi->suppress_output == FALSE)
{
static BOOL xf_event_SelectionNotify(xfInfo* xfi, XEvent* event, BOOL app)
{
- if (app != TRUE)
+ if (!app)
{
if (xf_cliprdr_process_selection_notify(xfi, event))
return TRUE;
static BOOL xf_event_SelectionRequest(xfInfo* xfi, XEvent* event, BOOL app)
{
- if (app != TRUE)
+ if (!app)
{
if (xf_cliprdr_process_selection_request(xfi, event))
return TRUE;
static BOOL xf_event_SelectionClear(xfInfo* xfi, XEvent* event, BOOL app)
{
- if (app != TRUE)
+ if (!app)
{
if (xf_cliprdr_process_selection_clear(xfi, event))
return TRUE;
rdpWindow* window;
window = xf_rdpWindowFromWindow(xfi, event->xproperty.window);
+
if (window == NULL)
- {
return TRUE;
- }
if ((((Atom)event->xproperty.atom == xfi->_NET_WM_STATE) && (event->xproperty.state != PropertyDelete)) ||
(((Atom)event->xproperty.atom == xfi->WM_STATE) && (event->xproperty.state != PropertyDelete)))
status = xf_GetWindowProperty(xfi, event->xproperty.window,
xfi->_NET_WM_STATE, 12, &nitems, &bytes, &prop);
- if (status != TRUE) {
+ if (!status)
+ {
DEBUG_X11_LMS("No return _NET_WM_STATE, window is not maximized");
}
status = xf_GetWindowProperty(xfi, event->xproperty.window,
xfi->WM_STATE, 1, &nitems, &bytes, &prop);
- if (status != TRUE)
+ if (!status)
{
DEBUG_X11_LMS("No return WM_STATE, window is not minimized");
}
}
- if (app != TRUE)
+ if (!app)
{
if (xf_cliprdr_process_property_notify(xfi, event))
return TRUE;
static BOOL xf_event_suppress_events(xfInfo *xfi, rdpWindow *window, XEvent*event)
{
- if (! xfi->remote_app)
+ if (!xfi->remote_app)
return FALSE;
switch (xfi->window->local_move.state)
void xf_kbd_clear(xfInfo* xfi)
{
- memset(xfi->pressed_keys, 0, 256 * sizeof(BOOL));
+ ZeroMemory(xfi->pressed_keys, 256 * sizeof(BOOL));
}
void xf_kbd_set_keypress(xfInfo* xfi, BYTE keycode, KeySym keysym)
Window wdummy;
UINT32 state = 0;
- if (xfi->remote_app != TRUE)
+ if (!xfi->remote_app)
{
XQueryPointer(xfi->display, xfi->window->handle,
&wdummy, &wdummy, &dummy, &dummy, &dummy, &dummy, &state);
for (modifierpos = 0; modifierpos < 8; modifierpos++)
{
offset = xfi->modifier_map->max_keypermod * modifierpos;
+
for (key = 0; key < xfi->modifier_map->max_keypermod; key++)
{
if (xfi->modifier_map->modifiermap[offset + key] == keycode)
void* xf_input_thread(void* arg)
{
- int status;
xfInfo* xfi;
HANDLE event;
XEvent xevent;
+ int pending_status = 1;
+ int process_status = 1;
freerdp* instance = (freerdp*) arg;
xfi = ((xfContext*) instance->context)->xfi;
while (WaitForSingleObject(event, INFINITE) == WAIT_OBJECT_0)
{
- xf_lock_x11(xfi);
-
- status = XPending(xfi->display);
-
- xf_unlock_x11(xfi);
-
- while (status > 0)
+ do
{
- ZeroMemory(&xevent, sizeof(xevent));
-
xf_lock_x11(xfi);
- XNextEvent(xfi->display, &xevent);
- status = xf_event_process(instance, &xevent);
+ pending_status = XPending(xfi->display);
xf_unlock_x11(xfi);
- status--;
+ if (pending_status)
+ {
+ xf_lock_x11(xfi);
+
+ ZeroMemory(&xevent, sizeof(xevent));
+ XNextEvent(xfi->display, &xevent);
+ process_status = xf_event_process(instance, &xevent);
+
+ xf_unlock_x11(xfi);
+
+ if (!process_status)
+ break;
+ }
}
+ while (pending_status);
+
+ if (!process_status)
+ break;
}
printf("Closed from X\n");
break;
timeout.tv_sec = 0;
- timeout.tv_usec = 0;
+ timeout.tv_usec = 100;
- select_status = select(max_fds + 1, &rfds_set, &wfds_set, NULL, NULL);
+ select_status = select(max_fds + 1, &rfds_set, &wfds_set, NULL, &timeout);
if (select_status == 0)
{