1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00

wmaker: add next and previous window focus functions

This patch is adding a wWindowFocusPrev() and wWindowFocusNext() functions.
And copying switchmenu.c focusWindow() as wWindowSingleFocus().

Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
This commit is contained in:
David Maciejak
2014-09-11 07:12:53 +07:00
committed by Carlos R. Mafra
parent 7082561a42
commit 36b9f6cb23
2 changed files with 58 additions and 0 deletions

View File

@@ -1629,6 +1629,61 @@ void wWindowUnmap(WWindow *wwin)
XUnmapWindow(dpy, wwin->frame->core->window);
}
void wWindowSingleFocus(WWindow *wwin)
{
WScreen *scr;
int x, y, move = 0;
if (!wwin)
return;
scr = wwin->screen_ptr;
wMakeWindowVisible(wwin);
x = wwin->frame_x;
y = wwin->frame_y;
/* bring window back to visible area */
move = wScreenBringInside(scr, &x, &y, wwin->frame->core->width, wwin->frame->core->height);
if (move) {
wWindowConfigure(wwin, x, y, wwin->client.width, wwin->client.height);
}
}
void wWindowFocusPrev(WWindow *wwin, Bool inSameWorkspace)
{
WWindow *tmp;
if (!wwin || !wwin->prev)
return;
tmp = wwin;
while (tmp->prev)
tmp = tmp->prev;
if (inSameWorkspace)
while (tmp && (tmp->frame->workspace != wwin->frame->workspace))
tmp = tmp->next;
wWindowSingleFocus(tmp);
}
void wWindowFocusNext(WWindow *wwin, Bool inSameWorkspace)
{
WWindow *tmp;
if (!wwin || !wwin->prev)
return;
tmp = wwin->prev;
if (inSameWorkspace)
while (tmp && (tmp->frame->workspace != wwin->frame->workspace))
tmp = tmp->prev;
wWindowSingleFocus(tmp);
}
void wWindowFocus(WWindow *wwin, WWindow *owin)
{
WWindow *nowner;