[Interest] [QtGui] Clip cursor position
Jan Dasselaar
jan at altus-escon.com
Tue Dec 22 13:34:45 CET 2015
Hello Konstantin,
I figured it would be possible to add an event filter to the overlay
window to:
a. restrict the mouse to the desired area
b. dispatch other mouse event to widgets below.
Won't be easy, but it seems not impossible.
Regards,
Jan
On 22-12-2015 12:22, Nye wrote:
> Hello Jan,
> Thanks for the suggestion, but I'm not really convinced that this'd
> help, since installing an event filter on the application object is
> effectively doing the same thing as grabbing the mouse (at least while
> the mouse is over an application window). Additionally the "grabMouse"
> runs into the trouble that I'd have to manually dispatch the messages
> to their corresponding widgets and it doesn't really prevent the mouse
> from leaving an area (or widget/window), it just ensures that the
> particular widget will get all mouse events (whether or not they occur
> in its client area). In windows the API seems to allow the behavior
> I'm after
> (https://msdn.microsoft.com/en-us/library/windows/desktop/ms648383(v=vs.85).aspx
> <https://msdn.microsoft.com/en-us/library/windows/desktop/ms648383%28v=vs.85%29.aspx>)
> but I'm not sure if this is even possible for X11.
>
> Kind regards,
> Konstantin.
>
> On Tue, Dec 22, 2015 at 12:52 PM, Jan Dasselaar <jan at altus-escon.com
> <mailto:jan at altus-escon.com>> wrote:
>
> Hello Nye,
>
> Maybe you can use the QWidget::grabMouse() function for that.
> This in combination with an overlay widget (visible but fully
> transparent) over your application.
>
> Regards,
> Jan
>
>
> On 22-12-2015 10:44, Nye wrote:
>> Hello,
>> Is it possible to clip the mouse cursor to a specific area of the
>> screen? I've tried to limit the cursor movement by installing an
>> event filter on the application object and moving it back when
>> its position got outside of my target rectangle, but the results
>> proved to be unsatisfactory, as there is considerable "flicker".
>> I then dig deeper and tried installing a window system event
>> handler on QWindowSystemInterfacePrivate by subclassing the
>> QWindowSystemEventHandler class available, reimplementing the
>> sendEvent() function, and plugging that in the appropriate place,
>> but (as expected) the behavior was only marginally better. I'm
>> considering changing the QPlatformWindow and trying to do it
>> directly from there (actually from QXcbWindow) but decided to ask
>> first if there is actually a better way. Any input is highly
>> appreciated.
>>
>> Kind regards.
>>
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org <mailto:Interest at qt-project.org>
>> http://lists.qt-project.org/mailman/listinfo/interest
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org <mailto:Interest at qt-project.org>
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20151222/06a65706/attachment.html>
More information about the Interest
mailing list