mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-02 13:45:58 +01:00
added a lockgroups dispatcher
This commit is contained in:
parent
431c74f111
commit
a66ef50469
4 changed files with 16 additions and 5 deletions
|
@ -292,7 +292,7 @@ void CHyprDwindleLayout::onWindowCreatedTiling(CWindow* pWindow) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// if it's a group, add the window
|
// if it's a group, add the window
|
||||||
if (OPENINGON->pWindow->m_sGroupData.pNextWindow) {
|
if (OPENINGON->pWindow->m_sGroupData.pNextWindow && !g_pKeybindManager->m_bGroupsLocked) {
|
||||||
m_lDwindleNodesData.remove(*PNODE);
|
m_lDwindleNodesData.remove(*PNODE);
|
||||||
|
|
||||||
OPENINGON->pWindow->insertWindowToGroup(pWindow);
|
OPENINGON->pWindow->insertWindowToGroup(pWindow);
|
||||||
|
|
|
@ -87,7 +87,7 @@ void CHyprMasterLayout::onWindowCreatedTiling(CWindow* pWindow) {
|
||||||
getNodeFromWindow(g_pCompositor->m_pLastWindow) :
|
getNodeFromWindow(g_pCompositor->m_pLastWindow) :
|
||||||
getMasterNodeOnWorkspace(pWindow->m_iWorkspaceID);
|
getMasterNodeOnWorkspace(pWindow->m_iWorkspaceID);
|
||||||
|
|
||||||
if (OPENINGON && OPENINGON->pWindow->m_sGroupData.pNextWindow && OPENINGON != PNODE) {
|
if (OPENINGON && OPENINGON->pWindow->m_sGroupData.pNextWindow && OPENINGON != PNODE && !g_pKeybindManager->m_bGroupsLocked) {
|
||||||
m_lMasterNodesData.remove(*PNODE);
|
m_lMasterNodesData.remove(*PNODE);
|
||||||
|
|
||||||
OPENINGON->pWindow->insertWindowToGroup(pWindow);
|
OPENINGON->pWindow->insertWindowToGroup(pWindow);
|
||||||
|
@ -242,7 +242,7 @@ void CHyprMasterLayout::calculateWorkspace(const int& ws) {
|
||||||
if (getNodesOnWorkspace(PWORKSPACE->m_iID) < 2) {
|
if (getNodesOnWorkspace(PWORKSPACE->m_iID) < 2) {
|
||||||
PMASTERNODE->position = PMONITOR->vecReservedTopLeft + PMONITOR->vecPosition;
|
PMASTERNODE->position = PMONITOR->vecReservedTopLeft + PMONITOR->vecPosition;
|
||||||
PMASTERNODE->size = Vector2D(PMONITOR->vecSize.x - PMONITOR->vecReservedTopLeft.x - PMONITOR->vecReservedBottomRight.x,
|
PMASTERNODE->size = Vector2D(PMONITOR->vecSize.x - PMONITOR->vecReservedTopLeft.x - PMONITOR->vecReservedBottomRight.x,
|
||||||
PMONITOR->vecSize.y - PMONITOR->vecReservedBottomRight.y - PMONITOR->vecReservedTopLeft.y);
|
PMONITOR->vecSize.y - PMONITOR->vecReservedBottomRight.y - PMONITOR->vecReservedTopLeft.y);
|
||||||
applyNodeDataToWindow(PMASTERNODE);
|
applyNodeDataToWindow(PMASTERNODE);
|
||||||
return;
|
return;
|
||||||
} else if (PWORKSPACEDATA->orientation == ORIENTATION_LEFT || PWORKSPACEDATA->orientation == ORIENTATION_RIGHT) {
|
} else if (PWORKSPACEDATA->orientation == ORIENTATION_LEFT || PWORKSPACEDATA->orientation == ORIENTATION_RIGHT) {
|
||||||
|
|
|
@ -60,6 +60,7 @@ CKeybindManager::CKeybindManager() {
|
||||||
m_mDispatchers["bringactivetotop"] = bringActiveToTop;
|
m_mDispatchers["bringactivetotop"] = bringActiveToTop;
|
||||||
m_mDispatchers["focusurgentorlast"] = focusUrgentOrLast;
|
m_mDispatchers["focusurgentorlast"] = focusUrgentOrLast;
|
||||||
m_mDispatchers["focuscurrentorlast"] = focusCurrentOrLast;
|
m_mDispatchers["focuscurrentorlast"] = focusCurrentOrLast;
|
||||||
|
m_mDispatchers["lockgroups"] = lockGroups;
|
||||||
|
|
||||||
m_tScrollTimer.reset();
|
m_tScrollTimer.reset();
|
||||||
}
|
}
|
||||||
|
@ -2032,3 +2033,11 @@ void CKeybindManager::fakeFullscreenActive(std::string args) {
|
||||||
g_pCompositor->m_pLastWindow->m_bFakeFullscreenState || g_pCompositor->m_pLastWindow->m_bIsFullscreen);
|
g_pCompositor->m_pLastWindow->m_bFakeFullscreenState || g_pCompositor->m_pLastWindow->m_bIsFullscreen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CKeybindManager::lockGroups(std::string args) {
|
||||||
|
if (args == "lock" || args.empty() || args == "lockgroups") {
|
||||||
|
g_pKeybindManager->m_bGroupsLocked = true;
|
||||||
|
} else {
|
||||||
|
g_pKeybindManager->m_bGroupsLocked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -25,8 +25,7 @@ struct SKeybind {
|
||||||
bool shadowed = false;
|
bool shadowed = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum eFocusWindowMode
|
enum eFocusWindowMode {
|
||||||
{
|
|
||||||
MODE_CLASS_REGEX = 0,
|
MODE_CLASS_REGEX = 0,
|
||||||
MODE_TITLE_REGEX,
|
MODE_TITLE_REGEX,
|
||||||
MODE_ADDRESS,
|
MODE_ADDRESS,
|
||||||
|
@ -55,6 +54,8 @@ class CKeybindManager {
|
||||||
|
|
||||||
wl_event_source* m_pActiveKeybindEventSource = nullptr;
|
wl_event_source* m_pActiveKeybindEventSource = nullptr;
|
||||||
|
|
||||||
|
bool m_bGroupsLocked = false;
|
||||||
|
|
||||||
std::list<SKeybind> m_lKeybinds;
|
std::list<SKeybind> m_lKeybinds;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -133,6 +134,7 @@ class CKeybindManager {
|
||||||
static void pinActive(std::string);
|
static void pinActive(std::string);
|
||||||
static void mouse(std::string);
|
static void mouse(std::string);
|
||||||
static void bringActiveToTop(std::string);
|
static void bringActiveToTop(std::string);
|
||||||
|
static void lockGroups(std::string);
|
||||||
|
|
||||||
friend class CCompositor;
|
friend class CCompositor;
|
||||||
friend class CInputManager;
|
friend class CInputManager;
|
||||||
|
|
Loading…
Reference in a new issue