This is an automated email from the git hooks/post-receive script. thansen pushed a commit to branch master in repository aseprite.
commit af2c2838e00c0a39dd17e95b00150d588f1882ab Author: David Capello <[email protected]> Date: Fri May 27 13:15:13 2016 -0300 Add new option to zoom sliding two fingers on OS X trackpad It was requested here: http://steamcommunity.com/app/431730/discussions/2/357286663677659387/ --- data/pref.xml | 1 + data/widgets/options.xml | 1 + src/app/commands/cmd_options.cpp | 10 +++++++ src/app/ui/editor/state_with_wheel_behavior.cpp | 36 ++++++++++++++++++------- 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/data/pref.xml b/data/pref.xml index b7cc6e4..88513ab 100644 --- a/data/pref.xml +++ b/data/pref.xml @@ -97,6 +97,7 @@ </section> <section id="editor" text="Editor"> <option id="zoom_with_wheel" type="bool" default="true" migrate="Options.ZoomWithMouseWheel" /> + <option id="zoom_with_slide" type="bool" default="false" /> <option id="zoom_from_center_with_wheel" type="bool" default="false" /> <option id="zoom_from_center_with_keys" type="bool" default="false" /> <option id="show_scrollbars" type="bool" default="true" migrate="Options.ShowScrollbars" /> diff --git a/data/widgets/options.xml b/data/widgets/options.xml index 0773a10..7198fc9 100644 --- a/data/widgets/options.xml +++ b/data/widgets/options.xml @@ -59,6 +59,7 @@ <vbox id="section_editor"> <separator text="Editor" horizontal="true" /> <check text="Zoom with scroll wheel" id="wheel_zoom" /> + <check text="Zoom sliding two fingers up or down" id="slide_zoom" /> <check text="Zoom from center with scroll wheel" id="zoom_from_center_with_wheel" /> <check text="Zoom from center with keys" id="zoom_from_center_with_keys" /> <check text="Show scroll-bars in sprite editor" id="show_scrollbars" tooltip="Show scroll-bars in all sprite editors." /> diff --git a/src/app/commands/cmd_options.cpp b/src/app/commands/cmd_options.cpp index c0fd221..a1c3397 100644 --- a/src/app/commands/cmd_options.cpp +++ b/src/app/commands/cmd_options.cpp @@ -153,6 +153,13 @@ public: // Zoom with Scroll Wheel wheelZoom()->setSelected(m_pref.editor.zoomWithWheel()); + // Zoom sliding two fingers +#if __APPLE__ + slideZoom()->setSelected(m_pref.editor.zoomWithSlide()); +#else + slideZoom()->setVisible(false); +#endif + // Checked background size checkedBgSize()->addItem("16x16"); checkedBgSize()->addItem("8x8"); @@ -214,6 +221,9 @@ public: m_pref.editor.zoomFromCenterWithKeys(zoomFromCenterWithKeys()->isSelected()); m_pref.editor.showScrollbars(showScrollbars()->isSelected()); m_pref.editor.zoomWithWheel(wheelZoom()->isSelected()); +#if __APPLE__ + m_pref.editor.zoomWithSlide(slideZoom()->isSelected()); +#endif m_pref.editor.rightClickMode(static_cast<app::gen::RightClickMode>(rightClickBehavior()->getSelectedItemIndex())); m_pref.editor.cursorColor(m_cursorColor->getColor()); m_pref.editor.brushPreview(static_cast<app::gen::BrushPreview>(brushPreview()->getSelectedItemIndex())); diff --git a/src/app/ui/editor/state_with_wheel_behavior.cpp b/src/app/ui/editor/state_with_wheel_behavior.cpp index f1f8ec4..a29759a 100644 --- a/src/app/ui/editor/state_with_wheel_behavior.cpp +++ b/src/app/ui/editor/state_with_wheel_behavior.cpp @@ -36,7 +36,8 @@ enum WHEEL_ACTION { WHEEL_NONE, bool StateWithWheelBehavior::onMouseWheel(Editor* editor, MouseMessage* msg) { - double dz = msg->wheelDelta().x + msg->wheelDelta().y; + gfx::Point delta = msg->wheelDelta(); + double dz = delta.x + delta.y; WHEEL_ACTION wheelAction = WHEEL_NONE; bool scrollBigSteps = false; @@ -50,21 +51,40 @@ bool StateWithWheelBehavior::onMouseWheel(Editor* editor, MouseMessage* msg) // Normal behavior: mouse wheel zooms If the message is from a // precise wheel i.e. a trackpad/touch-like device, we scroll by // default. - else if (Preferences::instance().editor.zoomWithWheel() && - !msg->preciseWheel()) { + else if (Preferences::instance().editor.zoomWithWheel() && !msg->preciseWheel()) { if (msg->ctrlPressed()) wheelAction = WHEEL_FRAME; - else if (msg->wheelDelta().x != 0 || msg->shiftPressed()) + else if (delta.x != 0 || msg->shiftPressed()) wheelAction = WHEEL_HSCROLL; else wheelAction = WHEEL_ZOOM; } + // Zoom sliding two fingers + else if (Preferences::instance().editor.zoomWithSlide() && msg->preciseWheel()) { + if (msg->ctrlPressed()) + wheelAction = WHEEL_FRAME; + else if (std::abs(delta.x) > std::abs(delta.y)) { + delta.y = 0; + dz = delta.x; + wheelAction = WHEEL_HSCROLL; + } + else if (msg->shiftPressed()) { + delta.x = 0; + dz = delta.y; + wheelAction = WHEEL_VSCROLL; + } + else { + delta.x = 0; + dz = delta.y; + wheelAction = WHEEL_ZOOM; + } + } // For laptops, it's convenient to that Ctrl+wheel zoom (because // it's the "pinch" gesture). else { if (msg->ctrlPressed()) wheelAction = WHEEL_ZOOM; - else if (msg->wheelDelta().x != 0 || msg->shiftPressed()) + else if (delta.x != 0 || msg->shiftPressed()) wheelAction = WHEEL_HSCROLL; else wheelAction = WHEEL_VSCROLL; @@ -131,12 +151,8 @@ bool StateWithWheelBehavior::onMouseWheel(Editor* editor, MouseMessage* msg) case WHEEL_VSCROLL: { View* view = View::getView(editor); gfx::Point scroll = view->viewScroll(); - gfx::Point delta(0, 0); - if (msg->preciseWheel()) { - delta = msg->wheelDelta(); - } - else { + if (!msg->preciseWheel()) { gfx::Rect vp = view->viewportBounds(); if (wheelAction == WHEEL_HSCROLL) { -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

