mirror of
https://github.com/gryf/wmaker.git
synced 2026-01-03 12:24:17 +01:00
Use helper function in StartWindozeCycle()
This way we avoid code duplication in 6 places.
This changes the previous behavior of the first
instance because the helper function has an extra
CommitStacking(scr);
compared to the original code. But it should not
hurt to have it.
This commit is contained in:
@@ -61,6 +61,19 @@ static void raiseWindow(WSwitchPanel * swpanel, WWindow * wwin)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static WWindow *change_focus_and_raise(WWindow *newFocused, WWindow *oldFocused,
|
||||||
|
WSwitchPanel *swpanel, WScreen *scr)
|
||||||
|
{
|
||||||
|
wWindowFocus(newFocused, oldFocused);
|
||||||
|
oldFocused = newFocused;
|
||||||
|
|
||||||
|
if (wPreferences.circ_raise) {
|
||||||
|
CommitStacking(scr);
|
||||||
|
raiseWindow(swpanel, newFocused);
|
||||||
|
}
|
||||||
|
return oldFocused;
|
||||||
|
}
|
||||||
|
|
||||||
void StartWindozeCycle(WWindow * wwin, XEvent * event, Bool next)
|
void StartWindozeCycle(WWindow * wwin, XEvent * event, Bool next)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -106,13 +119,8 @@ void StartWindozeCycle(WWindow * wwin, XEvent * event, Bool next)
|
|||||||
|
|
||||||
if (swpanel) {
|
if (swpanel) {
|
||||||
newFocused = wSwitchPanelSelectNext(swpanel, !next);
|
newFocused = wSwitchPanelSelectNext(swpanel, !next);
|
||||||
if (newFocused) {
|
if (newFocused)
|
||||||
wWindowFocus(newFocused, oldFocused);
|
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
|
||||||
oldFocused = newFocused;
|
|
||||||
|
|
||||||
if (wPreferences.circ_raise)
|
|
||||||
raiseWindow(swpanel, newFocused);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (wwin->frame->workspace == scr->current_workspace)
|
if (wwin->frame->workspace == scr->current_workspace)
|
||||||
newFocused = wwin;
|
newFocused = wwin;
|
||||||
@@ -142,41 +150,20 @@ void StartWindozeCycle(WWindow * wwin, XEvent * event, Bool next)
|
|||||||
|| ev.xkey.keycode == rightKey) {
|
|| ev.xkey.keycode == rightKey) {
|
||||||
|
|
||||||
newFocused = wSwitchPanelSelectNext(swpanel, False);
|
newFocused = wSwitchPanelSelectNext(swpanel, False);
|
||||||
if (newFocused) {
|
if (newFocused)
|
||||||
wWindowFocus(newFocused, oldFocused);
|
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
|
||||||
oldFocused = newFocused;
|
|
||||||
|
|
||||||
if (wPreferences.circ_raise) {
|
|
||||||
CommitStacking(scr);
|
|
||||||
raiseWindow(swpanel, newFocused);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if ((wKeyBindings[WKBD_FOCUSPREV].keycode == ev.xkey.keycode
|
} else if ((wKeyBindings[WKBD_FOCUSPREV].keycode == ev.xkey.keycode
|
||||||
&& wKeyBindings[WKBD_FOCUSPREV].modifier == modifiers)
|
&& wKeyBindings[WKBD_FOCUSPREV].modifier == modifiers)
|
||||||
|| ev.xkey.keycode == leftKey) {
|
|| ev.xkey.keycode == leftKey) {
|
||||||
|
|
||||||
newFocused = wSwitchPanelSelectNext(swpanel, True);
|
newFocused = wSwitchPanelSelectNext(swpanel, True);
|
||||||
if (newFocused) {
|
if (newFocused)
|
||||||
wWindowFocus(newFocused, oldFocused);
|
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
|
||||||
oldFocused = newFocused;
|
|
||||||
|
|
||||||
if (wPreferences.circ_raise) {
|
|
||||||
CommitStacking(scr);
|
|
||||||
raiseWindow(swpanel, newFocused);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (ev.xkey.keycode == homeKey || ev.xkey.keycode == endKey) {
|
} else if (ev.xkey.keycode == homeKey || ev.xkey.keycode == endKey) {
|
||||||
|
|
||||||
newFocused = wSwitchPanelSelectFirst(swpanel, ev.xkey.keycode != homeKey);
|
newFocused = wSwitchPanelSelectFirst(swpanel, ev.xkey.keycode != homeKey);
|
||||||
if (newFocused) {
|
if (newFocused)
|
||||||
wWindowFocus(newFocused, oldFocused);
|
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
|
||||||
oldFocused = newFocused;
|
|
||||||
|
|
||||||
if (wPreferences.circ_raise) {
|
|
||||||
CommitStacking(scr);
|
|
||||||
raiseWindow(swpanel, newFocused);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (ev.xkey.keycode != shiftLKey && ev.xkey.keycode != shiftRKey) {
|
} else if (ev.xkey.keycode != shiftLKey && ev.xkey.keycode != shiftRKey) {
|
||||||
|
|
||||||
somethingElse = True;
|
somethingElse = True;
|
||||||
@@ -203,13 +190,7 @@ void StartWindozeCycle(WWindow * wwin, XEvent * event, Bool next)
|
|||||||
tmp = wSwitchPanelHandleEvent(swpanel, &ev);
|
tmp = wSwitchPanelHandleEvent(swpanel, &ev);
|
||||||
if (tmp) {
|
if (tmp) {
|
||||||
newFocused = tmp;
|
newFocused = tmp;
|
||||||
wWindowFocus(newFocused, oldFocused);
|
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
|
||||||
oldFocused = newFocused;
|
|
||||||
|
|
||||||
if (wPreferences.circ_raise) {
|
|
||||||
CommitStacking(scr);
|
|
||||||
raiseWindow(swpanel, newFocused);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ev.type == ButtonRelease)
|
if (ev.type == ButtonRelease)
|
||||||
done = True;
|
done = True;
|
||||||
|
|||||||
Reference in New Issue
Block a user