On Sun, Feb 23, 2003 at 10:21:52PM -0500, Paul Pelzl wrote:
> I've run into some focus issues here. With "warp_enabled FALSE",
> executing a number of the ion functions will shift the focus to the
> frame that contains the pointer.
The attached patch hopefully fixes this. It also adds KP_Enter bound to
'finish' to query bindings and is to be applied over the previous patch.
I forgot to check if the newest release works at all with warp disabled...
--
Tuomo
diff -u -r -x CVS -x '*.o' -x '*.a' ../ix/ion/etc/bindings-default.conf
./etc/bindings-default.conf
--- ../ix/ion/etc/bindings-default.conf 2003-02-23 14:35:37.000000000 +0200
+++ ./etc/bindings-default.conf 2003-02-24 08:25:51.000000000 +0200
@@ -81,7 +81,7 @@
kpress "H", "frame_maximize_horiz"
kpress "V", "frame_maximize_vert"
- kpress "X", "frame_destroy"
+ kpress "X", "frame_close"
}
kpress "A", "query_attachclient"
diff -u -r -x CVS -x '*.o' -x '*.a' ../ix/ion/etc/query.conf ./etc/query.conf
--- ../ix/ion/etc/query.conf 2002-05-29 00:46:53.000000000 +0300
+++ ./etc/query.conf 2003-02-24 08:24:52.000000000 +0200
@@ -33,6 +33,7 @@
set_mod ""
kpress "Return", "finish"
+ kpress "KP_Enter", "finish"
kpress "Delete", "delete"
kpress "BackSpace", "backspace"
kpress "Home", "bol"
Only in ./man: ion.1x
Only in ./src: ion
diff -u -r -x CVS -x '*.o' -x '*.a' ../ix/ion/wmcore/eventh.c ./wmcore/eventh.c
--- ../ix/ion/wmcore/eventh.c 2003-02-23 16:14:03.000000000 +0200
+++ ./wmcore/eventh.c 2003-02-24 08:01:15.000000000 +0200
@@ -405,6 +405,9 @@
/* We're only interested in the latest enter event */
}
+ if(eev->mode!=NotifyNormal && !wglobal.warp_enabled)
+ return;
+
/*
if(eev->window==eev->root){
return;
diff -u -r -x CVS -x '*.o' -x '*.a' ../ix/ion/wmcore/key.c ./wmcore/key.c
--- ../ix/ion/wmcore/key.c 2003-02-23 16:25:51.000000000 +0200
+++ ./wmcore/key.c 2003-02-24 08:28:20.000000000 +0200
@@ -225,13 +225,15 @@
{
WBinding *binding=NULL;
WRegion *reg=NULL, *oreg=NULL, *binding_owner=NULL;
+
- if(ev->subwindow!=None)
- reg=(WRegion*)FIND_WINDOW(ev->subwindow);
- if(reg==NULL)
- reg=(WRegion*)FIND_WINDOW(ev->window);
+ reg=(WRegion*)FIND_WINDOW(ev->window);
if(reg==NULL)
return;
+
+ while(reg->active_sub!=NULL)
+ reg=reg->active_sub;
+
oreg=reg;
do{