| 169 | } |
| 170 | |
| 171 | void DrawCamera::input_mouse_button_on_canvas_callback(World& w, const InputManager::MouseButtonCallbackArgs& button) { |
| 172 | if(!smoothMove.occurring && !isTouchTransforming && !w.main.g.gui.cursor_obstructed()) { |
| 173 | bool newIsAccurateZooming = (w.drawProg.controls.middleClickHeld && w.main.input.pen.isDown && w.main.conf.tabletOptions.zoomWhilePenDownAndButtonHeld) || // Hold middle click (pen button assigned to middle click) while pen is down |
| 174 | (w.drawProg.controls.middleClickHeld && w.main.input.key(InputManager::KEY_GENERIC_LCTRL).held) || // Hold middle click/pen button while holding control |
| 175 | (w.drawProg.controls.leftClickHeld && w.drawProg.drawTool->get_type() == DrawingProgramToolType::ZOOM); // Hold left click while on zoom tool |
| 176 | if(newIsAccurateZooming && !isAccurateZooming) { |
| 177 | startZoomMousePos = c.from_space(button.pos); |
| 178 | startZoomVal = c.inverseScale; |
| 179 | startZoomCameraPos = c.pos; |
| 180 | } |
| 181 | isAccurateZooming = newIsAccurateZooming; |
| 182 | |
| 183 | checks_after_input(w); |
| 184 | } |
| 185 | else |
| 186 | isAccurateZooming = false; |
| 187 | } |
| 188 | |
| 189 | void DrawCamera::input_mouse_motion_callback(World& w, const InputManager::MouseMotionCallbackArgs& motion) { |
| 190 | if(!smoothMove.occurring && !isTouchTransforming) { |
no test coverage detected