我已经在Xlib中实现了一个水平拆分器小部件。当用户在分隔条上单击&拖动时(以便用户可以动态地移动分隔条&,从而调整分隔条任一侧的窗口大小),我试图抓住鼠标。X11:我怎样才能真正抓住鼠标指针?
我在收到左键单击之后使用了XGrabPointer()
,希望所有将来的鼠标移动(拖动)都将被转移到分隔窗口,直到释放左键。
不幸的是,它似乎并没有像那样工作。如果用户拖动太快并且鼠标指针进入分割任一侧的窗口之一,则MotionEvent消息将被转移到该(子)窗口而不是分割窗口。
我做错了什么?我XGrabPointer()
电话如下:
::XGrabPointer(mDisplay, window, True,
ButtonPressMask |
ButtonReleaseMask |
PointerMotionMask |
FocusChangeMask |
EnterWindowMask |
LeaveWindowMask,
GrabModeAsync,
GrabModeAsync,
RootWindow(mDisplay, DefaultScreen(mDisplay)),
None,
CurrentTime);
我讨厌接受我自己的答案,但只是为了配合松散的目的... – 2010-07-23 22:49:25