diff --git a/ui/platform/linux/ui_utility_linux.cpp b/ui/platform/linux/ui_utility_linux.cpp index bfcc482..b61e47b 100644 --- a/ui/platform/linux/ui_utility_linux.cpp +++ b/ui/platform/linux/ui_utility_linux.cpp @@ -184,6 +184,17 @@ bool TranslucentWindowsSupported(QPoint globalPosition) { void IgnoreAllActivation(not_null widget) { } +void ClearTransientParent(not_null widget) { +#ifndef DESKTOP_APP_DISABLE_X11_INTEGRATION + if (::Platform::IsX11()) { + xcb_delete_property( + base::Platform::XCB::GetConnectionFromQt(), + widget->windowHandle()->winId(), + XCB_ATOM_WM_TRANSIENT_FOR); + } +#endif // !DESKTOP_APP_DISABLE_X11_INTEGRATION +} + bool WindowExtentsSupported() { #ifdef DESKTOP_APP_QT_PATCHED if (::Platform::IsWayland()) { diff --git a/ui/platform/mac/ui_utility_mac.h b/ui/platform/mac/ui_utility_mac.h index 97f3c11..070f3ee 100644 --- a/ui/platform/mac/ui_utility_mac.h +++ b/ui/platform/mac/ui_utility_mac.h @@ -20,6 +20,9 @@ inline bool TranslucentWindowsSupported(QPoint globalPosition) { inline void UpdateOverlayed(not_null widget) { } +inline void ClearTransientParent(not_null widget) { +} + inline constexpr bool UseMainQueueGeneric() { return ::Platform::IsMacStoreBuild(); } diff --git a/ui/platform/ui_platform_utility.h b/ui/platform/ui_platform_utility.h index 40dcdff..3360418 100644 --- a/ui/platform/ui_platform_utility.h +++ b/ui/platform/ui_platform_utility.h @@ -28,6 +28,7 @@ void UpdateOverlayed(not_null widget); void ShowOverAll(not_null widget, bool canFocus = true); void BringToBack(not_null widget); void IgnoreAllActivation(not_null widget); +void ClearTransientParent(not_null widget); [[nodiscard]] constexpr bool UseMainQueueGeneric(); void DrainMainQueue(); // Needed only if UseMainQueueGeneric() is false. diff --git a/ui/platform/win/ui_utility_win.h b/ui/platform/win/ui_utility_win.h index d836b49..e517414 100644 --- a/ui/platform/win/ui_utility_win.h +++ b/ui/platform/win/ui_utility_win.h @@ -38,6 +38,9 @@ inline void ShowOverAll(not_null widget, bool canFocus) { inline void BringToBack(not_null widget) { } +inline void ClearTransientParent(not_null widget) { +} + inline constexpr bool UseMainQueueGeneric() { return true; }