diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index 828caaac782..c3bf788035e 100755 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -396,9 +396,16 @@ setOrder( GHOST_TWindowOrder order ){ if (order == GHOST_kWindowOrderTop) { + XWindowAttributes attr; + XRaiseWindow(m_display,m_window); - XSetInputFocus(m_display, m_window, RevertToPointerRoot, - CurrentTime); + + XGetWindowAttributes(m_display, m_window, &attr); + + /* iconized windows give bad match error */ + if (attr.map_state == IsViewable) + XSetInputFocus(m_display, m_window, RevertToPointerRoot, + CurrentTime); XFlush(m_display); } else if (order == GHOST_kWindowOrderBottom) { XLowerWindow(m_display,m_window);