No, it disables nothing cause continous grab was disabled since ever on OSX for 
tablet to avoid flickering objects :)
Dunno why you inroduced this now, afaik we donĀ“t need it, but i now got odd 
behaviour with mouse and tablet attached.

Guess we should take all this back on OSX ?

Jens



Am 07.05.2012 um 12:53 schrieb Brecht Van Lommel:

> Revision: 46383
>          
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46383
> Author:   blendix
> Date:     2012-05-07 10:53:12 +0000 (Mon, 07 May 2012)
> Log Message:
> -----------
> GHOST/Cocoa: detect tablet event to disable continuous grab. Don't have tablet
> to test it though, can someone with Mac + tablet confirm if continuous grab
> gets automatically disabled when using the tablet?
> 
> Modified Paths:
> --------------
>    trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h
>    trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
> 
> Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h
> ===================================================================
> --- trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h     2012-05-07 
> 10:53:09 UTC (rev 46382)
> +++ trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.h     2012-05-07 
> 10:53:12 UTC (rev 46383)
> @@ -247,6 +247,7 @@
>        * @return Indication whether the event was handled.
>        */
>       GHOST_TSuccess handleTabletEvent(void *eventPtr, short eventType);
> +     bool handleTabletEvent(void *eventPtr);
> 
>       /**
>        * Handles a mouse event.
> 
> Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
> ===================================================================
> --- trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm    2012-05-07 
> 10:53:09 UTC (rev 46382)
> +++ trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm    2012-05-07 
> 10:53:12 UTC (rev 46383)
> @@ -1421,7 +1421,24 @@
>       return GHOST_kSuccess;
> }
> 
> +bool GHOST_SystemCocoa::handleTabletEvent(void *eventPtr)
> +{
> +     NSEvent *event = (NSEvent *)eventPtr;
> 
> +     switch ([event subtype]) {
> +             case NX_SUBTYPE_TABLET_POINT:
> +                     handleTabletEvent(eventPtr, NSTabletPoint);
> +                     return true;
> +             case NX_SUBTYPE_TABLET_PROXIMITY:
> +                     handleTabletEvent(eventPtr, NSTabletProximity);
> +                     return true;
> +             default:
> +                     //No tablet event included : do nothing
> +                     return false;
> +     }
> +
> +}
> +
> GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
> {
>       NSEvent *event = (NSEvent *)eventPtr;
> @@ -1432,6 +1449,8 @@
>               //printf("\nW failure for event 0x%x",[event type]);
>               return GHOST_kFailure;
>       }
> +
> +     bool is_tablet = false;
>       
>       switch ([event type])
>     {
> @@ -1440,17 +1459,7 @@
>               case NSOtherMouseDown:
>                       pushEvent(new GHOST_EventButton([event timestamp]*1000, 
> GHOST_kEventButtonDown, window, convertButton([event buttonNumber])));
>                       //Handle tablet events combined with mouse events
> -                     switch ([event subtype]) {
> -                             case NX_SUBTYPE_TABLET_POINT:
> -                                     handleTabletEvent(eventPtr, 
> NSTabletPoint);
> -                                     break;
> -                             case NX_SUBTYPE_TABLET_PROXIMITY:
> -                                     handleTabletEvent(eventPtr, 
> NSTabletProximity);
> -                                     break;
> -                             default:
> -                                     //No tablet event included : do nothing
> -                                     break;
> -                     }
> +                     is_tablet = handleTabletEvent(event);
>                       break;
>                                               
>               case NSLeftMouseUp:
> @@ -1458,45 +1467,21 @@
>               case NSOtherMouseUp:
>                       pushEvent(new GHOST_EventButton([event timestamp]*1000, 
> GHOST_kEventButtonUp, window, convertButton([event buttonNumber])));
>                       //Handle tablet events combined with mouse events
> -                     switch ([event subtype]) {
> -                             case NX_SUBTYPE_TABLET_POINT:
> -                                     handleTabletEvent(eventPtr, 
> NSTabletPoint);
> -                                     break;
> -                             case NX_SUBTYPE_TABLET_PROXIMITY:
> -                                     handleTabletEvent(eventPtr, 
> NSTabletProximity);
> -                                     break;
> -                             default:
> -                                     //No tablet event included : do nothing
> -                                     break;
> -                     }
> +                     is_tablet = handleTabletEvent(event);
>                       break;
>                       
>               case NSLeftMouseDragged:
>               case NSRightMouseDragged:
>               case NSOtherMouseDragged:                               
>                       //Handle tablet events combined with mouse events
> -                     switch ([event subtype]) {
> -                             case NX_SUBTYPE_TABLET_POINT:
> -                                     handleTabletEvent(eventPtr, 
> NSTabletPoint);
> -                                     break;
> -                             case NX_SUBTYPE_TABLET_PROXIMITY:
> -                                     handleTabletEvent(eventPtr, 
> NSTabletProximity);
> -                                     break;
> -                             default:
> -                                     //No tablet event included : do nothing
> -                                     break;
> -                     }
> +                     is_tablet = handleTabletEvent(event);
>                       
>               case NSMouseMoved: 
>                       {
>                               GHOST_TGrabCursorMode grab_mode = 
> window->getCursorGrabMode();
> 
> -                             /* TODO: CHECK IF THIS IS A TABLET EVENT */
> -                             bool is_tablet = false;
> -
> -                             if (is_tablet && 
> window->getCursorGrabModeIsWarp()) {
> +                             if (is_tablet && 
> window->getCursorGrabModeIsWarp())
>                                       grab_mode = GHOST_kGrabDisable;
> -                             }
> 
>                               switch (grab_mode) {
>                                       case GHOST_kGrabHide: //Cursor hidden 
> grab operation : no cursor move
> 
> _______________________________________________
> Bf-blender-cvs mailing list
> bf-blender-...@blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs

_____________________________________

Jens Verwiebe  -  Komposition - Audiotechnik -
Allerskehre 44  -  22309 Hamburg

Tel.: +49 40 68 78 50
mobil: +49 172 400 49 07
mailto: i...@jensverwiebe.de
web:  http://www.jensverwiebe.de
_____________________________________

_______________________________________________
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to