2abc28d1f2
Version 4.2 fixes: 1) Fixed problems with windows that have a compound text title 2) Fixed problems with the cursor font name 3) error.c will now compile under Solaris 2.6 4) Fixed misc. compilation warnings. Some survive in error.c and states.c 5) Fixed warp function when two screens have the same program: warp will now look first on the screen containing the mouse pointer 6) Fixed hot key functions when num lock/shift lock might be pressed 7) Fixed problem with AutoRootMenu startup 8) Fixed problem with VirtualIconic resource
86 lines
1.8 KiB
Plaintext
86 lines
1.8 KiB
Plaintext
--- olvwmrc.y.orig Thu Jan 13 22:46:53 1994
|
|
+++ ./olvwmrc.y Sat Jul 17 10:04:15 1999
|
|
@@ -5,7 +5,7 @@
|
|
|
|
%{
|
|
#ifdef IDENT
|
|
-#ident "@(#)olvwmrc.y 1.6 olvwm version 07 Jan 1994"
|
|
+#ident "@(#)olvwmrc.y 1.7 olvwm version 01/13/98"
|
|
#endif
|
|
|
|
#include <sys/types.h>
|
|
@@ -81,6 +81,7 @@
|
|
List *WinMenuActionsList = NULL;
|
|
|
|
static Display *dpy;
|
|
+static unsigned int NumLockMask;
|
|
%}
|
|
|
|
|
|
@@ -526,7 +527,9 @@
|
|
}
|
|
%%
|
|
/* Programs */
|
|
+#ifndef YYDEBUG
|
|
#define YYDEBUG 1
|
|
+#endif
|
|
#include "parse.c"
|
|
|
|
extern List *ActiveClientList;
|
|
@@ -577,7 +580,7 @@
|
|
return(True);
|
|
}
|
|
|
|
-static char *
|
|
+extern char *
|
|
strexpand(s)
|
|
char *s;
|
|
{
|
|
@@ -712,7 +715,8 @@
|
|
|
|
{
|
|
if (p->keycode == ev->xkey.keycode &&
|
|
- (p->modmask == AnyModifier || p->modmask == ev->xkey.state))
|
|
+ (p->modmask == AnyModifier ||
|
|
+ (p->modmask == (~(NumLockMask|LockMask) & ev->xkey.state))))
|
|
return p;
|
|
return NULL;
|
|
}
|
|
@@ -799,14 +803,26 @@
|
|
extern List *ScreenInfoList;
|
|
List *l = ScreenInfoList;
|
|
ScreenInfo *scr;
|
|
+ Client *saveClient = NULL;
|
|
+ Window root, child;
|
|
+ int rx, ry, wx, wy;
|
|
+ unsigned int keys;
|
|
|
|
/* allow one warp per screen */
|
|
for (scr = ListEnum(&l); scr != NULL; scr = ListEnum(&l)) {
|
|
findClient_rootid = scr->rootid;
|
|
c = (Client *) ListApply(ActiveClientList, findClient, t);
|
|
- if (c)
|
|
- clientWarp(c);
|
|
+ if (c) {
|
|
+ if (XQueryPointer(dpy, c->groupid, &root, &child,
|
|
+ &rx, &ry, &wx, &wy, &keys)) {
|
|
+ clientWarp(c);
|
|
+ break;
|
|
+ }
|
|
+ else saveClient = c;
|
|
+ }
|
|
}
|
|
+ if (saveClient)
|
|
+ clientWarp(c);
|
|
findClient_rootid = 0;
|
|
}
|
|
free(s);
|
|
@@ -1249,6 +1265,7 @@
|
|
return;
|
|
olvwmOldBuf = olvwmBuf;
|
|
dpy = ldpy;
|
|
+ NumLockMask = FindModifierMask(XKeysymToKeycode(dpy, XK_Num_Lock));
|
|
yyparse();
|
|
#ifdef DEBUG
|
|
DumpProgKeyList();
|