#ifdef _WIN32 #include #include #include #include template bool is_window_visible(const QWidget* widget) { const QWidget* window = widget->window(); if (!window) return true; const QPoint p = widget->mapToGlobal(widget->pos()); const QSize s = widget->size(); POINT pt = { p.x() + s.width()/2, p.y() + s.height()/2 }; return WindowFromPoint(pt) == (HWND) widget->winId(); } #else template bool is_window_visible(const QWidget* widget) { return true; } #endif