mirror of
https://github.com/gryf/wmaker.git
synced 2026-02-16 14:15:46 +01:00
Change to the linux kernel coding style
for arq in `git ls-files *.c`; do
echo $arq;
indent -linux -l115 $arq;
done
The different line break at 115 columns is because
I use a widescreen monitor :-)
This commit is contained in:
362
src/cycling.c
362
src/cycling.c
@@ -44,224 +44,214 @@ extern WPreferences wPreferences;
|
||||
|
||||
extern WShortKey wKeyBindings[WKBD_LAST];
|
||||
|
||||
|
||||
static void raiseWindow(WSwitchPanel *swpanel, WWindow *wwin)
|
||||
static void raiseWindow(WSwitchPanel * swpanel, WWindow * wwin)
|
||||
{
|
||||
Window swwin= wSwitchPanelGetWindow(swpanel);
|
||||
|
||||
if (wwin->flags.mapped) {
|
||||
if (swwin!=None) {
|
||||
Window win[2];
|
||||
|
||||
win[0]= swwin;
|
||||
win[1]= wwin->frame->core->window;
|
||||
|
||||
XRestackWindows(dpy, win, 2);
|
||||
} else
|
||||
XRaiseWindow(dpy, wwin->frame->core->window);
|
||||
}
|
||||
Window swwin = wSwitchPanelGetWindow(swpanel);
|
||||
|
||||
if (wwin->flags.mapped) {
|
||||
if (swwin != None) {
|
||||
Window win[2];
|
||||
|
||||
win[0] = swwin;
|
||||
win[1] = wwin->frame->core->window;
|
||||
|
||||
XRestackWindows(dpy, win, 2);
|
||||
} else
|
||||
XRaiseWindow(dpy, wwin->frame->core->window);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
StartWindozeCycle(WWindow *wwin, XEvent *event, Bool next)
|
||||
void StartWindozeCycle(WWindow * wwin, XEvent * event, Bool next)
|
||||
{
|
||||
WScreen *scr = wScreenForRootWindow(event->xkey.root);
|
||||
Bool done = False;
|
||||
WWindow *newFocused;
|
||||
WWindow *oldFocused;
|
||||
int modifiers;
|
||||
XModifierKeymap *keymap = NULL;
|
||||
Bool hasModifier;
|
||||
Bool somethingElse = False;
|
||||
XEvent ev;
|
||||
WSwitchPanel *swpanel = NULL;
|
||||
KeyCode leftKey, rightKey, homeKey, endKey, shiftLKey, shiftRKey;
|
||||
WScreen *scr = wScreenForRootWindow(event->xkey.root);
|
||||
Bool done = False;
|
||||
WWindow *newFocused;
|
||||
WWindow *oldFocused;
|
||||
int modifiers;
|
||||
XModifierKeymap *keymap = NULL;
|
||||
Bool hasModifier;
|
||||
Bool somethingElse = False;
|
||||
XEvent ev;
|
||||
WSwitchPanel *swpanel = NULL;
|
||||
KeyCode leftKey, rightKey, homeKey, endKey, shiftLKey, shiftRKey;
|
||||
|
||||
if (!wwin)
|
||||
return;
|
||||
|
||||
leftKey = XKeysymToKeycode(dpy, XK_Left);
|
||||
rightKey = XKeysymToKeycode(dpy, XK_Right);
|
||||
homeKey = XKeysymToKeycode(dpy, XK_Home);
|
||||
endKey = XKeysymToKeycode(dpy, XK_End);
|
||||
shiftLKey = XKeysymToKeycode(dpy, XK_Shift_L);
|
||||
shiftRKey = XKeysymToKeycode(dpy, XK_Shift_R);
|
||||
if (!wwin)
|
||||
return;
|
||||
|
||||
if (next)
|
||||
hasModifier = (wKeyBindings[WKBD_FOCUSNEXT].modifier != 0);
|
||||
else
|
||||
hasModifier = (wKeyBindings[WKBD_FOCUSPREV].modifier != 0);
|
||||
leftKey = XKeysymToKeycode(dpy, XK_Left);
|
||||
rightKey = XKeysymToKeycode(dpy, XK_Right);
|
||||
homeKey = XKeysymToKeycode(dpy, XK_Home);
|
||||
endKey = XKeysymToKeycode(dpy, XK_End);
|
||||
shiftLKey = XKeysymToKeycode(dpy, XK_Shift_L);
|
||||
shiftRKey = XKeysymToKeycode(dpy, XK_Shift_R);
|
||||
|
||||
if (hasModifier) {
|
||||
keymap = XGetModifierMapping(dpy);
|
||||
if (next)
|
||||
hasModifier = (wKeyBindings[WKBD_FOCUSNEXT].modifier != 0);
|
||||
else
|
||||
hasModifier = (wKeyBindings[WKBD_FOCUSPREV].modifier != 0);
|
||||
|
||||
if (hasModifier) {
|
||||
keymap = XGetModifierMapping(dpy);
|
||||
|
||||
#ifdef DEBUG
|
||||
printf("Grabbing keyboard\n");
|
||||
printf("Grabbing keyboard\n");
|
||||
#endif
|
||||
XGrabKeyboard(dpy, scr->root_win, False, GrabModeAsync, GrabModeAsync,
|
||||
CurrentTime);
|
||||
}
|
||||
XGrabKeyboard(dpy, scr->root_win, False, GrabModeAsync, GrabModeAsync, CurrentTime);
|
||||
}
|
||||
|
||||
scr->flags.doing_alt_tab = 1;
|
||||
scr->flags.doing_alt_tab = 1;
|
||||
|
||||
swpanel = wInitSwitchPanel(scr, wwin, scr->current_workspace);
|
||||
oldFocused = wwin;
|
||||
|
||||
if (swpanel) {
|
||||
newFocused = wSwitchPanelSelectNext(swpanel, !next);
|
||||
if (newFocused) {
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
swpanel = wInitSwitchPanel(scr, wwin, scr->current_workspace);
|
||||
oldFocused = wwin;
|
||||
|
||||
if (wPreferences.circ_raise)
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (wwin->frame->workspace == scr->current_workspace)
|
||||
newFocused= wwin;
|
||||
else
|
||||
newFocused= NULL;
|
||||
}
|
||||
if (swpanel) {
|
||||
newFocused = wSwitchPanelSelectNext(swpanel, !next);
|
||||
if (newFocused) {
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
|
||||
while (hasModifier && !done) {
|
||||
int i;
|
||||
if (wPreferences.circ_raise)
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
} else {
|
||||
if (wwin->frame->workspace == scr->current_workspace)
|
||||
newFocused = wwin;
|
||||
else
|
||||
newFocused = NULL;
|
||||
}
|
||||
|
||||
WMMaskEvent(dpy, KeyPressMask|KeyReleaseMask|ExposureMask
|
||||
|PointerMotionMask|ButtonReleaseMask, &ev);
|
||||
while (hasModifier && !done) {
|
||||
int i;
|
||||
|
||||
/* ignore CapsLock */
|
||||
modifiers = ev.xkey.state & ValidModMask;
|
||||
WMMaskEvent(dpy, KeyPressMask | KeyReleaseMask | ExposureMask
|
||||
| PointerMotionMask | ButtonReleaseMask, &ev);
|
||||
|
||||
switch (ev.type) {
|
||||
case KeyPress:
|
||||
/* ignore CapsLock */
|
||||
modifiers = ev.xkey.state & ValidModMask;
|
||||
|
||||
switch (ev.type) {
|
||||
case KeyPress:
|
||||
#ifdef DEBUG
|
||||
printf("Got key press\n");
|
||||
printf("Got key press\n");
|
||||
#endif
|
||||
if ((wKeyBindings[WKBD_FOCUSNEXT].keycode == ev.xkey.keycode
|
||||
&& wKeyBindings[WKBD_FOCUSNEXT].modifier == modifiers)
|
||||
|| ev.xkey.keycode == rightKey) {
|
||||
if ((wKeyBindings[WKBD_FOCUSNEXT].keycode == ev.xkey.keycode
|
||||
&& wKeyBindings[WKBD_FOCUSNEXT].modifier == modifiers)
|
||||
|| ev.xkey.keycode == rightKey) {
|
||||
|
||||
if (swpanel) {
|
||||
newFocused = wSwitchPanelSelectNext(swpanel, False);
|
||||
if (newFocused) {
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
|
||||
if (wPreferences.circ_raise) {
|
||||
CommitStacking(scr);
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ((wKeyBindings[WKBD_FOCUSPREV].keycode == ev.xkey.keycode
|
||||
&& wKeyBindings[WKBD_FOCUSPREV].modifier == modifiers)
|
||||
|| ev.xkey.keycode == leftKey) {
|
||||
if (swpanel) {
|
||||
newFocused = wSwitchPanelSelectNext(swpanel, False);
|
||||
if (newFocused) {
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
|
||||
if (swpanel) {
|
||||
newFocused = wSwitchPanelSelectNext(swpanel, True);
|
||||
if (newFocused) {
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
|
||||
if (wPreferences.circ_raise) {
|
||||
CommitStacking(scr);
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (ev.xkey.keycode == homeKey || ev.xkey.keycode == endKey) {
|
||||
if (swpanel) {
|
||||
newFocused = wSwitchPanelSelectFirst(swpanel, ev.xkey.keycode != homeKey);
|
||||
if (newFocused) {
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
if (wPreferences.circ_raise) {
|
||||
CommitStacking(scr);
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ((wKeyBindings[WKBD_FOCUSPREV].keycode == ev.xkey.keycode
|
||||
&& wKeyBindings[WKBD_FOCUSPREV].modifier == modifiers)
|
||||
|| ev.xkey.keycode == leftKey) {
|
||||
|
||||
if (wPreferences.circ_raise) {
|
||||
CommitStacking(scr);
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (ev.xkey.keycode != shiftLKey && ev.xkey.keycode != shiftRKey) {
|
||||
if (swpanel) {
|
||||
newFocused = wSwitchPanelSelectNext(swpanel, True);
|
||||
if (newFocused) {
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
|
||||
if (wPreferences.circ_raise) {
|
||||
CommitStacking(scr);
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (ev.xkey.keycode == homeKey || ev.xkey.keycode == endKey) {
|
||||
if (swpanel) {
|
||||
newFocused = wSwitchPanelSelectFirst(swpanel, ev.xkey.keycode != homeKey);
|
||||
if (newFocused) {
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
|
||||
if (wPreferences.circ_raise) {
|
||||
CommitStacking(scr);
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (ev.xkey.keycode != shiftLKey && ev.xkey.keycode != shiftRKey) {
|
||||
#ifdef DEBUG
|
||||
printf("Got something else\n");
|
||||
printf("Got something else\n");
|
||||
#endif
|
||||
somethingElse = True;
|
||||
done = True;
|
||||
}
|
||||
break;
|
||||
case KeyRelease:
|
||||
somethingElse = True;
|
||||
done = True;
|
||||
}
|
||||
break;
|
||||
case KeyRelease:
|
||||
#ifdef DEBUG
|
||||
printf("Got key release\n");
|
||||
printf("Got key release\n");
|
||||
#endif
|
||||
for (i = 0; i < 8 * keymap->max_keypermod; i++) {
|
||||
if (keymap->modifiermap[i] == ev.xkey.keycode &&
|
||||
wKeyBindings[WKBD_FOCUSNEXT].modifier
|
||||
& 1<<(i/keymap->max_keypermod)) {
|
||||
done = True;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case LeaveNotify:
|
||||
case MotionNotify:
|
||||
case ButtonRelease:
|
||||
{
|
||||
WWindow *tmp;
|
||||
if (swpanel) {
|
||||
tmp = wSwitchPanelHandleEvent(swpanel, &ev);
|
||||
if (tmp) {
|
||||
newFocused = tmp;
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
|
||||
if (wPreferences.circ_raise) {
|
||||
CommitStacking(scr);
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
|
||||
if (ev.type == ButtonRelease)
|
||||
done= True;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
for (i = 0; i < 8 * keymap->max_keypermod; i++) {
|
||||
if (keymap->modifiermap[i] == ev.xkey.keycode &&
|
||||
wKeyBindings[WKBD_FOCUSNEXT].modifier & 1 << (i / keymap->max_keypermod)) {
|
||||
done = True;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
WMHandleEvent(&ev);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (keymap)
|
||||
XFreeModifiermap(keymap);
|
||||
case LeaveNotify:
|
||||
case MotionNotify:
|
||||
case ButtonRelease:
|
||||
{
|
||||
WWindow *tmp;
|
||||
if (swpanel) {
|
||||
tmp = wSwitchPanelHandleEvent(swpanel, &ev);
|
||||
if (tmp) {
|
||||
newFocused = tmp;
|
||||
wWindowFocus(newFocused, oldFocused);
|
||||
oldFocused = newFocused;
|
||||
|
||||
if (hasModifier) {
|
||||
if (wPreferences.circ_raise) {
|
||||
CommitStacking(scr);
|
||||
raiseWindow(swpanel, newFocused);
|
||||
}
|
||||
|
||||
if (ev.type == ButtonRelease)
|
||||
done = True;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
WMHandleEvent(&ev);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (keymap)
|
||||
XFreeModifiermap(keymap);
|
||||
|
||||
if (hasModifier) {
|
||||
#ifdef DEBUG
|
||||
printf("Ungrabbing keyboard\n");
|
||||
printf("Ungrabbing keyboard\n");
|
||||
#endif
|
||||
XUngrabKeyboard(dpy, CurrentTime);
|
||||
}
|
||||
XUngrabKeyboard(dpy, CurrentTime);
|
||||
}
|
||||
|
||||
if (swpanel)
|
||||
wSwitchPanelDestroy(swpanel);
|
||||
if (swpanel)
|
||||
wSwitchPanelDestroy(swpanel);
|
||||
|
||||
if (newFocused) {
|
||||
wRaiseFrame(newFocused->frame->core);
|
||||
CommitStacking(scr);
|
||||
if (!newFocused->flags.mapped)
|
||||
wMakeWindowVisible(newFocused);
|
||||
wSetFocusTo(scr, newFocused);
|
||||
}
|
||||
if (newFocused) {
|
||||
wRaiseFrame(newFocused->frame->core);
|
||||
CommitStacking(scr);
|
||||
if (!newFocused->flags.mapped)
|
||||
wMakeWindowVisible(newFocused);
|
||||
wSetFocusTo(scr, newFocused);
|
||||
}
|
||||
|
||||
scr->flags.doing_alt_tab = 0;
|
||||
scr->flags.doing_alt_tab = 0;
|
||||
|
||||
if (somethingElse)
|
||||
WMHandleEvent(&ev);
|
||||
if (somethingElse)
|
||||
WMHandleEvent(&ev);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user