1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-20 04:48:06 +01:00

swpanel: Clean up StartWindozeCycle() a bit more

We can put the test for 'newFocused' inside change_focus_and_raise()
to clean up the code a little bit.
This commit is contained in:
Carlos R. Mafra
2009-08-22 02:34:25 +02:00
parent 1db15a3543
commit d27e43e6b5

View File

@@ -64,6 +64,9 @@ static void raiseWindow(WSwitchPanel * swpanel, WWindow * wwin)
static WWindow *change_focus_and_raise(WWindow *newFocused, WWindow *oldFocused, static WWindow *change_focus_and_raise(WWindow *newFocused, WWindow *oldFocused,
WSwitchPanel *swpanel, WScreen *scr) WSwitchPanel *swpanel, WScreen *scr)
{ {
if (!newFocused)
return oldFocused;
wWindowFocus(newFocused, oldFocused); wWindowFocus(newFocused, oldFocused);
oldFocused = newFocused; oldFocused = newFocused;
@@ -71,6 +74,7 @@ static WWindow *change_focus_and_raise(WWindow *newFocused, WWindow *oldFocused,
CommitStacking(scr); CommitStacking(scr);
raiseWindow(swpanel, newFocused); raiseWindow(swpanel, newFocused);
} }
return oldFocused; return oldFocused;
} }
@@ -121,8 +125,7 @@ void StartWindozeCycle(WWindow * wwin, XEvent * event, Bool next)
if (swpanel) { if (swpanel) {
newFocused = wSwitchPanelSelectNext(swpanel, !next); newFocused = wSwitchPanelSelectNext(swpanel, !next);
if (newFocused) oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
} else { } else {
if (wwin->frame->workspace == scr->current_workspace) if (wwin->frame->workspace == scr->current_workspace)
newFocused = wwin; newFocused = wwin;
@@ -152,37 +155,39 @@ 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) oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
} 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) oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
} 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) oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
} else if (ev.xkey.keycode == escapeKey) { } else if (ev.xkey.keycode == escapeKey) {
/* Focus the first window of the swpanel, despite the 'False' */ /* Focus the first window of the swpanel, despite the 'False' */
newFocused = wSwitchPanelSelectFirst(swpanel, False); newFocused = wSwitchPanelSelectFirst(swpanel, False);
if (newFocused) { oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
oldFocused = change_focus_and_raise(newFocused, oldFocused, swpanel, scr);
esc_cancel = True; esc_cancel = True;
done = True; done = True;
}
} else if (ev.xkey.keycode != shiftLKey && ev.xkey.keycode != shiftRKey) { } else if (ev.xkey.keycode != shiftLKey && ev.xkey.keycode != shiftRKey) {
somethingElse = True; somethingElse = True;
done = True; done = True;
} }
break; break;
case KeyRelease: case KeyRelease:
for (i = 0; i < 8 * keymap->max_keypermod; i++) { for (i = 0; i < 8 * keymap->max_keypermod; i++) {
if (keymap->modifiermap[i] == ev.xkey.keycode && if (keymap->modifiermap[i] == ev.xkey.keycode &&
wKeyBindings[WKBD_FOCUSNEXT].modifier & 1 << (i / keymap->max_keypermod)) { wKeyBindings[WKBD_FOCUSNEXT].modifier & 1 << (i / keymap->max_keypermod)) {
done = True; done = True;