From 4db773b1e7d51cd008ae24f4c457710e8360fef7 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sat, 2 Apr 2022 13:02:16 +0200 Subject: Fix popups focus on native GDK --- src/Compositor.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/Compositor.hpp') diff --git a/src/Compositor.hpp b/src/Compositor.hpp index 5d67356d..bca0e3c5 100644 --- a/src/Compositor.hpp +++ b/src/Compositor.hpp @@ -60,6 +60,7 @@ public: void startCompositor(); wlr_surface* m_pLastFocus = nullptr; + wlr_surface* m_pLastFocusWindow = nullptr; SMonitor* m_pLastMonitor = nullptr; SSeat m_sSeat; @@ -71,13 +72,14 @@ public: SMonitor* getMonitorFromVector(const Vector2D&); void removeWindowFromVectorSafe(CWindow*); void focusWindow(CWindow*); - void focusSurface(wlr_surface*); + void focusSurface(wlr_surface*, CWindow* pWindowOwner = nullptr); bool windowExists(CWindow*); bool windowValidMapped(CWindow*); CWindow* vectorToWindow(const Vector2D&); CWindow* vectorToWindowIdeal(const Vector2D&); CWindow* vectorToWindowTiled(const Vector2D&); wlr_surface* vectorToLayerSurface(const Vector2D&, std::list*, Vector2D*); + wlr_surface* vectorWindowToSurface(const Vector2D&, CWindow*, Vector2D& sl); CWindow* windowFromCursor(); CWindow* windowFloatingFromCursor(); SMonitor* getMonitorFromOutput(wlr_output*); @@ -91,6 +93,7 @@ public: void fixXWaylandWindowsOnWorkspace(const int&); CWindow* getFullscreenWindowOnWorkspace(const int&); bool doesSeatAcceptInput(wlr_surface*); + bool isWindowActive(CWindow*); private: void initAllSignals(); -- cgit v1.2.3