diff --git a/Telegram/SourceFiles/platform/win/main_window_win.cpp b/Telegram/SourceFiles/platform/win/main_window_win.cpp index 4595fd1d7..2a952cd1b 100644 --- a/Telegram/SourceFiles/platform/win/main_window_win.cpp +++ b/Telegram/SourceFiles/platform/win/main_window_win.cpp @@ -115,7 +115,8 @@ struct MainWindow::Private { MainWindow::MainWindow(not_null controller) : Window::MainWindow(controller) , _private(std::make_unique()) -, ps_tbHider_hWnd(createTaskbarHider()) { +, ps_tbHider_hWnd(createTaskbarHider()) +, ps_tbHider(QWindow::fromWinId(WId(ps_tbHider_hWnd))) { QCoreApplication::instance()->installNativeEventFilter( EventFilter::CreateInstance(this)); @@ -238,6 +239,7 @@ void MainWindow::workmodeUpdated(Core::Settings::WorkMode mode) { HWND psOwner = (HWND)GetWindowLongPtr(ps_hWnd, GWLP_HWNDPARENT); if (psOwner) { SetWindowLongPtr(ps_hWnd, GWLP_HWNDPARENT, 0); + windowHandle()->setTransientParent(nullptr); psRefreshTaskbarIcon(); } } break; @@ -247,6 +249,7 @@ void MainWindow::workmodeUpdated(Core::Settings::WorkMode mode) { HWND psOwner = (HWND)GetWindowLongPtr(ps_hWnd, GWLP_HWNDPARENT); if (!psOwner) { SetWindowLongPtr(ps_hWnd, GWLP_HWNDPARENT, (LONG_PTR)ps_tbHider_hWnd); + windowHandle()->setTransientParent(ps_tbHider); } } break; @@ -260,6 +263,7 @@ void MainWindow::workmodeUpdated(Core::Settings::WorkMode mode) { HWND psOwner = (HWND)GetWindowLongPtr(ps_hWnd, GWLP_HWNDPARENT); if (psOwner) { SetWindowLongPtr(ps_hWnd, GWLP_HWNDPARENT, 0); + windowHandle()->setTransientParent(nullptr); psRefreshTaskbarIcon(); } } break; @@ -533,6 +537,7 @@ MainWindow::~MainWindow() { } psDestroyIcons(); + if (ps_tbHider) delete ps_tbHider; if (ps_tbHider_hWnd) DestroyWindow(ps_tbHider_hWnd); EventFilter::Destroy(); diff --git a/Telegram/SourceFiles/platform/win/main_window_win.h b/Telegram/SourceFiles/platform/win/main_window_win.h index 34ef24676..dc7eb211e 100644 --- a/Telegram/SourceFiles/platform/win/main_window_win.h +++ b/Telegram/SourceFiles/platform/win/main_window_win.h @@ -87,6 +87,7 @@ private: HWND ps_hWnd = nullptr; HWND ps_tbHider_hWnd = nullptr; + QWindow *ps_tbHider = nullptr; HICON ps_iconBig = nullptr; HICON ps_iconSmall = nullptr; HICON ps_iconOverlay = nullptr;