[comp.windows.x] tvtwm, cm, and key bindings

hmp@frc2.frc.ri.cmu.edu (Henning Pangels) (10/12/90)

I'm running tvtwm patchlevel 3 (on a sparcstation 1+), and I have some
of the "L" keys on the left side of the keyboard bound to f.scroll*
functions, to be executed no matter what (e.g. "L9" = : all :f.scrollleft)
On startup, everything's OK, but when I run the xview calendar manager
(cm), it screws up these bindings for when the cursor is over a window
such that they insert some generic code like ESC-[200z into the
window.
While I'm assuming cm is to blame for screwing around and/or not
cleaning up after itself (things stay messed up after cm exits), I'd
like to find a workaround or a way to reset the bindings correctly.
kbd_mode report unencoded events both before and after things get
screwed up, so that's no help.
Any ideas? 

-Henning



--
Henning Pangels        Research Programmer        Field Robotics Center
ARPAnet/Internet: hmp@frc2.frc.ri.cmu.edu         Robotics Institute
(412) 268-7088                                    Carnegie-Mellon University

brossard@sasun1.epfl.ch (Alain Brossard EPFL-SIC/SII) (10/13/90)

In article <HMP.90Oct12104748@squash.frc.ri.cmu.edu>, hmp@frc2.frc.ri.cmu.edu (Henning Pangels) writes:
> 
> I'm running tvtwm patchlevel 3 (on a sparcstation 1+), and I have some
> of the "L" keys on the left side of the keyboard bound to f.scroll*
> functions, to be executed no matter what (e.g. "L9" = : all :f.scrollleft)

  I'm using twm, and the following binding:
"L3" = : all : f.warpto "root%sasun1 "
"L4" = : all : f.warpto "root%sasun1 "

> On startup, everything's OK, but when I run the xview calendar manager
> (cm), it screws up these bindings for when the cursor is over a window
> such that they insert some generic code like ESC-[200z into the
> window.
  My "L3" binding stopped working when typed in non Open Windows
applications when I started using Open Windows 2.0 programs.
  The (new) "L4" binding works just fine!

> Any ideas? 
> 
> -Henning

	I assume that the window manager has done a grab on
those keys and that applicaiton programs should not be able
to affect such a grab but it looks like this is what is
happening.  "L3" typed in the root window or in an O-W application
works fine (executes the twm binding), but elsewhere it looks
like the binding has vanished.
-- 

Alain Brossard, Ecole Polytechnique Federale de Lausanne,
	SIC/SII, EL-Ecublens, CH-1015 Lausanne, Suisse
brossard@sasun1.epfl.ch

nannette@xebra.Eng.Sun.COM (Nannette Simpson) (10/18/90)

In article <HMP.90Oct12104748@squash.frc.ri.cmu.edu> hmp@frc2.frc.ri.cmu.edu (Henning Pangels) writes:
>
>I'm running tvtwm patchlevel 3 (on a sparcstation 1+), and I have some
>of the "L" keys on the left side of the keyboard bound to f.scroll*
>functions, to be executed no matter what (e.g. "L9" = : all :f.scrollleft)
>On startup, everything's OK, but when I run the xview calendar manager
>(cm), it screws up these bindings for when the cursor is over a window
>such that they insert some generic code like ESC-[200z into the
>window.
>While I'm assuming cm is to blame for screwing around and/or not
>cleaning up after itself (things stay messed up after cm exits), I'd
>like to find a workaround or a way to reset the bindings correctly.
>kbd_mode report unencoded events both before and after things get
>screwed up, so that's no help.
>Any ideas? 
>
>-Henning
>
>
>
>--
>Henning Pangels        Research Programmer        Field Robotics Center
>ARPAnet/Internet: hmp@frc2.frc.ri.cmu.edu         Robotics Institute
>(412) 268-7088                                    Carnegie-Mellon University


Calendar Manager doesn't fiddle with the keymap.  The only
code in it that resembles what you're describing is:

	calendar->canvas = (Canvas) xv_create(calendar->frame, CANVAS,
                XV_WIDTH, WIN_EXTEND_TO_EDGE,
                CANVAS_FIXED_IMAGE, FALSE,
                CANVAS_RETAINED, FALSE,
                WIN_BIT_GRAVITY, ForgetGravity,
                CANVAS_NO_CLIPPING, TRUE,
                CANVAS_X_PAINT_WINDOW, TRUE,
                CANVAS_REPAINT_PROC, repaint_proc,
                CANVAS_RESIZE_PROC, resize_proc,
                OPENWIN_AUTO_CLEAR, TRUE,
                XV_X, 0,
                WIN_BELOW, calendar->panel,
 ------>               WIN_CONSUME_PICK_EVENT, LOC_DRAG,
 ------>               WIN_CONSUME_KBD_EVENTS, WIN_TOP_KEYS, WIN_UP_EVENTS, 0,
                WIN_CLIENT_DATA, calendar,
                0);


It consumes the DRAG event and the TOP_KEYS only; but this should in
no way impact your keymap.  You might have uncovered a generic interpose
problem .... I'll look into it.

--
Nannette Simpson			Internet: nannette@Eng.Sun.COM
Sun Microsystems, Inc.			UUCP: ...!sun!nannette
2550 Garcia Ave. MS 1-40		Phone: (415) 336-2969
Mountain View, CA 94043