aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJeremy Huang <[email protected]>2023-09-15 14:13:23 -0700
committerGitHub <[email protected]>2023-09-15 22:13:23 +0100
commitcc630c90b5d743b380ff2da741881796ec79e997 (patch)
treeb60dfa4e8d40b1a7e6076760659123a257a41fd7
parentb9b38424b0c431ddb43109e029893765a7422a32 (diff)
downloadHyprland-cc630c90b5d743b380ff2da741881796ec79e997.tar.gz
Hyprland-cc630c90b5d743b380ff2da741881796ec79e997.zip
master: partially revert 0e64dd2e and fix the animation (#3327)
-rw-r--r--src/layout/MasterLayout.cpp6
-rw-r--r--src/layout/MasterLayout.hpp2
2 files changed, 7 insertions, 1 deletions
diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp
index a4ab9d8a..d1b65e59 100644
--- a/src/layout/MasterLayout.cpp
+++ b/src/layout/MasterLayout.cpp
@@ -636,7 +636,7 @@ void CHyprMasterLayout::applyNodeDataToWindow(SMasterNodeData* pNode) {
g_pXWaylandManager->setWindowSize(PWINDOW, calcSize);
}
- if (!*PANIMATE) {
+ if (m_bForceWarps && !*PANIMATE) {
g_pHyprRenderer->damageWindow(PWINDOW);
PWINDOW->m_vRealPosition.warp();
@@ -691,6 +691,8 @@ void CHyprMasterLayout::resizeActiveWindow(const Vector2D& pixResize, eRectCorne
if (getNodesOnWorkspace(PWINDOW->m_iWorkspaceID) == 1 && !centered)
return;
+ m_bForceWarps = true;
+
switch (orientation) {
case ORIENTATION_LEFT: delta = pixResize.x / PMONITOR->vecSize.x; break;
case ORIENTATION_RIGHT: delta = -pixResize.x / PMONITOR->vecSize.x; break;
@@ -788,6 +790,8 @@ void CHyprMasterLayout::resizeActiveWindow(const Vector2D& pixResize, eRectCorne
}
recalculateMonitor(PMONITOR->ID);
+
+ m_bForceWarps = false;
}
void CHyprMasterLayout::fullscreenRequestForWindow(CWindow* pWindow, eFullscreenMode fullscreenMode, bool on) {
diff --git a/src/layout/MasterLayout.hpp b/src/layout/MasterLayout.hpp
index fb896039..fd38b915 100644
--- a/src/layout/MasterLayout.hpp
+++ b/src/layout/MasterLayout.hpp
@@ -70,6 +70,8 @@ class CHyprMasterLayout : public IHyprLayout {
std::list<SMasterNodeData> m_lMasterNodesData;
std::vector<SMasterWorkspaceData> m_lMasterWorkspacesData;
+ bool m_bForceWarps = false;
+
void buildOrientationCycleVectorFromVars(std::vector<eOrientation>& cycle, CVarList& vars);
void buildOrientationCycleVectorFromEOperation(std::vector<eOrientation>& cycle);
void runOrientationCycle(SLayoutMessageHeader& header, CVarList* vars, int next);