Revision: 38670
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38670
Author:   merwin
Date:     2011-07-25 00:03:07 +0000 (Mon, 25 Jul 2011)
Log Message:
-----------
spoof MOUSEMOVE after NDOF_MOTION event, added comments

Modified Paths:
--------------
    branches/merwin-spacenav/source/blender/editors/sculpt_paint/paint_stroke.c
    
branches/merwin-spacenav/source/blender/windowmanager/intern/wm_event_system.c

Modified: 
branches/merwin-spacenav/source/blender/editors/sculpt_paint/paint_stroke.c
===================================================================
--- branches/merwin-spacenav/source/blender/editors/sculpt_paint/paint_stroke.c 
2011-07-25 00:00:53 UTC (rev 38669)
+++ branches/merwin-spacenav/source/blender/editors/sculpt_paint/paint_stroke.c 
2011-07-25 00:03:07 UTC (rev 38670)
@@ -832,6 +832,10 @@
        float mouse[2];
        int first= 0;
 
+       // let NDOF motion pass through to the 3D view so we can paint and 
rotate simultaneously!
+       // this isn't perfect... even when an extra MOUSEMOVE is spoofed, the 
stroke discards it
+       // since the 2D deltas are zero -- code in this file needs to be 
updated to use the
+       // post-NDOF_MOTION MOUSEMOVE
        if (event->type == NDOF_MOTION)
                return OPERATOR_PASS_THROUGH;
 

Modified: 
branches/merwin-spacenav/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- 
branches/merwin-spacenav/source/blender/windowmanager/intern/wm_event_system.c  
    2011-07-25 00:00:53 UTC (rev 38669)
+++ 
branches/merwin-spacenav/source/blender/windowmanager/intern/wm_event_system.c  
    2011-07-25 00:03:07 UTC (rev 38670)
@@ -1815,7 +1815,10 @@
                                        /* for regions having custom cursors */
                                        wm_paintcursor_test(C, event);
                                }
-                               
+                               else if (event->type==NDOF_MOTION) {
+                                       win->addmousemove = TRUE;
+                               }
+
                                for(sa= win->screen->areabase.first; sa; sa= 
sa->next) {
                                        if(wm_event_inside_i(event, 
&sa->totrct)) {
                                                CTX_wm_area_set(C, sa);
@@ -1879,7 +1882,10 @@
                                if(doit && win->screen && 
win->screen->subwinactive != win->screen->mainwin) {
                                        win->eventstate->prevx= event->x;
                                        win->eventstate->prevy= event->y;
+                                       //printf("win->eventstate->prev = %d 
%d\n", event->x, event->y);
                                }
+                               else
+                                       ;//printf("not setting prev to %d 
%d\n", event->x, event->y);
                        }
                        
                        /* store last event for this window */
@@ -1922,6 +1928,7 @@
                /* only add mousemove when queue was read entirely */
                if(win->addmousemove && win->eventstate) {
                        wmEvent tevent= *(win->eventstate);
+                       //printf("adding MOUSEMOVE %d %d\n", tevent.x, 
tevent.y);
                        tevent.type= MOUSEMOVE;
                        tevent.prevx= tevent.x;
                        tevent.prevy= tevent.y;
@@ -2408,6 +2415,8 @@
 
                                update_tablet_data(win, &event);
                                wm_event_add(win, &event);
+
+                               //printf("sending MOUSEMOVE %d %d\n", event.x, 
event.y);
                                
                                /* also add to other window if event is there, 
this makes overdraws disappear nicely */
                                /* it remaps mousecoord to other window in 
event */
@@ -2586,6 +2595,8 @@
                        attach_ndof_data(&event, customdata);
                        wm_event_add(win, &event);
 
+                       //printf("sending NDOF_MOTION, prev = %d %d\n", 
event.x, event.y);
+
                        break;
                }
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to