On Nov 26, 2015, at 6:45 AM, Peter Maydell wrote:

> On 26 November 2015 at 01:14, Programmingkid <programmingk...@gmail.com> 
> wrote:
>> When QEMU is brought to the foreground, the click event that activates QEMU
>> should not go to the guest. Accidents happen when they do go to the guest
>> without giving the user a change to handle them. Buttons are clicked 
>> accidently.
>> Windows are closed accidently. Volumes are unmounted accidently. This patch
>> prevents these accidents from happening.
>> 
>> Signed-off-by: John Arbuckle <programmingk...@gmail.com>
>> 
>> ---
>> Added code that handles the right mouse button and the other mouse button.
> 
> This seems like a fair bit of repeated code. Does the change
> below do the right thing?
YES! Excellent job with this one. It's very compact. 

> I think it ought to work but I don't have
> any guests handy which use the mouse to check with.

Really? This Debian distro should fix that: 
http://cdimage.debian.org/cdimage/archive/5.0.10/powerpc/iso-cd/

> 
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index 1554331..d76b942 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -724,7 +724,15 @@ QemuCocoaView *cocoaView;
>     }
> 
>     if (mouse_event) {
> -        if (last_buttons != buttons) {
> +        /* Don't send button events to the guest unless we've got a
> +         * mouse grab or window focus. If we have neither then this event
> +         * is the user clicking on the background window to activate and
> +         * bring us to the front, which will be done by the sendEvent
> +         * call below. We definitely don't want to pass that click through
> +         * to the guest.
> +         */
> +        if ((isMouseGrabbed || [[self window] isKeyWindow]) &&
> +            (last_buttons != buttons)) {
>             static uint32_t bmap[INPUT_BUTTON_MAX] = {
>                 [INPUT_BUTTON_LEFT]       = MOUSE_EVENT_LBUTTON,
>                 [INPUT_BUTTON_MIDDLE]     = MOUSE_EVENT_MBUTTON,
> 
> 
> 
> (if this is the activation click then we will do the mousegrab
> on mouse-button-up so it's not necessary to do it on button-down,
> I think.)
> 
> thanks
> -- PMM

Reviewed-by: John Arbuckle <programmingk...@gmail.com>


Reply via email to