Commit Graph

207 Commits (c9cd00a69d996ff97b9ba6c4b38513adec2f1049)

Author SHA1 Message Date
Isaiah Odhner 7ce4e94293 Fix resizing selections and textboxes when zoomed in!!! 2019-12-04 17:31:29 -05:00
Isaiah Odhner 74db55a86c Make handles way easier to grab
Like in Windows 7 Paint
2019-12-04 14:41:40 -05:00
Isaiah Odhner 0d09c24f19 Update TODO
- Underline works now!
- Re: "Keep an old OnCanvasTextBox while drawing a new one" - even tho this should be easy now that it's not using that object to represent in progress selections, I don't think I want to do this! I think the way it works now is better.
2019-12-04 13:19:34 -05:00
Isaiah Odhner d3f1ce9fb6 WIP: make Text tool WYSIWYG! 2019-12-04 11:26:23 -05:00
Isaiah Odhner 847d6fec68 Cancel polygon if first two points end up very close
- Cancel the polygon if you end up within the auto-finalization distance on the first gesture
- Regarding "Don't start making the polygon until you click and drag more than the auto-finalization distance" - I don't see evidence for this. I think this was just a misconception based on the canceling.
2019-12-03 14:48:44 -05:00
Isaiah Odhner 2d9a50161e Preview filled polygon invertily and finish with stealth stroke 2019-12-03 14:38:37 -05:00
Isaiah Odhner bc7c233e3a When switching tools, cancel curve, but complete polygon 2019-12-03 13:22:12 -05:00
Isaiah Odhner bd432432de Make Polygon passive until it's finalized 2019-12-03 10:57:15 -05:00
Isaiah Odhner 9d0ab21d54 Update help 2019-10-27 17:26:34 -04:00
Isaiah Odhner 56617c993f Fix a minor thing 2019-10-27 01:14:10 -04:00
Isaiah Odhner f046671ee3 Update TODO 2019-10-27 01:11:41 -04:00
Isaiah Odhner 3a1f4a37ca This is not an issue
It zooms to 4x, which isn't one of the options.
2019-10-26 16:53:40 -04:00
Isaiah Odhner 47bb0b075b Zoom towards mouse generally
Start implementing viewport preview and zooming in on a specific location
2019-10-26 13:25:26 -04:00
Isaiah Odhner efec7f62bb WIP: hide tool previews when appropriate 2019-10-01 18:41:33 -04:00
Isaiah Odhner a5fcf53b42 Update brush preview color when not drawing 2019-10-01 15:07:35 -04:00
Isaiah Odhner e878239be5 Implement View > Zoom > Custom... 2019-10-01 14:25:33 -04:00
Isaiah Odhner 4bc4d34c5d doot 2019-10-01 13:34:20 -04:00
Isaiah Odhner 9ffb5a6758 WIP: brush tool preview 2019-10-01 12:51:29 -04:00
Isaiah Odhner 0421882eaf Save undos/redos as ImageData & fix Free-Form Select
- (PARTIALLY avoid a browser bug in chrome. When you zoom to a non-integer scale, there's this weird quantum antialiasing due to the canvas having a backing store which is higher density than the canvas's logical pixels (and redraw regions come into play as well). Switching to storing ImageData instead of canvases for undos/redos doesn't eliminate much of this problem, but it avoids having the undos/redos also store some high-DPI state and thereby SOMETIMES restore a state of whether antialiasing is happening or not. So it's a little less weird now, but it doesn't really solve that bugginess.)
- Protect against data loss when running low on memory. The browser (chrome at least) can clear canvases when low on memory. If the data is erased, and you undo, or do anything to the canvas, jspaint saves over the autosave. Ideally there should be multiple autosaves, but for now this is catastrophic in terms of data loss. Using ImageData instead of canvases, hopefully the browser is less willing to destroy this data, since it's more like a plain data structure in your program, and you would hope it wouldn't just delete arbitrary data in your program. A crash should be better than losing the canvas data (undos/redos) because in that case the autosave should still be in tact, altho this doesn't protect against the case where the main canvas is cleared by the browser, and then you do something to interact with the canvas other than undo/redo, and then either the page crashes or you refresh, and the autosave will still be gone.
- Behavior change or Regression: Now if the document is transparent, but the document mode is opaque, and you paste something larger than the canvas, it'll keep the transparency in the area of the original document, because it's using putImageData instead of drawImage.
- Regression: When you choose Opaque in the Image > Attributes... it no longer makes the document opaque because it's using putImageData instead of drawImage.
- Fix: Rewrite the Free-Form Select's temporary shape preview to use a proper layer instead of abusing the undo stack. This reduces the number of undo states created, and should make it easier to implement passive selections in the future. (Selections shouldn't create an undo state until you start dragging them.) This should also fix a bug in multiplayer where "inverty brush" could be left behind.
2019-09-30 19:50:48 -04:00
Isaiah Odhner dac402b64b Clean up icon files
Use a (more) consistent naming scheme
2019-09-29 14:36:45 -04:00
Isaiah Odhner 278ee910c3 Comment quick undo code and rename var 2019-09-28 23:37:14 -04:00
Isaiah Odhner 5a4abc4591 Rename textbox object OnCanvasTextBox 2019-09-20 12:34:14 -04:00
Isaiah Odhner ad37213b54 Use the Async Clipboard API
Copy/paste real image data, both from keyboard shortcuts AND from the menus now!
2019-09-14 00:42:28 -04:00
Isaiah Odhner 4bcc37f0d1 Update TODO.md 2019-04-16 10:55:12 -04:00
Isaiah Odhner 2a863a94cb Generate a .reg file to set image Edit action 2019-02-18 00:34:16 -05:00
Isaiah Odhner a778ba5ca8 Update TODO.md 2019-02-18 00:34:16 -05:00
Isaiah Odhner cfaa7871d4 Move wallpapering into platform specific files 2018-11-16 14:20:50 -05:00
Isaiah Odhner a5a00539a6 Improve save dialog in Electron app 2018-11-16 01:19:42 -05:00
Isaiah Odhner 25d996f532 Update TODO.md 2018-11-15 22:52:23 -05:00
Isaiah Odhner 65a0c15e67 Update TODO 2018-08-24 22:28:06 -04:00
Isaiah Odhner c11fa4c483 Copy images to the clipboard in the Electron app 2018-08-24 16:03:02 -04:00
Isaiah Odhner 79a5dfccb9 Handle external links 2018-08-24 02:22:46 -04:00
Isaiah Odhner e7267b9075 Set up electron-debug and devtron 2018-08-24 00:15:21 -04:00
Isaiah Odhner ec213c8f93 Add icon to window 2018-08-23 22:50:10 -04:00
Isaiah Odhner 135d49a155 Remove native menu in Electron 2018-08-23 22:23:43 -04:00
Isaiah Odhner 198427accb Add Electron Forge 2018-08-23 21:59:00 -04:00
Isaiah Odhner 6f85eb8d53 Remove NW.js 2018-08-23 21:58:59 -04:00
Isaiah Odhner dc6068a8df Use primary color for fill-only mode 2018-06-29 00:42:20 -04:00
Isaiah Odhner c530418b67 Chrome apps are dead (basically) 2018-06-29 00:22:50 -04:00
Isaiah Odhner 500224662d Support pencil size adjustment
🍆? ✏?

