Allow non-activatable window on Windows.
This commit is contained in:
parent
4ec9e32f8f
commit
26e6a3050c
4 changed files with 22 additions and 0 deletions
|
|
@ -43,5 +43,8 @@ bool TranslucentWindowsSupported(QPoint globalPosition) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IgnoreAllActivation(not_null<QWidget*> widget) {
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Platform
|
} // namespace Platform
|
||||||
} // namespace Ui
|
} // namespace Ui
|
||||||
|
|
|
||||||
|
|
@ -91,5 +91,8 @@ void DrainMainQueue() {
|
||||||
_dispatch_main_queue_callback_4CF(nullptr);
|
_dispatch_main_queue_callback_4CF(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IgnoreAllActivation(not_null<QWidget*> widget) {
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Platform
|
} // namespace Platform
|
||||||
} // namespace Ui
|
} // namespace Ui
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ void ReInitOnTopPanel(not_null<QWidget*> panel);
|
||||||
void UpdateOverlayed(not_null<QWidget*> widget);
|
void UpdateOverlayed(not_null<QWidget*> widget);
|
||||||
void ShowOverAll(not_null<QWidget*> widget, bool canFocus = true);
|
void ShowOverAll(not_null<QWidget*> widget, bool canFocus = true);
|
||||||
void BringToBack(not_null<QWidget*> widget);
|
void BringToBack(not_null<QWidget*> widget);
|
||||||
|
void IgnoreAllActivation(not_null<QWidget*> widget);
|
||||||
|
|
||||||
[[nodiscard]] constexpr bool UseMainQueueGeneric();
|
[[nodiscard]] constexpr bool UseMainQueueGeneric();
|
||||||
void DrainMainQueue(); // Needed only if UseMainQueueGeneric() is false.
|
void DrainMainQueue(); // Needed only if UseMainQueueGeneric() is false.
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
#include <QtWidgets/QApplication>
|
#include <QtWidgets/QApplication>
|
||||||
|
|
||||||
|
#include "base/platform/win/base_windows_h.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
namespace Platform {
|
namespace Platform {
|
||||||
|
|
||||||
|
|
@ -27,5 +29,18 @@ void UpdateOverlayed(not_null<QWidget*> widget) {
|
||||||
if (!wv) widget->setAttribute(Qt::WA_WState_Visible, false);
|
if (!wv) widget->setAttribute(Qt::WA_WState_Visible, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IgnoreAllActivation(not_null<QWidget*> widget) {
|
||||||
|
const auto handle = reinterpret_cast<HWND>(widget->winId());
|
||||||
|
Assert(handle != nullptr);
|
||||||
|
|
||||||
|
ShowWindow(handle, SW_HIDE);
|
||||||
|
const auto style = GetWindowLong(handle, GWL_EXSTYLE);
|
||||||
|
SetWindowLong(
|
||||||
|
handle,
|
||||||
|
GWL_EXSTYLE,
|
||||||
|
style | WS_EX_NOACTIVATE | WS_EX_APPWINDOW);
|
||||||
|
ShowWindow(handle, SW_SHOW);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Platform
|
} // namespace Platform
|
||||||
} // namespace Ui
|
} // namespace Ui
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue