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

enhacnced mouse alt-tabbing

This commit is contained in:
kojima
2004-10-23 01:02:16 +00:00
parent b79524ce6f
commit 663df7b4cb
2 changed files with 13 additions and 9 deletions

View File

@@ -124,8 +124,7 @@ StartWindozeCycle(WWindow *wwin, XEvent *event, Bool next)
int i;
WMMaskEvent(dpy, KeyPressMask|KeyReleaseMask|ExposureMask
|PointerMotionMask|EnterWindowMask|LeaveWindowMask
|ButtonReleaseMask, &ev);
|PointerMotionMask|ButtonReleaseMask, &ev);
/* ignore CapsLock */
modifiers = ev.xkey.state & ValidModMask;
@@ -201,15 +200,14 @@ StartWindozeCycle(WWindow *wwin, XEvent *event, Bool next)
}
}
break;
case EnterNotify:
case LeaveNotify:
case MotionNotify:
case ButtonRelease:
{
WWindow *tmp;
if (swpanel) {
tmp = wSwitchPanelHandleEvent(swpanel, &ev);
if (tmp) {
if (tmp && tmp != newFocused) {
newFocused = tmp;
wWindowFocus(newFocused, oldFocused);
oldFocused = newFocused;

View File

@@ -469,22 +469,28 @@ WWindow *wSwitchPanelHandleEvent(WSwitchPanel *panel, XEvent *event)
if (!panel->win)
return NULL;
if (event->type == EnterNotify) {
if (event->type == MotionNotify) {
int focus= -1;
WM_ITERATE_ARRAY(panel->icons, label, i) {
if (WMWidgetXID(label) == event->xcrossing.window) {
if (WMWidgetXID(label) == event->xmotion.window) {
focus= i;
break;
}
}
if (focus >= 0) {
WWindow *wwin;
changeImage(panel, panel->current, 0);
changeImage(panel, focus, 1);
panel->current= focus;
return WMGetFromArray(panel->windows, focus);
wwin= WMGetFromArray(panel->windows, focus);
WMSetLabelText(panel->label, wwin->frame->title);
return wwin;
}
}