Fix "focus prev" when focus list is not enabled.
SVN revision: 35974
This commit is contained in:
parent
639f242ffe
commit
d49d116453
16
src/focus.c
16
src/focus.c
|
@ -173,8 +173,12 @@ FocusRaisePending(void)
|
||||||
focus_pending_raise = NULL;
|
focus_pending_raise = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* dir > 0: Focus previously focused window
|
||||||
|
* else : Focus least recently focused window
|
||||||
|
*/
|
||||||
static void
|
static void
|
||||||
FocusPrevEwin(void)
|
FocusCycleEwin(int dir)
|
||||||
{
|
{
|
||||||
EWin *const *lst;
|
EWin *const *lst;
|
||||||
EWin *ewin;
|
EWin *ewin;
|
||||||
|
@ -184,6 +188,8 @@ FocusPrevEwin(void)
|
||||||
if (num <= 1)
|
if (num <= 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
dir = (dir > 0) ? 1 : -1;
|
||||||
|
|
||||||
for (j = 0; j < num; j++)
|
for (j = 0; j < num; j++)
|
||||||
{
|
{
|
||||||
if (lst[j] == Mode.focuswin)
|
if (lst[j] == Mode.focuswin)
|
||||||
|
@ -191,7 +197,7 @@ FocusPrevEwin(void)
|
||||||
}
|
}
|
||||||
for (i = 1; i < num; i++)
|
for (i = 1; i < num; i++)
|
||||||
{
|
{
|
||||||
ewin = lst[(j + i) % num];
|
ewin = lst[(j + i * dir + num) % num];
|
||||||
if (!FocusEwinValid(ewin, 1, 0, 0) || ewin->props.skip_focuslist)
|
if (!FocusEwinValid(ewin, 1, 0, 0) || ewin->props.skip_focuslist)
|
||||||
continue;
|
continue;
|
||||||
FocusToEWin(ewin, FOCUS_PREV);
|
FocusToEWin(ewin, FOCUS_PREV);
|
||||||
|
@ -962,17 +968,19 @@ FocusIpc(const char *params)
|
||||||
}
|
}
|
||||||
else if (!strncmp(cmd, "next", 2))
|
else if (!strncmp(cmd, "next", 2))
|
||||||
{
|
{
|
||||||
|
/* Focus previously focused window */
|
||||||
if (Conf.warplist.enable)
|
if (Conf.warplist.enable)
|
||||||
WarpFocus(1);
|
WarpFocus(1);
|
||||||
else
|
else
|
||||||
FocusPrevEwin();
|
FocusCycleEwin(1);
|
||||||
}
|
}
|
||||||
else if (!strncmp(cmd, "prev", 2))
|
else if (!strncmp(cmd, "prev", 2))
|
||||||
{
|
{
|
||||||
|
/* Focus least recently focused window */
|
||||||
if (Conf.warplist.enable)
|
if (Conf.warplist.enable)
|
||||||
WarpFocus(-1);
|
WarpFocus(-1);
|
||||||
else
|
else
|
||||||
FocusPrevEwin();
|
FocusCycleEwin(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue