我在Xlib中实现了一个水平分割器小部件。当用户点击并拖动分割条时,我试图抓住鼠标(这样用户就可以动态移动分割,从而调整分割条两侧的窗口大小)。
我用过 XGrabPointer()
在收到左键单击后,希望所有未来的鼠标移动(拖动)都将转移到拆分器窗口,直到释放左键。
不幸的是,它似乎并没有像那样工作。如果用户拖得太快并且鼠标指针进入分割两侧的一个窗口,则MotionEvent消息将转移到该(子)窗口而不是分割器窗口。
我做错了什么?我的 XGrabPointer()
电话如下:
::XGrabPointer(mDisplay, window, True,
ButtonPressMask |
ButtonReleaseMask |
PointerMotionMask |
FocusChangeMask |
EnterWindowMask |
LeaveWindowMask,
GrabModeAsync,
GrabModeAsync,
RootWindow(mDisplay, DefaultScreen(mDisplay)),
None,
CurrentTime);