diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-09-04 15:34:07 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-09-04 15:34:13 +0200 |
| commit | 9f3a64481ecb277de6775efbb0f3d8d7648a610c (patch) | |
| tree | 3cb4632d376e389cf2bfad882a71627e5ee95182 /src/layout/DwindleLayout.hpp | |
| parent | 69439871e60eeb16993fd6044843d14d2191c9fb (diff) | |
dwindle: add proper movement for window move binds
ditches the "movewindow = swapwindow" mechanism. Fixes #2804
Diffstat (limited to 'src/layout/DwindleLayout.hpp')
| -rw-r--r-- | src/layout/DwindleLayout.hpp | 21 |
1 files changed, 13 insertions, 8 deletions
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 <deque> #include "../render/decorations/CHyprGroupBarDecoration.hpp" #include <array> +#include <optional> 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<Vector2D> 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; }; |
