summaryrefslogtreecommitdiff
path: root/src/layout/DwindleLayout.hpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-09-04 15:34:07 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-09-04 15:34:13 +0200
commit9f3a64481ecb277de6775efbb0f3d8d7648a610c (patch)
tree3cb4632d376e389cf2bfad882a71627e5ee95182 /src/layout/DwindleLayout.hpp
parent69439871e60eeb16993fd6044843d14d2191c9fb (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.hpp21
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;
};