Campbell added code for this on X11 and added a note to implement it
for Mac/Windows. I can revert the code, but can't see any existing
code that is already doing this, where is it?

Brecht.

On Mon, May 7, 2012 at 2:06 PM, Jens Verwiebe <[email protected]> wrote:
> 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
>> [email protected]
>> 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: [email protected]
> web:  http://www.jensverwiebe.de
> _____________________________________
>
> _______________________________________________
> Bf-committers mailing list
> [email protected]
> http://lists.blender.org/mailman/listinfo/bf-committers
_______________________________________________
Bf-committers mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to