나는 Xlib에 수평 스플리터 위젯을 구현했다. 나는 사용자가 &을 스플리터 바에서 드래그 할 때 마우스를 움켜 잡기 위해 사용자가 동적으로 스플릿 바의 양쪽에있는 윈도우의 크기를 조정할 수 있도록 &을 움직일 수있다.X11 : 마우스 포인터를 실제로 가져 오는 방법은 무엇입니까?
나는 왼쪽 마우스 버튼을 놓은 후 XGrabPointer()
을 사용했습니다. 이후의 모든 마우스 동작 (드래그)은 왼쪽 버튼을 놓을 때까지 스플리터 창으로 전환되기를 바랍니다.
불행히도, 그런 식으로 작동하지 않는 것 같습니다. 사용자가 너무 빨리 드래그하고 마우스 포인터가 분할 창의 양쪽 중 하나에 들어가면 MotionEvent 메시지가 분할 자 윈도우가 아닌 해당 (자식) 윈도우로 전환됩니다.
내가 잘못 했습니까?
::XGrabPointer(mDisplay, window, True,
ButtonPressMask |
ButtonReleaseMask |
PointerMotionMask |
FocusChangeMask |
EnterWindowMask |
LeaveWindowMask,
GrabModeAsync,
GrabModeAsync,
RootWindow(mDisplay, DefaultScreen(mDisplay)),
None,
CurrentTime);
나는 내 자신의 대답을 받아들이 기는 싫지만 그냥 느슨한 말을 묶어 ... –