diff --git a/client/X11/xf_disp.c b/client/X11/xf_disp.c index 28223a543..cbeed28e5 100644 --- a/client/X11/xf_disp.c +++ b/client/X11/xf_disp.c @@ -147,7 +147,7 @@ static BOOL xf_disp_sendResize(xfDispContext* xfDisp) xfDisp->lastSentDate = GetTickCount64(); const UINT32 mcount = freerdp_settings_get_uint32(settings, FreeRDP_MonitorCount); - if (xfc->fullscreen && (mcount > 0)) + if (mcount > 1) { const rdpMonitor* monitors = freerdp_settings_get_pointer(settings, FreeRDP_MonitorDefArray); @@ -278,7 +278,7 @@ static void xf_disp_OnTimer(void* context, const TimerEventArgs* e) if (!xf_disp_check_context(context, &xfc, &xfDisp, &settings)) return; - if (!xfDisp->activated || xfc->fullscreen) + if (!xfDisp->activated) return; xf_disp_sendResize(xfDisp); diff --git a/client/X11/xf_event.c b/client/X11/xf_event.c index fb112b987..5c6b08b06 100644 --- a/client/X11/xf_event.c +++ b/client/X11/xf_event.c @@ -1216,7 +1216,24 @@ BOOL xf_event_process(freerdp* instance, const XEvent* event) } if (xf_floatbar_is_locked(floatbar)) - return TRUE; + { + /* Filter input events, floatbar is locked do not forward anything to the session */ + switch (event->type) + { + case MotionNotify: + case ButtonPress: + case ButtonRelease: + case KeyPress: + case KeyRelease: + case FocusIn: + case FocusOut: + case EnterNotify: + case LeaveNotify: + return TRUE; + default: + break; + } + } } xf_event_execute_action_script(xfc, event);