Tool cursor not drawn on touch devices, and fixed translating objects with touch

This commit is contained in:
Yousef Khadadeh 2026-03-05 12:36:34 +03:00
parent 8b46c31bd7
commit 19983c7b1c
5 changed files with 29 additions and 3 deletions

View file

@ -441,7 +441,7 @@ void DrawingProgramSelection::input_mouse_button_on_canvas_callback_modify_selec
check_add_stroke_color_change_undo();
}
else if(mouse_collided_with_selection_aabb()) {
translateData.startPos = drawP.world.get_mouse_world_pos();
translateData.startPos = drawP.world.drawData.cam.c.from_space(button.pos);
transformOpHappening = TransformOperation::TRANSLATE;
translateData.translateWithKeys = false;
check_add_stroke_color_change_undo();

View file

@ -184,7 +184,7 @@ bool BrushTool::prevent_undo_or_redo() {
}
void BrushTool::draw(SkCanvas* canvas, const DrawData& drawData) {
if(drawData.main->world->drawProg.controls.cursorHoveringOverCanvas) {
if(!drawP.world.main.input.isTouchDevice && drawData.main->world->drawProg.controls.cursorHoveringOverCanvas) {
auto relativeWidthResult = drawP.world.main.toolConfig.get_relative_width_stroke_size(drawP, drawP.world.drawData.cam.c.inverseScale);
if(relativeWidthResult.first.has_value()) {
SkPaint linePaint;

View file

@ -110,7 +110,7 @@ bool EraserTool::prevent_undo_or_redo() {
}
void EraserTool::draw(SkCanvas* canvas, const DrawData& drawData) {
if(drawData.main->world->drawProg.controls.cursorHoveringOverCanvas) {
if(!drawP.world.main.input.isTouchDevice && drawData.main->world->drawProg.controls.cursorHoveringOverCanvas) {
if(!lastPosOpt.has_value())
lastPosOpt = drawData.main->input.mouse.pos;
auto& lastPos = lastPosOpt.value();