...🍆?
2018-06-29 00:13:14 -04:00
Isaiah Odhner 1748fd7e16 Remove shape styles warning! 2018-06-28 20:44:12 -04:00
Isaiah Odhner 3fce1757a2 Draw rectangle stroke inside bounds 2018-06-28 20:42:10 -04:00
Isaiah Odhner c0cf1b2788 Implement line width for ellipses
- Simplify and improve brush size handling
2018-06-28 20:18:47 -04:00
Isaiah Odhner d89b66efcb Implement line width for rounded rectangles 2018-06-28 19:14:32 -04:00
Isaiah Odhner 029a556ab5 For rectangle tool, draw stroke inside bounds 2018-06-28 14:46:25 -04:00
Isaiah Odhner 7417a82e0c Support patterns for line & curve tools 2018-06-27 17:11:36 -04:00
Isaiah Odhner b739751976 Load About Paint content from HTML
This probably won't help SEO (even in the limited way that I want (a better description, rather than ranking which is what most SEO is focused on)), but it should improve the site for Lynx users 🙃 and make it easier to update (HTML highlighting etc.)
2018-06-21 02:23:18 +00:00
Isaiah Odhner 75d81b7913 Fix performance for polygons and curves 2018-06-18 01:12:08 -04:00
Isaiah Odhner f12b36c671 Align patterns for polygon tool 2018-06-17 17:52:53 -04:00
Isaiah Odhner 725d2bc66b Enable patterns for polygon strokes and fills 2018-06-17 17:52:53 -04:00