mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-05 22:51:58 -07:00
keybindmgr: add optional silent
suffix to movewindow
. (#5597)
With the `silent` suffix, the focus remains on the current position in the layout or the current monitor, instead of following the moved window. When combined with `movewindow mon:X`, this this allows you to get the same behavior as xmonad's `windowToScreen` command.
This commit is contained in:
@@ -949,7 +949,7 @@ SWindowRenderLayoutHints CHyprMasterLayout::requestRenderHints(CWindow* pWindow)
|
||||
return hints; // master doesnt have any hints
|
||||
}
|
||||
|
||||
void CHyprMasterLayout::moveWindowTo(CWindow* pWindow, const std::string& dir) {
|
||||
void CHyprMasterLayout::moveWindowTo(CWindow* pWindow, const std::string& dir, bool silent) {
|
||||
if (!isDirection(dir))
|
||||
return;
|
||||
|
||||
@@ -965,12 +965,16 @@ void CHyprMasterLayout::moveWindowTo(CWindow* pWindow, const std::string& dir) {
|
||||
onWindowRemovedTiling(pWindow);
|
||||
pWindow->moveToWorkspace(PWINDOW2->m_pWorkspace);
|
||||
pWindow->m_iMonitorID = PWINDOW2->m_iMonitorID;
|
||||
const auto pMonitor = g_pCompositor->getMonitorFromID(pWindow->m_iMonitorID);
|
||||
g_pCompositor->setActiveMonitor(pMonitor);
|
||||
if (!silent) {
|
||||
const auto pMonitor = g_pCompositor->getMonitorFromID(pWindow->m_iMonitorID);
|
||||
g_pCompositor->setActiveMonitor(pMonitor);
|
||||
}
|
||||
onWindowCreatedTiling(pWindow);
|
||||
} else {
|
||||
// if same monitor, switch windows
|
||||
switchWindows(pWindow, PWINDOW2);
|
||||
if (silent)
|
||||
g_pCompositor->focusWindow(PWINDOW2);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user