Revision: 6768
          http://playerstage.svn.sourceforge.net/playerstage/?rev=6768&view=rev
Author:   alexcb
Date:     2008-07-04 17:10:12 -0700 (Fri, 04 Jul 2008)

Log Message:
-----------
modified deselection to allow moving the world while keeping a selected group 
selected

Modified Paths:
--------------
    code/stage/trunk/libstage/canvas.cc
    code/stage/trunk/libstage/stage.hh

Modified: code/stage/trunk/libstage/canvas.cc
===================================================================
--- code/stage/trunk/libstage/canvas.cc 2008-07-04 23:45:09 UTC (rev 6767)
+++ code/stage/trunk/libstage/canvas.cc 2008-07-05 00:10:12 UTC (rev 6768)
@@ -225,27 +225,14 @@
        switch(event) 
        {
        case FL_MOUSEWHEEL:
-               if( selected_models )
-               {
-                       // rotate all selected models
-                       for( GList* it = selected_models; it; it=it->next )
-                       {
-                               StgModel* mod = (StgModel*)it->data;
-                               mod->AddToPose( 0,0,0, 
0.1*(double)Fl::event_dy() );
-                       }
-                       redraw();
+               if( perspectiveCam == true ) {
+                       perspective_camera.scroll( Fl::event_dy() / 10.0 );
                }
-               else
-               {
-                       if( perspectiveCam == true ) {
-                               perspective_camera.scroll( Fl::event_dy() / 
10.0 );
-                       }
-                       else {
-                               camera.scale( Fl::event_dy(),  Fl::event_x(), 
w(), Fl::event_y(), h() );
-                       }
-                       invalidate();
-                       redraw();
+               else {
+                       camera.scale( Fl::event_dy(),  Fl::event_x(), w(), 
Fl::event_y(), h() );
                }
+               invalidate();
+               redraw();
                return 1;
                        
        case FL_MOVE: // moused moved while no button was pressed
@@ -291,7 +278,11 @@
            selectedModel = false;
            switch( Fl::event_button() )
              {
-             case 1:                   
+             case 1:
+        clicked_empty_space = ( mod == NULL );
+                                 empty_space_startx = startx;
+                                 empty_space_starty = starty;
+                       std::cout << "clicked: " << startx << " " << 
Fl::event_x() << std::endl;
                if( mod ) { 
                  // clicked a model
                  if ( Fl::event_state( FL_SHIFT ) ) {
@@ -314,10 +305,7 @@
                    selectedModel = true; // selected a model
                  }
                }
-               else {
-                 // clicked on empty space, unselect all
-                 unSelectAll();
-               }
+               
                return 1;
              case 3:
                {
@@ -377,7 +365,10 @@
        } // end case FL_DRAG
 
        case FL_RELEASE:   // mouse button released
-               
+                       if( empty_space_startx == Fl::event_x() && 
empty_space_starty == Fl::event_y() && clicked_empty_space == true ) {
+                         // clicked on empty space, unselect all
+                         unSelectAll();
+                       }
                return 1;
 
        case FL_FOCUS:

Modified: code/stage/trunk/libstage/stage.hh
===================================================================
--- code/stage/trunk/libstage/stage.hh  2008-07-04 23:45:09 UTC (rev 6767)
+++ code/stage/trunk/libstage/stage.hh  2008-07-05 00:10:12 UTC (rev 6768)
@@ -1929,6 +1929,8 @@
   
   int startx, starty;
   bool selectedModel;
+  bool clicked_empty_space;
+       int empty_space_startx, empty_space_starty;
   GList* selected_models; ///< a list of models that are currently
   ///selected by the user
   StgModel* last_selection; ///< the most recently selected model


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Playerstage-commit mailing list
Playerstage-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to