* update simplifier distance to reflect zoom
The distance used in the iterative end-point fit algorithm to
determine if points can be removed no longer ignores the
zoom. As the zoom gets larger this distance will get smaller
and fewer points will be removed, thus making for finer grain
control over the drawing. As the zoom gets smaller the drawing
will get more coarse as more points are removed.
* remove the comment
Co-authored-by: John Dupuis <wasp7@Johns-MacBook-Pro.local>
Co-authored-by: Michal Srb <xixixao@seznam.cz>
This was an oversight to enable it for all the shapes. I don't believe that we want to be able to insert text on double click when drawing a rectangle for example. And it's definitely a broken experience when doing so for free draw.
Fixes part of #1935
* feat: calculate coords based on parent left and top so it renders correctly in host App
* fix text
* move offsets to state & fix bugs
* fix text jumping
* account for zoom in textWysiwyg & undo incorrect offsetting
Co-authored-by: dwelle <luzar.david@gmail.com>
* show group and ungroup action-icon
* change group-icon visiblilty
don't show group if selected is only a single element or a single group of elements
Co-authored-by: rene_mbp <harryloveslearning@googlemail.com>
* Refactor: use pointer down state for alt duplication flag
* Refactor: use pointer down state for drag state
* Refactor: simplify over scrollbars check
* Refactor: move pointer move handler out of pointer down handler
* Refactor: move pointer up handler out of pointer down handler
* Refactor: further simplify scrollbar check state in pointer down event
* Refactor: pull out initial pointer down state creation
* Refactor: introduce pointer down state to replace implicit closure state with an explicit object
* Refactor: use pointer down state for resize handle
* Refactor: use pointer down state for isResizing
* Refactor: use pointer down state for resizing offset
* Refactor: use pointer down state for hit element
* Refactor: move selection handling out of pointer down event handler
* Refactor: move text handling out of pointer down event handler
* Refactor: move linear tools handling out of pointer down event handler
* Refactor: move element creation out of pointer down handler
* Refactor: Move context menu touch device handling
* Refactor: Move more stuff out of pointer down
* Refactor: Move last coords into an object
* Refactor: Move scrollbar handling out of pointer down
* Refactor: simplify resizing in pointer down
* Refactor: further simplify resizing in pointer down
* Refactor: clarify clearing selection code
* Refactor: move out clearing selection from pointer down
* Refactor: further simplify deselection in pointer down
* Initial support for touch context menu
* Only deal with touch if it's available
* Fix touch checking
* Remove touch checking
* Added comments
* Combine onTouch with onPointer for mobile context menu support
* Implement Save without re-prompt and Save as
Fixes#1668
* Add save-as icon
* Make .excalidraw the default extension
* Only show save as button on supporting browsers
* implement line editing
* line editing with rotation
* ensure adding new points is disabled on point dragging
* fix hotkey replacement
* don't paint bounding box when creating new multipoint
* tweak points style, account for zoom and z-index
* don't persist editingLinearElement to localStorage
* don't mutate on noop points updates
* account for rotation when adding new point
* ensure clicking on points doesn't deselect element
* tweak history handling around editingline element
* update snapshots
* refactor pointerMove handling
* factor out point dragging
* factor out pointerDown
* improve positioning with rotation
* revert to use roughjs for calculating points bounds
* migrate from storing editingLinearElement.element to id
* make GlobalScene.getElement into O(1)
* use Alt for adding new points
* fix adding and deleting a point with rotation
* disable resize handlers & bounding box on line edit
Co-authored-by: daishi <daishi@axlight.com>