From f9bba753952e110ae388126704b7f664be2ce1ad Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Wed, 24 Feb 2021 20:45:43 +0400 Subject: [PATCH] Use custom method to focus main window on X11 --- Telegram/SourceFiles/window/main_window.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/window/main_window.cpp b/Telegram/SourceFiles/window/main_window.cpp index 154f030e45..0c55dcc44f 100644 --- a/Telegram/SourceFiles/window/main_window.cpp +++ b/Telegram/SourceFiles/window/main_window.cpp @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/platform_specific.h" #include "platform/platform_window_title.h" #include "base/platform/base_platform_info.h" +#include "base/platform/base_platform_process.h" #include "ui/platform/ui_platform_utility.h" #include "history/history.h" #include "window/themes/window_theme.h" @@ -314,8 +315,16 @@ void MainWindow::activate() { setWindowState(windowState() & ~Qt::WindowMinimized); setVisible(true); psActivateProcess(); - raise(); - activateWindow(); + // allow to focus even if X11 native code is disabled +#ifndef DESKTOP_APP_DISABLE_X11_INTEGRATION + if (Platform::IsX11()) { + base::Platform::ActivateThisProcessWindow(winId()); + } else +#endif // !DESKTOP_APP_DISABLE_X11_INTEGRATION + { + raise(); + activateWindow(); + } controller().updateIsActiveFocus(); if (wasHidden) { if (const auto session = sessionController()) {