Add zoom method that only uses the pen

This commit is contained in:
Yousef Khadadeh 2026-01-16 17:42:00 +03:00
parent 4947318387
commit 643e8d54ab
4 changed files with 19 additions and 11 deletions

View file

@ -245,16 +245,6 @@ void DrawingProgram::update() {
tool_temporary_switch_update();
controls.cursorHoveringOverCanvas = !world.main.toolbar.io->hoverObstructed;
controls.leftClick = controls.cursorHoveringOverCanvas && world.main.input.mouse.leftClicks;
if(controls.leftClick) {
controls.leftClickHeld = true;
world.main.toolbar.rightClickPopupLocation = std::nullopt;
}
if(controls.leftClickHeld && !world.main.input.mouse.leftDown) {
controls.leftClick = false;
controls.leftClickHeld = false;
controls.leftClickReleased = true;
}
controls.middleClick = controls.cursorHoveringOverCanvas && (world.main.input.mouse.middleClicks || world.main.input.pen.buttons[world.main.toolbar.tabletOptions.middleClickButton].pressed);
bool middleHeld = world.main.input.mouse.middleDown || world.main.input.pen.buttons[world.main.toolbar.tabletOptions.middleClickButton].held;
@ -268,6 +258,18 @@ void DrawingProgram::update() {
controls.middleClickReleased = true;
}
// Left click will be ignored if middle click is held (and left click held state will be gone once middle click is pressed)
controls.leftClick = controls.cursorHoveringOverCanvas && world.main.input.mouse.leftClicks && !controls.middleClickHeld;
if(controls.leftClick) {
controls.leftClickHeld = true;
world.main.toolbar.rightClickPopupLocation = std::nullopt;
}
if(controls.leftClickHeld && (!world.main.input.mouse.leftDown || controls.middleClickHeld)) {
controls.leftClick = false;
controls.leftClickHeld = false;
controls.leftClickReleased = true;
}
if(controls.cursorHoveringOverCanvas && (world.main.input.mouse.rightClicks || world.main.input.pen.buttons[world.main.toolbar.tabletOptions.rightClickButton].pressed)) {
if(world.main.toolbar.rightClickPopupLocation)
world.main.toolbar.rightClickPopupLocation = std::nullopt;