我在http://linux.die.net/man/3/xgetpointermapping找到了这两个 API 。我认为它们可以用来交换 linux 或 mac 系统上的鼠标按钮。我以下列方式使用它:
Display * curdisp; // Current display.
char curmap[MAX_NUM];// Current mapping.
int nmap; // number of mappings.
curdisp = XOpenDisplay(NULL);
nmap = XGetPointerMapping(curdisp, curmap, MAX_NUM);
if(!nmap)
return -1;
if(curmap[0] == '1' && curmap[2] == '3') {
curmap[0] = '3';
curmap[2] = '1';
} else {
curmap[0] = '1';
curmap[2] = '3';
}
//Set the mapping.
nmap = XSetPointerMapping(curdisp, curmap, nmap);
但是调用 XSetPointerMapping 返回 0 并且对鼠标按钮没有影响。谁能给出一些使用 XSetPointerMapping 交换鼠标按钮的例子?或如何正确使用?它会立即起作用吗?
使用的操作系统是 Mac OS X 10.7.4。