[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pointer buttons of Xhpc



おおしまです。

Moblie Gear IIのXhpcのたぶん初期状態で、

% xmodmap -pp
There are 5 pointer buttons defined.

    Physical        Button
     Button          Code
        1              1
        2              2
        3              3
        4            152
        5             81

となって、Button 4,5の値が異常になっています。
これはhw/netbsd/hpc/hpcMouse.cのhpcMouseProc()で

  BYTE   map[4];
     :
	 map[1] = 1;
         map[2] = 2;
         map[3] = 3;
         InitPointerDeviceStruct(
		pMouse, map, 5, miPointerGetMotionEvents,
 		hpcMouseCtrl, miPointerGetMotionBufferSize());

となっていて、map[]が3つしかないのにInitPointerDeviceStructに5個
あると渡してるためにmapの後ろエリア外を初期値として参照してしまっ
ているようです。そこで単純に
 
  BYTE   map[6];
     :
	 map[1] = 1;
         map[2] = 2;
         map[3] = 3;
         map[4] = 4;
         map[5] = 5;

としてしまえば直るみたいです。

実際に5個もボタン使っていないのですが、Terios等でusb mouse使ってい
る場合は何か現象が出るのかもしれません。

xmodmapで割り当て直してしまえばどうってことはないんですが、一応報告
しておきます。

# dix/devices.cのInitButtonClassDeviceStruct()見るとmap[]を1からしか
# 使ってなくて配列1個余分に必要なんですね…うーん。