Subject: port-arm32/11526: xterm menus don't work on Xarm32VIDC (with patch)
To: None <gnats-bugs@gnats.netbsd.org>
From: Richard Earnshaw <rearnsha@buzzard.freeserve.co.uk>
List: netbsd-bugs
Date: 11/19/2000 11:35:10
>Number: 11526
>Category: port-arm32
>Synopsis: xterm menus don't work on Xarm32VIDC (with patch)
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: port-arm32-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Nov 19 11:35:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator: Richard Earnshaw
>Release: NetBSD -current<NetBSD-current source date>
>Organization:
ARM
>Environment:
System: NetBSD buzzard.buzzard.freeserve.co.uk 1.5I NetBSD 1.5I (BUZZARD) #215: Mon Nov 6 00:20:40 GMT 2000 rearnsha@buzzard.buzzard.freeserve.co.uk:/usr/src/sys/arch/arm32/compile/BUZZARD arm32
>Description:
Xterm has menus bound to CTRL + the middle or right mouse which are
used to alter the properties of the terminal. With Xarm32VIDC these
don't work properly -- the highlight is never activated as the mouse
moves over the options.
>How-To-Repeat:
start an Xterm under Xarm32VIDC, note that the menus come up, but
it isn't possible to select any option.
>Fix:
Apply the following patch to the X server code.
hw/netbsd/arm32vidc/rpccons.c
Index: rpccons.c
===================================================================
RCS file: /cvsroot/xsrc/xc/programs/Xserver/hw/netbsd/arm32vidc/rpccons.c,v
retrieving revision 1.1.1.1
diff -p -p -r1.1.1.1 rpccons.c
*** rpccons.c 1999/06/05 00:21:00 1.1.1.1
--- rpccons.c 2000/11/19 19:25:56
*************** void rpc_mouse_io(void)
*** 149,155 ****
{
int dy = 0, dx = 0;
struct mousebufrec mb;
! static int buttons = 0;
int was_mouse = 0;
xEvent x_event;
--- 149,155 ----
{
int dy = 0, dx = 0;
struct mousebufrec mb;
! static int buttons = BUTSTATMASK;
int was_mouse = 0;
xEvent x_event;
*************** void rpc_mouse_io(void)
*** 170,176 ****
dy -= mb.y;
/* Have the buttons changed ? */
! if (buttons != mb.status) {
if(LEFTB(buttons) != LEFTB(mb.status)){
x_event.u.u.detail = 1; /* leftmost */
x_event.u.u.type = LEFTB(mb.status) ?
--- 170,176 ----
dy -= mb.y;
/* Have the buttons changed ? */
! if (buttons != (mb.status & BUTSTATMASK)) {
if(LEFTB(buttons) != LEFTB(mb.status)){
x_event.u.u.detail = 1; /* leftmost */
x_event.u.u.type = LEFTB(mb.status) ?
*************** void rpc_mouse_io(void)
*** 189,195 ****
ButtonRelease : ButtonPress;
mieqEnqueue(&x_event);
}
! buttons = mb.status;
}
}
--- 189,195 ----
ButtonRelease : ButtonPress;
mieqEnqueue(&x_event);
}
! buttons = mb.status & BUTSTATMASK;
}
}
>Release-Note:
>Audit-Trail:
>Unformatted: