diff --git a/client/X11/xf_event.c b/client/X11/xf_event.c index 70c3aee98..061a8790c 100644 --- a/client/X11/xf_event.c +++ b/client/X11/xf_event.c @@ -900,7 +900,7 @@ static BOOL xf_event_PropertyNotify(xfContext* xfc, XEvent* event, BOOL app) xf_rail_send_client_system_command(xfc, appWindow->windowId, SC_MINIMIZE); } else if (!minimized && !maxVert && !maxHorz - && (appWindow->rail_state != WINDOW_SHOW)) + && (appWindow->rail_state != WINDOW_SHOW) && (appWindow->rail_state != WINDOW_HIDE)) { appWindow->rail_state = WINDOW_SHOW; xf_rail_send_client_system_command(xfc, appWindow->windowId, SC_RESTORE); diff --git a/client/X11/xf_window.c b/client/X11/xf_window.c index a86ad4c6f..dfd1fc27a 100644 --- a/client/X11/xf_window.c +++ b/client/X11/xf_window.c @@ -988,6 +988,8 @@ void xf_ShowWindow(xfContext* xfc, xfAppWindow* appWindow, BYTE state) if (appWindow->is_transient) xf_SetWindowUnlisted(xfc, appWindow->handle); + XMapWindow(xfc->display, appWindow->handle); + break; }