From a2c2089c8d97b4910d4287c14c82e20d33366c24 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 29 Jan 2022 21:25:15 +0800 Subject: ... --- include/cru/win/gui/Window.hpp | 2 ++ src/win/gui/Window.cpp | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/include/cru/win/gui/Window.hpp b/include/cru/win/gui/Window.hpp index d0ea5b41..75530596 100644 --- a/include/cru/win/gui/Window.hpp +++ b/include/cru/win/gui/Window.hpp @@ -62,6 +62,8 @@ class CRU_WIN_GUI_API WinNativeWindow : public WinNativeResource, void SetCursor(std::shared_ptr cursor) override; + void SetToForeground() override; + IEvent* CreateEvent() override { return &create_event_; } IEvent* DestroyEvent() override { return &destroy_event_; } IEvent* PaintEvent() override { return &paint_event_; } diff --git a/src/win/gui/Window.cpp b/src/win/gui/Window.cpp index 2bd29476..f30b4e59 100644 --- a/src/win/gui/Window.cpp +++ b/src/win/gui/Window.cpp @@ -281,6 +281,14 @@ void WinNativeWindow::SetCursor(std::shared_ptr cursor) { } } +void WinNativeWindow::SetToForeground() { + if (hwnd_) { + if (!::SetForegroundWindow(hwnd_)) + throw Win32Error(::GetLastError(), + u"Failed to set window to foreground."); + } +} + IInputMethodContext* WinNativeWindow::GetInputMethodContext() { return static_cast(input_method_context_.get()); } -- cgit v1.2.3