Index: /experimental/distortionNG/distortionNG.cpp
===================================================================
--- /experimental/distortionNG/distortionNG.cpp	(revision 309)
+++ /experimental/distortionNG/distortionNG.cpp	(revision 310)
@@ -87,5 +87,5 @@
 	osg::ref_ptr<osg::Geode> geode = new osg::Geode;
 	geode->addDrawable( _highlighter.get() );
-	geode->getOrCreateStateSet()->setAttributeAndModes( new osg::Point(10.0f) );
+	geode->getOrCreateStateSet()->setAttributeAndModes( new osg::Point(8.0f) );
 	geode->getOrCreateStateSet()->setMode( GL_LIGHTING, osg::StateAttribute::OFF );
 
@@ -95,23 +95,43 @@
 bool distortionHandler::handle( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa )
 {
-    if ( ea.getEventType()!=osgGA::GUIEventAdapter::RELEASE ||
-         ea.getButton()!=osgGA::GUIEventAdapter::LEFT_MOUSE_BUTTON ||
-         !(ea.getModKeyMask()&osgGA::GUIEventAdapter::MODKEY_CTRL) )
-        return false;
-    
-    osgViewer::View* viewer = dynamic_cast<osgViewer::View*>(&aa);
-    if ( viewer )
-    {
-        osg::ref_ptr<osgUtil::LineSegmentIntersector> intersector = new osgUtil::LineSegmentIntersector(osgUtil::Intersector::WINDOW, ea.getX(), ea.getY());
-        osgUtil::IntersectionVisitor iv( intersector.get() );
-        viewer->getCamera()->accept( iv );
-        
-        if ( intersector->containsIntersections() )
-        {
-            osgUtil::LineSegmentIntersector::Intersection& result = *(intersector->getIntersections().begin());
-            computeSelectedVertex( result );
-        }
-    }
-    return false;
+	// Only pressing CTRL activates distortion editing
+	if ( !(ea.getModKeyMask()&osgGA::GUIEventAdapter::MODKEY_CTRL) )
+		return false;	// False means not handled.
+
+
+    if ( ea.getEventType() == osgGA::GUIEventAdapter::PUSH && ea.getButton() == osgGA::GUIEventAdapter::LEFT_MOUSE_BUTTON )
+	{
+		osgViewer::View* viewer = dynamic_cast<osgViewer::View*>(&aa);
+		if ( viewer )
+		{
+			osg::ref_ptr<osgUtil::LineSegmentIntersector> intersector = new osgUtil::LineSegmentIntersector(osgUtil::Intersector::WINDOW, ea.getX(), ea.getY());
+			osgUtil::IntersectionVisitor iv( intersector.get() );
+			viewer->getCamera()->accept( iv );
+	        
+			if ( intersector->containsIntersections() )
+			{
+				osgUtil::LineSegmentIntersector::Intersection& result = *(intersector->getIntersections().begin());
+				computeSelectedVertex( result );
+			}
+		}
+	}
+
+	if ( ea.getEventType() == osgGA::GUIEventAdapter::DRAG  )
+	{
+        osg::notify(osg::ALWAYS)<<std::endl<<"ea.getGraphicsContext()="<<ea.getGraphicsContext()<<std::endl;
+        osg::notify(osg::ALWAYS)<<"ea.getXnormalized()="<<ea.getXnormalized()<<std::endl;
+        osg::notify(osg::ALWAYS)<<"ea.getYnormalized()="<<ea.getYnormalized()<<std::endl;
+        osg::notify(osg::ALWAYS)<<"ea.getX()="<<ea.getX()<<std::endl;
+        osg::notify(osg::ALWAYS)<<"ea.getXin()="<<ea.getXmin()<<std::endl;
+        osg::notify(osg::ALWAYS)<<"ea.getXmax()="<<ea.getXmax()<<std::endl;
+        osg::notify(osg::ALWAYS)<<"ea.getY()="<<ea.getY()<<std::endl;
+        osg::notify(osg::ALWAYS)<<"ea.getYin()="<<ea.getYmin()<<std::endl;
+        osg::notify(osg::ALWAYS)<<"ea.getYmax()="<<ea.getYmax()<<std::endl;
+
+		return true;	// true means event handeld: not forwarded to the camera manipulator;
+	}
+
+
+    return false;	// False means not handled.
 }
 
Index: /experimental/distortionNG/distortionNG.h
===================================================================
--- /experimental/distortionNG/distortionNG.h	(revision 309)
+++ /experimental/distortionNG/distortionNG.h	(revision 310)
@@ -17,5 +17,5 @@
 public:
 	distortionHandler( osg::Camera* camera )
-    : _highlighter(0), _camera(camera), _highlightColor( osg::Vec4(1.0f, 0.0f, 0.0f, 1.0f) ) {}
+    : _highlighter(0), _camera(camera), _highlightColor( osg::Vec4(1.0f, 1.0f, 0.0f, 1.0f) ) {}
 
     void computeSelectedVertex( osgUtil::LineSegmentIntersector::Intersection& result );
Index: /experimental/distortionNG/distortionNG.vcproj
===================================================================
--- /experimental/distortionNG/distortionNG.vcproj	(revision 309)
+++ /experimental/distortionNG/distortionNG.vcproj	(revision 310)
@@ -182,4 +182,8 @@
 			</File>
 			<File
+				RelativePath=".\extViewer.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\main.cpp"
 				>
@@ -195,4 +199,8 @@
 				>
 			</File>
+			<File
+				RelativePath=".\extViewer.h"
+				>
+			</File>
 		</Filter>
 		<Filter
Index: /experimental/distortionNG/extViewer.cpp
===================================================================
--- /experimental/distortionNG/extViewer.cpp	(revision 310)
+++ /experimental/distortionNG/extViewer.cpp	(revision 310)
@@ -0,0 +1,9 @@
+#include "extViewer.h"
+
+extViewer::extViewer(void)
+{
+}
+
+extViewer::~extViewer(void)
+{
+}
Index: /experimental/distortionNG/extViewer.h
===================================================================
--- /experimental/distortionNG/extViewer.h	(revision 310)
+++ /experimental/distortionNG/extViewer.h	(revision 310)
@@ -0,0 +1,10 @@
+#pragma once
+#include<osgViewer/Viewer>
+
+class extViewer : public osgViewer::Viewer
+
+{
+public:
+	extViewer(void);
+	virtual ~extViewer(void);
+};
Index: /experimental/distortionNG/main.cpp
===================================================================
--- /experimental/distortionNG/main.cpp	(revision 309)
+++ /experimental/distortionNG/main.cpp	(revision 310)
@@ -17,4 +17,5 @@
 */
 
+#include "extViewer.h"
 #include "distortionNG.h"
 
