mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-24 12:05:59 +01:00
Added toggleswallow
dispatcher
This commit is contained in:
parent
ac0f3411c1
commit
d48468d59c
3 changed files with 26 additions and 1 deletions
|
@ -340,7 +340,8 @@ class CWindow {
|
||||||
CAnimatedVariable<float> m_fDimPercent;
|
CAnimatedVariable<float> m_fDimPercent;
|
||||||
|
|
||||||
// swallowing
|
// swallowing
|
||||||
CWindow* m_pSwallowed = nullptr;
|
CWindow* m_pSwallowed = nullptr;
|
||||||
|
CWindow* m_pPreviouslySwallowed = nullptr;
|
||||||
|
|
||||||
// focus stuff
|
// focus stuff
|
||||||
bool m_bStayFocused = false;
|
bool m_bStayFocused = false;
|
||||||
|
|
|
@ -59,6 +59,7 @@ CKeybindManager::CKeybindManager() {
|
||||||
m_mDispatchers["cyclenext"] = circleNext;
|
m_mDispatchers["cyclenext"] = circleNext;
|
||||||
m_mDispatchers["focuswindowbyclass"] = focusWindow;
|
m_mDispatchers["focuswindowbyclass"] = focusWindow;
|
||||||
m_mDispatchers["focuswindow"] = focusWindow;
|
m_mDispatchers["focuswindow"] = focusWindow;
|
||||||
|
m_mDispatchers["toggleswallow"] = toggleSwallow;
|
||||||
m_mDispatchers["submap"] = setSubmap;
|
m_mDispatchers["submap"] = setSubmap;
|
||||||
m_mDispatchers["pass"] = pass;
|
m_mDispatchers["pass"] = pass;
|
||||||
m_mDispatchers["layoutmsg"] = layoutmsg;
|
m_mDispatchers["layoutmsg"] = layoutmsg;
|
||||||
|
@ -1820,6 +1821,28 @@ void CKeybindManager::focusWindow(std::string regexp) {
|
||||||
g_pCompositor->warpCursorTo(PWINDOW->middle());
|
g_pCompositor->warpCursorTo(PWINDOW->middle());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CKeybindManager::toggleSwallow(std::string args) {
|
||||||
|
CWindow* pWindow = g_pCompositor->m_pLastWindow;
|
||||||
|
if (pWindow->m_pSwallowed && g_pCompositor->windowExists(pWindow->m_pSwallowed)) {
|
||||||
|
pWindow->m_pPreviouslySwallowed = pWindow->m_pSwallowed;
|
||||||
|
|
||||||
|
pWindow->m_pSwallowed->setHidden(false);
|
||||||
|
|
||||||
|
g_pLayoutManager->getCurrentLayout()->onWindowCreated(pWindow->m_pSwallowed);
|
||||||
|
|
||||||
|
pWindow->m_pSwallowed = nullptr;
|
||||||
|
|
||||||
|
} else if (pWindow->m_pPreviouslySwallowed && g_pCompositor->windowExists(pWindow->m_pPreviouslySwallowed)) {
|
||||||
|
pWindow->m_pSwallowed = pWindow->m_pPreviouslySwallowed;
|
||||||
|
|
||||||
|
g_pLayoutManager->getCurrentLayout()->onWindowRemoved(pWindow->m_pPreviouslySwallowed);
|
||||||
|
|
||||||
|
pWindow->m_pPreviouslySwallowed->setHidden(true);
|
||||||
|
|
||||||
|
g_pLayoutManager->getCurrentLayout()->recalculateMonitor(pWindow->m_iMonitorID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CKeybindManager::setSubmap(std::string submap) {
|
void CKeybindManager::setSubmap(std::string submap) {
|
||||||
if (submap == "reset" || submap == "") {
|
if (submap == "reset" || submap == "") {
|
||||||
m_szCurrentSelectedSubmap = "";
|
m_szCurrentSelectedSubmap = "";
|
||||||
|
|
|
@ -151,6 +151,7 @@ class CKeybindManager {
|
||||||
static void forceRendererReload(std::string);
|
static void forceRendererReload(std::string);
|
||||||
static void resizeActive(std::string);
|
static void resizeActive(std::string);
|
||||||
static void moveActive(std::string);
|
static void moveActive(std::string);
|
||||||
|
static void toggleSwallow(std::string);
|
||||||
static void moveWindow(std::string);
|
static void moveWindow(std::string);
|
||||||
static void resizeWindow(std::string);
|
static void resizeWindow(std::string);
|
||||||
static void circleNext(std::string);
|
static void circleNext(std::string);
|
||||||
|
|
Loading…
Reference in a new issue