mirror of
https://github.com/hyprwm/hyprland-plugins.git
synced 2025-12-27 02:10:04 +01:00
Hyprscrolling: Respect general:no_focus_fallback config when using layoutmsg focus (#443)
* Respect general:no_focus_fallback config when using layoutmsg focus * Remove braces from short ifs
This commit is contained in:
parent
bdd56d2c56
commit
c8dc6f3d54
1 changed files with 26 additions and 9 deletions
|
|
@ -1044,7 +1044,8 @@ std::any CScrollingLayout::layoutMessage(SLayoutMessageHeader header, std::strin
|
|||
WDATA->recalculate();
|
||||
}
|
||||
} else if (ARGS[0] == "focus") {
|
||||
const auto WDATA = dataFor(g_pCompositor->m_lastWindow.lock());
|
||||
const auto WDATA = dataFor(g_pCompositor->m_lastWindow.lock());
|
||||
static const auto PNOFALLBACK = CConfigValue<Hyprlang::INT>("general:no_focus_fallback");
|
||||
|
||||
if (!WDATA || ARGS[1].empty())
|
||||
return {};
|
||||
|
|
@ -1053,8 +1054,12 @@ std::any CScrollingLayout::layoutMessage(SLayoutMessageHeader header, std::strin
|
|||
case 'u':
|
||||
case 't': {
|
||||
auto PREV = WDATA->column->prev(WDATA);
|
||||
if (!PREV)
|
||||
PREV = WDATA->column->windowDatas.back();
|
||||
if (!PREV) {
|
||||
if (*PNOFALLBACK)
|
||||
break;
|
||||
else
|
||||
PREV = WDATA->column->windowDatas.back();
|
||||
}
|
||||
|
||||
g_pCompositor->focusWindow(PREV->window.lock());
|
||||
break;
|
||||
|
|
@ -1063,8 +1068,12 @@ std::any CScrollingLayout::layoutMessage(SLayoutMessageHeader header, std::strin
|
|||
case 'b':
|
||||
case 'd': {
|
||||
auto NEXT = WDATA->column->next(WDATA);
|
||||
if (!NEXT)
|
||||
NEXT = WDATA->column->windowDatas.front();
|
||||
if (!NEXT) {
|
||||
if (*PNOFALLBACK)
|
||||
break;
|
||||
else
|
||||
NEXT = WDATA->column->windowDatas.front();
|
||||
}
|
||||
|
||||
g_pCompositor->focusWindow(NEXT->window.lock());
|
||||
break;
|
||||
|
|
@ -1072,8 +1081,12 @@ std::any CScrollingLayout::layoutMessage(SLayoutMessageHeader header, std::strin
|
|||
|
||||
case 'l': {
|
||||
auto PREV = WDATA->column->workspace->prev(WDATA->column.lock());
|
||||
if (!PREV)
|
||||
PREV = WDATA->column->workspace->columns.back();
|
||||
if (!PREV) {
|
||||
if (*PNOFALLBACK)
|
||||
break;
|
||||
else
|
||||
PREV = WDATA->column->workspace->columns.back();
|
||||
}
|
||||
|
||||
g_pCompositor->focusWindow(PREV->windowDatas.front()->window.lock());
|
||||
centerOrFit(WDATA->column->workspace.lock(), PREV);
|
||||
|
|
@ -1083,8 +1096,12 @@ std::any CScrollingLayout::layoutMessage(SLayoutMessageHeader header, std::strin
|
|||
|
||||
case 'r': {
|
||||
auto NEXT = WDATA->column->workspace->next(WDATA->column.lock());
|
||||
if (!NEXT)
|
||||
NEXT = WDATA->column->workspace->columns.front();
|
||||
if (!NEXT) {
|
||||
if (*PNOFALLBACK)
|
||||
break;
|
||||
else
|
||||
NEXT = WDATA->column->workspace->columns.front();
|
||||
}
|
||||
|
||||
g_pCompositor->focusWindow(NEXT->windowDatas.front()->window.lock());
|
||||
centerOrFit(WDATA->column->workspace.lock(), NEXT);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue