我已經在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