23#include <freerdp/window.h>
29 bool clickThrough =
false;
39inline SdlRailWindowStyle classifySdlRailWindowStyle(uint32_t style, uint32_t exStyle,
bool owned)
42 const bool captioned = (style & WS_CAPTION) == WS_CAPTION;
43 const bool isDialogOrApp =
45 ((style & (WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)) != 0) ||
46 ((exStyle & WS_EX_APPWINDOW) != 0);
47 const bool isToolOrPopup =
48 ((exStyle & (WS_EX_NOACTIVATE | WS_EX_TOOLWINDOW)) != 0) || ((style & WS_POPUP) != 0);
49 const bool noActivate =
50 ((exStyle & WS_EX_NOACTIVATE) != 0) && ((exStyle & WS_EX_APPWINDOW) == 0);
51 const bool unownedPopup =
52 !owned && !captioned && ((style & WS_POPUP) != 0) &&
53 ((exStyle & (WS_EX_TOOLWINDOW | WS_EX_APPWINDOW)) == WS_EX_TOOLWINDOW);
56 constexpr uint32_t overlayEx = WS_EX_LAYERED | WS_EX_TOOLWINDOW | WS_EX_TOPMOST;
57 const bool overlay = ((exStyle & overlayEx) == overlayEx) &&
58 ((exStyle & (WS_EX_NOACTIVATE | WS_EX_APPWINDOW)) == 0) && !captioned;
60 return { noActivate || overlay || unownedPopup || (isToolOrPopup && !isDialogOrApp),
61 ((exStyle & WS_EX_LAYERED) != 0) && !isDialogOrApp, (exStyle & WS_EX_TRANSPARENT) != 0,