summaryrefslogtreecommitdiff
path: root/src/managers/input/trackpad/gestures/ResizeGesture.cpp
blob: ffc7704bf640d7f16a922b19579c7dca71965fb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "ResizeGesture.hpp"

#include "../../../../desktop/state/FocusState.hpp"
#include "../../../../desktop/view/Window.hpp"
#include "../../../../render/Renderer.hpp"
#include "../../../../layout/LayoutManager.hpp"

void CResizeTrackpadGesture::begin(const ITrackpadGesture::STrackpadGestureBegin& e) {
    ITrackpadGesture::begin(e);

    m_window = Desktop::focusState()->window();
}

void CResizeTrackpadGesture::update(const ITrackpadGesture::STrackpadGestureUpdate& e) {
    if (!m_window)
        return;

    g_pHyprRenderer->damageWindow(m_window.lock());

    g_layoutManager->resizeTarget((e.swipe ? e.swipe->delta : e.pinch->delta), m_window->layoutTarget(),
                                  Layout::cornerFromBox(m_window->getWindowMainSurfaceBox(), g_pInputManager->getMouseCoordsInternal()));
    m_window->m_realSize->warp();
    m_window->m_realPosition->warp();

    g_pHyprRenderer->damageWindow(m_window.lock());
}

void CResizeTrackpadGesture::end(const ITrackpadGesture::STrackpadGestureEnd& e) {
    m_window.reset();
}