From 9f3a64481ecb277de6775efbb0f3d8d7648a610c Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 4 Sep 2023 15:34:07 +0200 Subject: dwindle: add proper movement for window move binds ditches the "movewindow = swapwindow" mechanism. Fixes #2804 --- src/layout/DwindleLayout.hpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'src/layout/DwindleLayout.hpp') diff --git a/src/layout/DwindleLayout.hpp b/src/layout/DwindleLayout.hpp index efb3fc5d..a901e4da 100644 --- a/src/layout/DwindleLayout.hpp +++ b/src/layout/DwindleLayout.hpp @@ -5,11 +5,13 @@ #include #include "../render/decorations/CHyprGroupBarDecoration.hpp" #include +#include class CHyprDwindleLayout; enum eFullscreenMode : uint8_t; -enum OneTimeFocus { +enum OneTimeFocus +{ UP = 0, RIGHT, DOWN, @@ -60,6 +62,7 @@ class CHyprDwindleLayout : public IHyprLayout { virtual std::any layoutMessage(SLayoutMessageHeader, std::string); virtual SWindowRenderLayoutHints requestRenderHints(CWindow*); virtual void switchWindows(CWindow*, CWindow*); + virtual void moveWindowTo(CWindow*, const std::string& dir); virtual void alterSplitRatio(CWindow*, float, bool); virtual std::string getLayoutName(); virtual void replaceWindowDataWith(CWindow* from, CWindow* to); @@ -77,15 +80,17 @@ class CHyprDwindleLayout : public IHyprLayout { bool yExtent = false; } m_PseudoDragFlags; - int getNodesOnWorkspace(const int&); - void applyNodeDataToWindow(SDwindleNodeData*, bool force = false); - SDwindleNodeData* getNodeFromWindow(CWindow*); - SDwindleNodeData* getFirstNodeOnWorkspace(const int&); - SDwindleNodeData* getMasterNodeOnWorkspace(const int&); + std::optional m_vOverrideFocalPoint; // for onWindowCreatedTiling. - void toggleSplit(CWindow*); + int getNodesOnWorkspace(const int&); + void applyNodeDataToWindow(SDwindleNodeData*, bool force = false); + SDwindleNodeData* getNodeFromWindow(CWindow*); + SDwindleNodeData* getFirstNodeOnWorkspace(const int&); + SDwindleNodeData* getMasterNodeOnWorkspace(const int&); - OneTimeFocus overrideDirection = OneTimeFocus::NOFOCUS; + void toggleSplit(CWindow*); + + OneTimeFocus overrideDirection = OneTimeFocus::NOFOCUS; friend struct SDwindleNodeData; }; -- cgit v1.2.3