diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-02 13:02:16 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-02 13:02:16 +0200 |
| commit | 4db773b1e7d51cd008ae24f4c457710e8360fef7 (patch) | |
| tree | ea4eef4525593111bc8c8fcfe17445a6f8b727f6 /src/Compositor.hpp | |
| parent | ca2459e56331d7522a5e05bb258e06ad30388968 (diff) | |
Fix popups focus on native GDK
Diffstat (limited to 'src/Compositor.hpp')
| -rw-r--r-- | src/Compositor.hpp | 5 |
1 files changed, 4 insertions, 1 deletions
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<SLayerSurface*>*, 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(); |
