mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-09 15:45:57 +01:00
added cyclenext param previous
This commit is contained in:
parent
ddc4cbbd7e
commit
c44cafda97
3 changed files with 29 additions and 2 deletions
|
@ -938,6 +938,29 @@ CWindow* CCompositor::getNextWindowOnWorkspace(CWindow* pWindow) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CWindow* CCompositor::getPrevWindowOnWorkspace(CWindow* pWindow) {
|
||||||
|
bool gotToWindow = false;
|
||||||
|
for (auto it = m_vWindows.rbegin(); it != m_vWindows.rend(); it++) {
|
||||||
|
if (it->get() != pWindow && !gotToWindow)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (it->get() == pWindow) {
|
||||||
|
gotToWindow = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((*it)->m_iWorkspaceID == pWindow->m_iWorkspaceID && (*it)->m_bIsMapped && !(*it)->m_bHidden)
|
||||||
|
return it->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto it = m_vWindows.rbegin(); it != m_vWindows.rend(); it++) {
|
||||||
|
if (it->get() != pWindow && (*it)->m_iWorkspaceID == pWindow->m_iWorkspaceID && (*it)->m_bIsMapped && !(*it)->m_bHidden)
|
||||||
|
return it->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
int CCompositor::getNextAvailableNamedWorkspace() {
|
int CCompositor::getNextAvailableNamedWorkspace() {
|
||||||
int lowest = -1337 + 1;
|
int lowest = -1337 + 1;
|
||||||
for (auto& w : m_vWorkspaces) {
|
for (auto& w : m_vWorkspaces) {
|
||||||
|
|
|
@ -127,6 +127,7 @@ public:
|
||||||
CWindow* getWindowInDirection(CWindow*, char);
|
CWindow* getWindowInDirection(CWindow*, char);
|
||||||
void deactivateAllWLRWorkspaces(wlr_ext_workspace_handle_v1* exclude = nullptr);
|
void deactivateAllWLRWorkspaces(wlr_ext_workspace_handle_v1* exclude = nullptr);
|
||||||
CWindow* getNextWindowOnWorkspace(CWindow*);
|
CWindow* getNextWindowOnWorkspace(CWindow*);
|
||||||
|
CWindow* getPrevWindowOnWorkspace(CWindow*);
|
||||||
int getNextAvailableNamedWorkspace();
|
int getNextAvailableNamedWorkspace();
|
||||||
bool isPointOnAnyMonitor(const Vector2D&);
|
bool isPointOnAnyMonitor(const Vector2D&);
|
||||||
CWindow* getConstraintWindow(SMouse*);
|
CWindow* getConstraintWindow(SMouse*);
|
||||||
|
|
|
@ -1044,11 +1044,14 @@ void CKeybindManager::moveActive(std::string args) {
|
||||||
g_pLayoutManager->getCurrentLayout()->moveActiveWindow(Vector2D(X, Y));
|
g_pLayoutManager->getCurrentLayout()->moveActiveWindow(Vector2D(X, Y));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKeybindManager::circleNext(std::string) {
|
void CKeybindManager::circleNext(std::string arg) {
|
||||||
if (!g_pCompositor->windowValidMapped(g_pCompositor->m_pLastWindow))
|
if (!g_pCompositor->windowValidMapped(g_pCompositor->m_pLastWindow))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
g_pCompositor->focusWindow(g_pCompositor->getNextWindowOnWorkspace(g_pCompositor->m_pLastWindow));
|
if (arg == "last" || arg == "l" || arg == "prev" || arg == "p")
|
||||||
|
g_pCompositor->focusWindow(g_pCompositor->getPrevWindowOnWorkspace(g_pCompositor->m_pLastWindow));
|
||||||
|
else
|
||||||
|
g_pCompositor->focusWindow(g_pCompositor->getNextWindowOnWorkspace(g_pCompositor->m_pLastWindow));
|
||||||
|
|
||||||
const auto MIDPOINT = g_pCompositor->m_pLastWindow->m_vRealPosition.goalv() + g_pCompositor->m_pLastWindow->m_vRealSize.goalv() / 2.f;
|
const auto MIDPOINT = g_pCompositor->m_pLastWindow->m_vRealPosition.goalv() + g_pCompositor->m_pLastWindow->m_vRealSize.goalv() / 2.f;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue