Commit Graph

223 Commits (7a8f314be109887ddb42d4b0afae6e95e73f562a)

Author SHA1 Message Date
Isaiah Odhner d51779df1a Text tool: preview exact size with ghost 2021-02-08 16:21:00 -05:00
Isaiah Odhner 480d33a042 Auto-expand textbox and apply minimum size 2021-02-08 13:41:27 -05:00
Isaiah Odhner bf95aec553 Preview window frame with ghost when component will become a window 2021-02-02 15:59:02 -05:00
Isaiah Odhner e63bb6dbc1 Allow docking component via drag from window titlebar 2021-02-02 15:59:02 -05:00
Isaiah Odhner 88cc100083 Style progress bars 2021-02-02 15:58:59 -05:00
Isaiah Odhner b8330fff79 Update docs 2021-02-02 15:58:58 -05:00
Isaiah Odhner ef3bb836d6 No more alert/confirm/prompt! 2020-05-14 01:13:25 -04:00
Isaiah Odhner 456ce97c94 Update TODOs 2020-04-29 17:36:33 -04:00
Isaiah Odhner 5e6b803967 WIP: use os-gui 2020-03-24 14:28:10 -04:00
Isaiah Odhner 14cf228157 Support patterns for Fill With Color 2019-12-23 13:50:24 -05:00
Isaiah Odhner 1cf7130ad1 nothin 2019-12-21 00:39:05 -05:00
Isaiah Odhner 2150603fb7 Update and pare down TODOs and README 2019-12-21 00:38:28 -05:00
Isaiah Odhner f9069fd8ab DRY image inversion code 2019-12-21 00:38:10 -05:00
Isaiah Odhner 8c24c79fe1 Rename 2019-12-21 00:38:09 -05:00
Isaiah Odhner 3223362074 Pan view with two finger drag on canvas 2019-12-09 22:45:49 -05:00
Isaiah Odhner f63b3cad66 Create local undoables from multi-user session updates 2019-12-09 09:39:56 -05:00
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