]> git.lyx.org Git - features.git/commitdiff
fix scroll wheel on mac (bug #6775)
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 30 Jun 2010 12:38:39 +0000 (12:38 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 30 Jun 2010 12:38:39 +0000 (12:38 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34731 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiWorkArea.cpp

index bef40d88cbc16e82170ff4fa12d06b5c457d7718..b7e68ff77cdb7343c87a90375e1c4c388ad2fea5 100644 (file)
@@ -816,9 +816,9 @@ void GuiWorkArea::wheelEvent(QWheelEvent * ev)
 {
        // Wheel rotation by one notch results in a delta() of 120 (see
        // documentation of QWheelEvent)
-       int const delta = ev->delta() / 120;
+       double const delta = ev->delta() / 120.0;
        if (ev->modifiers() & Qt::ControlModifier) {
-               docstring arg = convert<docstring>(5 * delta);
+               docstring arg = convert<docstring>(int(5 * delta));
                lyx::dispatch(FuncRequest(LFUN_BUFFER_ZOOM_IN, arg));
                return;
        }
@@ -830,11 +830,8 @@ void GuiWorkArea::wheelEvent(QWheelEvent * ev)
        int scroll_value = lines > page_step
                ? page_step : lines * verticalScrollBar()->singleStep();
 
-       // Take into account the rotation.
-       scroll_value *= delta;
-
-       // Take into account user preference.
-       scroll_value = int(scroll_value * lyxrc.mouse_wheel_speed);
+       // Take into account the rotation and the user preferences.
+       scroll_value = int(scroll_value * delta * lyxrc.mouse_wheel_speed);
        LYXERR(Debug::SCROLLING, "wheelScrollLines = " << lines
                        << " delta = " << delta << " scroll_value = " << scroll_value
                        << " page_step = " << page_step);