X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fmanipulator.cpp;h=2e16311501ee112e6271ce0d9aa7bd3381d1a64c;hb=a993f204ba2cd282637814caec3ab115040fc0cc;hp=d1e458baed645445fd11f1853b2fb377e0632bc6;hpb=ec1f75d72e5c4f7f7c9dafdf80f58c30ffb1a855;p=r2c2.git diff --git a/source/designer/manipulator.cpp b/source/designer/manipulator.cpp index d1e458b..2e16311 100644 --- a/source/designer/manipulator.cpp +++ b/source/designer/manipulator.cpp @@ -17,8 +17,8 @@ Manipulator::Manipulator(Designer &d, Input::Mouse &m, Selection &s): mode(NONE), angle(0) { - mouse.signal_button_press.connect(sigc::mem_fun(this, &Manipulator::button_press)); - mouse.signal_axis_motion.connect(sigc::mem_fun(this, &Manipulator::axis_motion)); + mouse.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Manipulator::button_press), false)); + mouse.signal_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Manipulator::axis_motion), false)); selection.signal_changed.connect(sigc::mem_fun(this, &Manipulator::selection_changed)); } @@ -48,6 +48,8 @@ void Manipulator::start_elevate() cancel(); mode = ELEVATE; + + elev_origin = pointer.y; } bool Manipulator::start_extend() @@ -361,7 +363,7 @@ void Manipulator::button_press(unsigned btn) } } -void Manipulator::axis_motion(unsigned axis, float value, float change) +void Manipulator::axis_motion(unsigned axis, float value, float) { if(axis==0) pointer.x = value; @@ -428,7 +430,7 @@ void Manipulator::axis_motion(unsigned axis, float value, float change) } else if(mode==ELEVATE && axis==1) { - float dz = -change; + float dz = pointer.y-elev_origin; signal_status.emit(format("Elevation: %+.0fmm (%.0fmm)", dz*1000, (center.z+dz)*1000));