[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46383] trunk/blender/intern/ghost/intern: GHOST/Cocoa: detect tablet event to disable continuous grab.
Jens Verwiebe
info at jensverwiebe.de
Mon May 7 14:06:16 CEST 2012
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-cvs at 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: info at jensverwiebe.de
web: http://www.jensverwiebe.de
_____________________________________
More information about the Bf-committers
mailing list