-
Notifications
You must be signed in to change notification settings - Fork 135
/
Copy pathChangeLog
1687 lines (1597 loc) · 128 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Unreleased Version 2.2.2-pre
* Feature: Color circle dock with gamut masks, available through View > Docks > Color Circle. Similar to Krita's Artistic Color Selector and MyPaint's HSV/HCY Wheel.
* Fix: Make temporary tool switches by holding a key down work again. Thanks 3rd_EFNO and bunnie for reporting.
* Fix: Disregard hidden layers when layer picking in frame view.
* Feature: Add a search bar to the key frame properties dialog.
* Fix: Reset locale to "C" after Qt messes it up on startup. Thanks Meru for reporting.
* Fix: Don't use bilinear interpolation in transforms unnecessarily.
* Feature: Add canvas shortcuts for changing color hue, saturation/chroma and value/lightness/luminosity. Thanks Dann DecCairns for suggesting.
* Feature: Make size adjustment canvas shortcut depend on the speed of the drag. Thanks MorrowShore for suggesting.
* Fix: Remove pointless permissions on Android that Qt includes by default but aren't actually used.
* Fix: Don't default Android to fingerpaint when a pen is present.
* Fix: Work around a crash on Android that sometimes occurs when putting your palm on the screen, which somehow leads to touch events with zero contact points. Thanks Mav for reporting.
* Fix: Uncap aspect ratio on older Android versions. Thanks Molderche for reporting.
* Fix: Work around modifier keys not registering when using a tablet on Wayland. Thanks Absolute Goober for reporting.
* Server Fix: Don't pointlessly reload server certificates if they didn't change. Thanks Liz for reporting.
* Server Fix: Work around too many authenticated users in a session, which could cause a crash. Thanks Liz for reporting.
* Fix: Don't crash when filling with feathering and a canvas-filling selection. Thanks Meru for reporting.
* Fix: Don't carry over HUD button presses to dock UI in small screen mode. Thanks Meru for reporting.
* Feature: Make list action buttons in settings dialog clearer, adding an edit button for canvas shortcuts. Thanks Maffi for suggesting.
* Fix: Work around broken transparency when copying images between canvases on Wayland. Thanks Absolute Goober for reporting.
* Fix: Properly ignore system tablet events when using KisTablet drivers on Windows. Thanks Doc for reporting.
* Feature: Warn when an action will close a relevant window on Android and in the browser. Thanks 3rd_EFNO for suggesting.
* Fix: When enabling a dock and it gets put into a tab, that tab now gets activated.
* Feature: Show icons on dock tabs by default, rather than text that gets squashed. In desktop mode, this can be toggled via View > Docks > Show Icons on Tabs.
* Feature: Replace "hold shift to arrange" with View > Docks > Arrange Docks, which doesn't require a keyboard. Thanks 3rd_EFNO for suggesting.
* Feature: Allow configuring temporary tool switch hold time. Thanks 3rd_EFNO and pachuco for suggesting.
* Fix: Properly pass tilt and barrel rotation values to MyPaint brushes. Thanks MorrowShore for reporting.
* Feature: Tilt support on Android. Thanks MorrowShore and Verdrusk for suggesting.
* Server Feature: Allow two-way chat in web admin, letting admins talk to sessions without having to intrude on them. Thanks Bluestrings for suggesting.
* Server Fix: Don't transmit ban lists and logs to non-operators. Thanks Ryngtail for reporting.
* Fix: Always show color dialogs in HSV color space, since they don't behave correctly in other spaces. Thanks Meru for reporting.
* Fix: Apply pending fills when manipulating layers. Thanks MorrowShore for reporting.
* Server Feature: Show better messages when a session reset happens, specifying if it's compressing, reverting or replacing the canvas. Thanks MorrowShore for suggesting.
* Feature: Reference image dock. Allows opening images in a separate dock and picking colors from them. Thanks 3rd_EFNO and leandro2222 for suggesting parts of this.
* Fix: Make clicking and dragging fill and magic wand tools work at all zoom levels and drag speeds.
* Feature: Make the canvas resize dialog fit to a floating transform, if present. This allows you to paste an image larger than the canvas and then resize to fit. Thanks Meru for suggesting.
* Server Fix: Don't filter out feature access messages when loading session templates, so that permissions can actually get set properly from them.
* Feature: Add --pass/-p option to dprectool, to allow configuring which messages are passed through when converting. The default is to pass all messages through, rather than just messages relevant for the client.
* Server Feature: Treat invalid password and opword hashes in session templates as plain passwords. This still issues a warning, since those kinds of passwords should really be specified by prefixing them with "plain;".
* Server Fix: Make template sessions not appear with a blank title and settings when first joining them.
* Server Fix: Properly include web socket allowance in template session listings.
* Server Feature: Allow authOnly option in session templates.
* Server Fix: Allow joining a non-instantiated templated session via a direct link to its alias, rather than telling the user that the session isn't up.
* Server Fix: Properly start recordings for sessions instantiated from a template.
* Fix: Try to retain dock arrangements after resizing the window, the Windows on-screen keyboard squashing the application or rotating a device/monitor. They should no longer remain squished to a smaller size after resizing the window back. Thanks vipperz for reporting.
* Fix: Work around Android devices reporting way too huge motions when panning with two fingers. Thanks quandaledingle44 for reporting.
* Feature: Right-clicking outside of a transform now applies it. Thanks MorrowShore for suggesting.
* Feature: Allow dragging selections to quickly move their contents without having to double-click to deselect and dragging the edge to move the selection itself without its contents. Thanks Blozzom, Lungy, MorrowShore, SadColor and Zheida for suggesting and testing.
* Fix: Don't mark the canvas as saved if it was only exported.
* Fix: Round colors to 8 bits in fill and magic wand tools so that they don't get snagged on color differences too small to see on screen. Thanks vipperz for reporting.
* Feature: Add -I/--interpolation option to the drawpile-cmd and drawpile-timelapse commands, to allow using better scaling than bilinear if appropriate. Thanks Saphiros for causing this.
* Fix: Don't add blank filenames to recent files list. Thanks Aries Raenidaez for reporting.
* Fix: Don't reset zoom and rotation when lifting and replacing one of two fingers in a pinch or twist operation. Thanks Partack for reporting.
* Fix: Stop tap-and-hold color picking when another finger is added.
* Fix: Use Normal blending in Layer View and Group View modes. Thanks Meru for reporting.
* Feature: Show different cursors for selection replace, unite, exclude and intersect operations. Thanks MorrowShore for suggesting.
* Fix: Take canvas rotation, mirror and flip into account with regards to pen tilt inputs.
* Fix: Adjust minimum resolution for desktop-screen mode to be a bit larger, to avoid getting a cut-off desktop UI on some phones.
* Fix: Don't cut off the bottom of dialogs on some Android phones. Thanks Anonymous, Bluestrings and Molderche for reporting.
* Fix: Work around Gaomon tablets reporting pen buttons as mouse inputs. They were getting ignored because of an earlier Huion bug workaround.
* Fix: Replace sound playback implementation on Windows to avoid mysterious crashes on some systems. Thanks Anonymous for reporting.
* Fix: Properly put an undo point before layer property changes. Thanks Maffi for reporting.
* Feature: Raise default undo limit to 60 instead of 30.
* Feature: Expand the Host tab in the start dialog, allowing setting up sessions in advance and separating personal from public sessions better.
* Feature: Remember background color as well when using per-slot colors.
* Fix: Scroll to the brush in question when creating or overwriting one.
* Feature: Allow editing brush names, descriptions and thumbnails when using detached slots.
* Fix: Make next/previous brush and tag shortcuts work when using detached slots.
* Server Feature: Inform clients of session password changes so that they can update their invite links.
* Fix: Work around the web browser receiving messages while the application is handling messages already. This could cause nonsensical errors like "incompatible server" or "invalid state" or outright crashes during login.
* Server Feature: Allow filtering server logs via the web admin API. Thanks Bluestrings for suggesting.
* Fix: Properly save background color of annotations in ORA files.
* Feature: Allow toggling a "sketch mode" on layers, which will change the opacity and/or tint the layer locally. The exact look of this can be configured in the layer properties. Thanks abrasivetroop and leandro2222 for suggesting.
* Feature: Use the sketch mode tinting for onion skins as well, since it gives better results when there's colored areas involved.
* Fix: Properly update rotation when choosing an angle from the drop-down in the status bar when the angle is fractionally off the chosen angle. Thanks annoy for reporting.
2024-11-06 Version 2.2.2-beta.4
* Fix: Solve rendering glitches with selection outlines that happen on some systems. Thanks xxxx for reporting.
* Feature: Allow scaling animation exports. Thanks Hopfel for animating across a giant canvas.
* Fix: Allow disabling the application proxy in the network preferences and automatically detect bad proxy configurations that can't actually make connections. Thanks FishEggsThe for reporting.
* Fix: Improve socket error messages, listing the error code and adding extra information on what to do if a proxy error occurs. Thanks FishEggsThe for reporting.
* Fix: Center soft brushes on the cursor better, they got offset to the top-left from correcting for size discontinuity before. Thanks Meiren for reporting.
* Fix: Don't mess up gridmap settings when opening brush settings dialog and initially changing a value in it. Thanks Blozzom for reporting.
* Fix: Default "confirm action" to both the regular enter key as well as the one on the numpad. Thanks MachKerman for reporting.
* Feature: Add settings button to color wheel, sliders and palette at the top-left of the dock. For the wheel, this allows changing the settings here now instead of having to go into the preferences. For the sliders, you can now toggle the color space here and decide whether to show all sliders and the hex input. For the palette, this just moves the menu button that used to be in the row below. Thanks MachKerman for suggesting.
* Feature: Allow aligning the color wheel to the top of the dock instead of the center. Can be toggled in the dock's menu. Thanks MorrowShore for suggesting.
* Fix: Scale outer color wheel ring with the size of the widget. Thanks MorrowShore for reporting.
* Feature: Preview selected color on the color wheel. Can be toggled in the dock's menu. Thanks MorrowShore for suggesting.
* Fix: Allow pressing the numpad enter key to apply an action and Ctrl+Equal in addition to Ctrl+Plus to zoom in. Thanks MachKerman and Sinamer for reporting.
* Fix: Prevent artifacts around brush cursor when the canvas is rotated in software renderer mode. Thanks Sinamer for reporting.
* Fix: Don't consider the flood fill's own preview when filling the merged image. Thanks Meru for reporting.
* Server Feature: Streamed autoresets that don't interrupt the session to bring it down to a smaller size, instead the compressed state is built up in the background and replaced on the fly.
* Fix: Make joining through a direct link not put the desktop client into single-session mode. Thanks Bluestrings for reporting.
* Fix: Work around Huion tablets emitting mouse clicks every few pen presses and causing full-pressure strokes to be started. Thanks Blozzom, DT and and Dumb Dog Disease for reporting.
* Feature: Toggle layer visibility action, available in the Layer menu. Mostly useful to let assign a keyboard shortcut to it. Thanks incoheart for suggesting.
* Feature: Remember ranges set for MyPaint brushes in the settings editor, rather than implicitly fitting them to the curve. Thanks Verdrusk for suggesting.
* Server Feature: Provide more session status information for administrators, such as the autoreset state.
* Feature: Allow importing MyPaint brushes in old version formats instead of saying they contain invalid JSON. Thanks bunnie for suggesting.
* Feature: Attach brushes to slots, showing which brush you selected and remembering changes to them. This attachment can be disabled in the tool preferences.
* Feature: Allow configuring the number of brush slots in the tool settings, from 1 to 9, in addition to the everpresent eraser slot. Thanks vipperz for suggesting.
* Fix: Clamp palette swatch sizes to more reasonable bounds. Thanks MachKerman for reporting.
* Server Feature: Allow checking session, operator and server account passwords via the API. This can be used to password-protect recordings or similar. Thanks Meru for contributing.
* Fix: Correct some UI scaling problems with brush outlines, canvas centering, dock toggling, pixel grid and transform handles. Thanks annoy for reporting.
* Feature: Extended touch tap gestures, among them two-finger tap to undo, three-finger tap to redo and tap-and-hold to summon the color picker. Can be configured in the preferences under the Touch tab. Thanks InconsolableCellist and many others for suggesting.
* Feature: Snap canvas rotation around 0° by default. If you don't want this, you can set the canvas shortcut or touch rotation to "free rotate canvas" instead.
* Feature: Show a color preview when picking a color from the canvas. Can be toggled in the tool preferences.
* Fix: In layer view mode, render the layer truly in isolation instead of applying opacities, visibilities or alpha preserve to it. Thanks MachKerman and incoheart for reporting.
* Feature: Add Layer > Group View to show the parent group of the current layer in isolation. Thanks Rylan for suggesting.
* Fix: Save and export images according to the current view mode. Thanks incoheart for reporting.
* Server Fix: Don't get announcement refreshes stuck in an infinite loop. Thanks Meru for reporting.
* Fix: Make MyPaint brushes not ignore the first stroke made with them. This would also sometimes lead to a blank preview.
* Feature: Allow choosing between a round and square expansion/shrinking kernel in flood fill, magic wand and when altering a selection. The latter is particularly useful for pixel art. Thanks Bigcheese and MorrowShore for suggesting.
* Fix: Don't ignore double-clicks when toggling layer visibility or check state. Thanks Chryssabliss for reporting.
* Feature: Put all shortcuts onto a single settings page, showing conflicts between them better. Allow searching for shortcuts by name and keybinding, as well as filtering out only conflicts. Thanks MajorCooke for suggesting parts of this.
* Feature: Allow assigning keyboard shortcuts to brushes. Assigning the same shortcut to multiple brushes will toggle through them. Thanks annoy for suggesting.
* Server Feature: Integrate with systemd watchdog.
* Fix: Make user interface scaling not round to multiple of 100% anymore. Thanks blau, Buch, Chryssabliss and ShotgunnerFox for reporting.
* Fix: Don't use system message boxes on Android, since they behave in various broken and nonsensical ways, like showing you a yes button three times. Thanks Hopfel for reporting.
* Feature: Use hardware renderer on Android by default.
* Fix: Don't unnecessarily scale full-canvas animations by a single pixel.
* Feature: Replace GIF export with ffmpeg's libraries, since they are also used for videos. It's way faster, generates much better palettes and supports transparent backgrounds. Thanks dAVePAGE and JJ for reporting issues in this regard.
* Fix: Constrain aspect ratio of transform scaling properly, it was getting offset by the distance between the clicked point and the actual corner. Thanks Blozzom for reporting.
* Feature: Allow configuring flood fill preview and confirmation behavior, defaulting to the simplest mode similar to single-user software, but still previewing fills locally first. The magic wand always works this way for now, since selections are local only anyway.
* Feature: Show resize dialog when expanding canvas, to avoid accidental resizes and improve performance by doing the expansions all in one step. The keyboard shortcuts to expand the canvas work in this dialog now and also auto-repeat if you hold them down. Thanks Bluestrings and tobiasBora for suggesting things in this regard.
* Fix: Indicate denied permissions by showing a message to that effect, rather than just disabling the actions and leaving you guessing. Thanks Venesio for reporting.
* Fix: Clicking off of an annotation will no longer instantly create a new one in that spot. It will instead only deselect the annotation that was selected.
* Fix: The Delete Empty Annotations can now be undone without undoing what happened before it as well.
* Feature: Empty annotations are now automatically deleted when you deselect them, to avoid the common clutter of stray empty annotations across the canvas. If you really did want an empty annotation, you can hit undo and it will return.
* Server Feature: Setting a minimum protocol version of dp:4.24.0 now tells clients that they're using a Drawpile version too old for this server, rather than leaving them sitting at a session list where they can join no sessions.
* Feature: Allow clicking and dragging the fill and magic wand tools to adjust the tolerance.
* Fix: Make mouse click canvas shortcuts not override key canvas shortcuts. Thanks incoheart for reporting.
* Server Feature: Always allow server admins, moderators and users with the new PERSIST flag to toggle session persistence. The global persistence setting still allows anyone to toggle this. Thanks Bluestrings for suggesting.
* Server Feature: Allow admins to specify a linger time for empty sessions, which will let even non-persistent sessions live on for that time to allow people a chance to reconnect.
* Server Feature: Add API endpoints to get and create session listings. Thanks Meru for contributing.
* Fix: Make login dialog not spill off-screen on mobile devices.
2024-08-09 Version 2.2.2-beta.3
* Fix: Use more accurate timers for performance profiles if the platform supports it.
* Fix: Don't try to update the roles list before becoming an operator, which could lead to a crash. Thanks Bluestrings for reporting.
* Fix: Don't update sessions that were just added to the session browser, since that can lead to a crash because of what is probably a bug in Qt's filtering and sorting. Thanks Bluestrings for reporting.
* Feature: Turn too large transforms into cut and paste operations instead of cancelling them outright.
* Fix: Make frame import not create a track with an invalid ID that messes up the UI. Thanks BulletPepper and greendyno for reporting.
2024-08-04 Version 2.2.2-beta.2
* Feature: Allow choosing a different cursor for erase and alpha locked brushes. Thanks Hipofiz and Rylan for suggesting.
* Server Fix: Properly sever connections on read, write and timeout errors.
* Fix: Load annotations from ORA files saved by Drawpile 2.1 properly. Thanks RyanMolyneux for reporting.
* Feature: Ignore inputs with invalid pressure during strokes. Thanks Lunalatte for reporting.
* Server Fix: Handle sessions running out of space better, they should no longer end up in an unrecoverable state. The messages in chat are also now translatable, more informative and don't get spammed for every command. Thanks Bluestrings and Charmandrigo for reporting.
* Feature: Lock canvas when the session is out of space, showing an appropriate message in the corner, rather than letting you continue drawing. The server needs to be updated for this to be available.
* Server Fix: Make catchup not take pointlessly long when the session is out of space.
* Feature: Add a message to the reset dialog that you need to be an operator to reset the session, since it's not too clear why the button is disabled otherwise.
* Feature: Make fill source selection a set of buttons for merged image, merged without background and layer, using the dropdown only for the latter thereof. The checked button will be remembered. Thanks Blozzom, Bluestrings and Meru for suggesting.
* Feature: Default redo to both Ctrl+Y and Ctrl+Shift+Z on Windows, Linux and the browser. Thanks Crow for suggesting.
* Fix: Brighten up transparency checkerboard to be a bit easier on the eyes. Thanks Crow for suggesting.
* Server Feature: Allow registered users to replace themselves when rejoining a session, rather than telling them that their own name is in use. Avoids having to wait for their old self to time out if their internet flakes. Thanks Crow for suggesting.
* Fix: Don't fail server compilation when turning off webadmin or WebSockets. Thanks leegean for reporting.
* Fix: Save and load annotation vertical alignment to and from ORA files.
* Fix: Put a transparent background behind flat images, rather than using white. Thanks lungy for reporting.
* Fix: Make pasting images from Drawpile into other applications retain transparency on Windows. This is really a bug in those other programs, they pick the wrong format by default, but whatever. Thanks lungy for reporting.
* Feature: Allow configuring the transparency checkerboard colors in the user interface preferences. Thanks lungy for suggesting.
* Fix: Don't reselect and scroll back to default layer after interacting with the layer list by picking a layer or toggling visibility. Thanks MachKerman and Ben for reporting.
* Fix: Load PNGs even when they have corrupt checksums. Thanks xxxx for reporting.
* Feature: Allow copying multiple entries from the event log. Thanks Bluestrings for reporting.
* Feature: Allow toggling vertical sync in the user interface preferences. Default is off, because it can cause input lag.
* Feature: Web browser support for the client.
* Feature: New hardware and software canvas renderers. The hardware renderer is much faster than the old one, especially in the browser. Uses Direct3D on Windows, WebGL in the browser and OpenGL on all other platforms. The software renderer is slightly faster than the old one, useful for cursed hardware or drivers that cause input lag or visual glitches. This is an experimental feature and can be enabled in the General preferences under Renderer.
* Feature: Add system information dialog under Tools > Developer Tools > System Information.
* Feature: Hide user pointers when they get close to your cursor. Can be toggled under View > User Pointers > Hide From Cursor. Thanks Crowley for suggesting.
* Feature: Allow filling non-continuous areas. Thanks Ben for suggesting.
* Fix: Make rotation via View > Rotation > Rotate Canvas (Counter-)Clockwise work properly when it's mirrored or flipped. Thanks Ragged for reporting.
* Feature: Allow disabling the zoom, rotation, mirror and flip on-canvas notices in the User Interface preferences. Thanks Partack for suggesting.
* Feature: Allow configuring user pointer stay time through View → User Pointers → Stay Time. Thanks johannesCmayer for suggesting.
* Feature: Allow prompting for layer properties when creating a layer. Can be turned on in the User Interface preferences. Thanks Ben for suggesting.
* Fix: Focus existing layer properties dialog if one exists for the layer that properties are requested for.
* Feature: Name layers after the username of the creator by default.
* Fix: Don't use bilinear interpolation when selection is only moved, rotated by a multiple of 90 degrees, flipped or mirrored, to avoid unnecessary blurring. Thanks lungy for reporting.
* Feature: Don't require restarting the application when changing kinetic scrolling settings.
* Fix: Change default canvas size to 2000x2000, because 800x600 is a bit outdated. Thanks MorrowShore for for contributing.
* Feature: Don't require restarting the application to switch between desktop and small screen mode. There's also a "dynamic" option now, which will change the mode based on the size of the window, enabled by default on Android and in the browser.
* Feature: Pan or "hand" tool. Lets you move the canvas around by clicking. Thanks DeeJii for suggesting.
* Fix: Don't move view position when pressing side buttons in small screen mode.
* Feature: Show a proper explanation when you can't join a session.
* Fix: Make autosave interval actually be in minutes, not in seconds because that's ridiculous. Thanks D'mitri for reporting.
* Feature: Add -U/--uncensor parameter to drawpile-timelapse to allow revealing censored layers.
* Fix: Reduce contrast on censor tile stripes to make them less annoying to look at.
* Server Feature: When you pass an option that's not compiled in, the error message will not inform you of that fact, rather than just saying you passed an unknown option with no further information.
* Feature: On Windows and Linux, new windows now open in a separate process, since that's more efficient and resilient. Can be disabled by setting the DRAWPILE_SINGLE_PROCESS environment variable. Thanks Bluestrings for suggesting.
* Fix: The main window should now properly restore to its previous position even when that's on a secondary screen. Thanks Moe for reporting.
* Removed Feature: Roomcodes. They are a vestige from a time where Drawpile only had a single, central listing server. Nowadays nobody uses these anymore, invite links are the replacement.
* Feature: Disable global smoothing for mouse drawing by default, since that really only make sense for tablets and touch. Can be toggled in the input preferences. Thanks nililfin for suggesting.
* Feature: Always show drawing tools toolbar in small screen mode. Thanks Blozzom for suggesting.
* Fix: Increase contrast on depressed buttons in dark themes. This is a patch to Qt. Thanks MorrowShore for reporting.
* Fix: Switch out the icon for the extension buttons on squashed menus and toolbars so that they're actually visible in dark themes. This is a patch to Qt.
* Feature: Make canvas zoom slider use the same increments as the mouse wheel and zoom in/out actions, since stepping by 1% is not useful. Thanks zheida for suggesting.
* Fix: Work around a crash on Linux that happens when hosting with busted versions of Qt 6.6+. Thanks Vanska for reporting.
* Fix: Allow tabbing the main window on macOS again, for some reason Qt disabled it. This is a patch to Qt. Thanks mira for reporting.
* Feature: Pixel ruler, available under View > Show Rulers. Thanks fluttershydev for contributing.
* Fix: Ignore mouse clicks caused by briefly touching the canvas on some devices on Windows. Thanks sfin for reporting.
* Feature: Translate links copied out of the browser version of Drawpile into something that can be joined when they are pasted into the join page.
* Feature: Better small-screen mode handling. The toggle items now no longer overlap, dialogs get maximized if appropriate, the start and settings dialogs get arranged horizontally.
* Feature: Rework selections and transforms entirely. They're now distinct operations. Selections participate in the undo stack.
* Feature: Allow toggling between accurate and fast transform previews. The former is the current kind of preview that actually gets previewed on the layer, the latter is like in Drawpile 2.1, where it's just a vector image drawn on top of everything.
* Feature: Allow picking blend modes and opacity when pasting, stamping and transforming. Thanks blurymind for suggesting.
* Feature: Show layouts action in dock menus. Thanks Elisa for suggesting.
* Fix: Set TCP_NODELAY on sockets to reduce unnecessary latency.
* Feature: Build option -DPROXY_STYLE=ON to fix the bad contrast in dark themes when not building a patched version of Qt yourself.
* Fix: Disable the image memory limit when using Qt 6, because that breaks the loading large files. Thanks LiterallyMe for reporting.
* Feature: Indicate fill source in layer list.
* Fix: Make canvas lock and layers not lock tools that don't actually act on them.
* Feature: Allow transforming multiple layers at once.
* Feature: Make creating a key frame layer copy the layer structure of the closest frame if that's assigned to a layer group. Thanks Ausjamcian for suggesting.
* Fix: Don't overwrite last file on save after resetting the canvas to an external image. Thanks Bluestrings for reporting.
* Fix: Ignore bogus mouse clicks emitted by some tablets after briefly tapping the pen on them. Thanks Ausjamcian for reporting.
* Fix: Make the window fit itself to the screen harder in the browser and on Android. There's also an option under View -> Fit to Screen now to manually force it to do so. Thanks Sidca for reporting and Meru for testing.
* Feature: Allow importing animation frames from multiple files and as layers from PSD files, to be found under File -> Import. Thanks Meru, BulletPepper, Ben and RubberRoss for suggesting.
* Feature: Extend animation export to be a dialog where you pick the format. You can now export frames to a ZIP, allowing Android and the browser to save a series of frames as well. Exporting to MP4 and WEBM videos as well as animated WEBP is also implemented via ffmpeg's libraries.
* Feature: Magic wand select tool. Basically a fill tool, but for selections. Thanks ChristianJohnsten for suggesting.
* Fix: Properly remember NSFM setting in host dialog. Thanks Bluestrings and cupcake for reporting.
* Fix: Properly check NSFM setting in host dialog based on title if that is configured in the parental controls preferences. Thanks Bluestrings for reporting.
* Fix: Behind blend mode now does opacity math correctly. Thanks Blozzom for reporting.
* Fix: Allow cancelling fill tool with right-click even when that's bound to something else. Thanks SadColor for reporting.
* Feature: The fill tool now previews fills instead of doing them immediately, allowing cancelling and changing layers before applying it. You can also pick more blend modes, change the opacity and fill the entire selection with it now.
* Fix: Make layer picking work properly in frame mode, it picked the bottom-most instead of the top-most one.
* Feature: Add View > Show Selection Mask, which lets you view selections as a solid mask instead of an outline. This lets you see opacity properly.
* Removed Feature: Zeroconf support, an obscure LAN-only discovery thing that wasn't working anymore anyway.
* Fix: Make the fill tool not feather along canvas edge. Thanks Meru for reporting.
* Server Feature: Allow specifying idleOverride and allowWeb in session templates. Thanks MorrowShore for suggesting.
* Feature: Allow shrinking fills and magic wand selections. Thanks Meru for suggesting.
* Feature: New dialog Selection > Expand/Shrink/Feather Selection that alters selections accordingly. Thanks MorrowShore for suggesting.
* Feature: Zooming with keyboard shortcuts now zooms in on the cursor when it's pointing at the canvas. If you don't like this, there's new shortcuts that always zoom on the center, which you can bind in the preferences. Thanks Chryssabliss for suggesting.
* Feature: Make header and footer buttons on docks stretch further if there's empty space, making them easier to hit. Thanks MorrowShore for suggesting.
* Fix: Properly truncate files when writing them on Android to avoid corruption from leftover junk at the end.
* Feature: Allow cropping in the drawpile-timelapse command-line tool using -x/--crop.
* Fix: Compensate for discontinuity in the classic soft brush radius to make the transition look less bumpy. Thanks BulletPepper for reporting.
* Feature: Make color sliders dock smaller by showing only one set of sliders at a time and add an input field for a hex color name. Thanks Kawaxte and MorrowShore for suggesting.
* Fix: Don't switch tools while typing into text fields in some situations. Thanks leopardheart982 for reporting.
* Fix: Give color wheel, color palette and navigator docks a minimum size so that they can't be shrunken into nonexistence. Thanks vipperz for reporting.
* Fix: Don't remove layer censors when resetting sessions hosted on the builtin server. Thanks O_O for reporting.
* Server Feature: Allow changing session founder names through the admin API.
* Feature: Don't pop open chat for session auto-resets, just show a note in the corner of the canvas. Needs both client and server to be updated.
* Feature: Support reading and writing WEBP files.
* Feature: Enable high-DPI scaling by default on all platforms except Android. Can be disabled in the user interface preferences if needed.
* Fix: Default kinetic scrolling on Android to touch instead of left click, since the latter conflicts with stuff like dragging layers.
* Fix: Allow importing role lists larger than 100 entries, since public sessions have those. Thanks kale for reporting.
2024-02-25 Version 2.2.2-beta.1
* Server Feature: Allow adding a message when kicking someone through the admin API.
* Fix: Don't mess up strokes when hitting undo while still actively drawing them. Thanks Sinamer for reporting.
* Fix: Properly reset angle when undoing a point with the curve tool.
* Server Feature: Log more a more detailed reason when a client is disconnected, since something like a login error can have many causes.
* Feature: Indicate the difference between self-signed and "real" server certificates.
* Fix: Rename "trusted hosts" to "pinned certificates", because that's what they are.
* Fix: Make floating docks stay on top of the main window on macOS. Thanks 6ix for reporting and testing.
* Feature: Add a dual color button, showing the foreground and background color, with the ability to set, swap and reset them.
* Feature: Add "merged without background" as a source for the flood fill tool.
* Server Fix: Include allow web flag when listing a session.
* Server Fix: Update active drawing users when refreshing a session listing.
* Fix: Make WebSockets compile under Qt < 6.5. Thanks kiroma for reporting.
* Server Fix: Properly start extbans checks when running via systemd. Thanks Bluestrings for reporting.
* Server Feature: Warn if a command-line argument was ignored due to systemd sockets being used instead.
* Fix: Show web join allowance checkbox in session settings properly, it didn't show up if disabled before.
* Server Feature: Allow making joining via the browser dependent on if the session has a password or not.
2024-02-18 Version 2.2.1
* Fix: Default to previous directory when saving a fresh file. Thanks Crow for reporting.
* Feature: Allow toggling performance-related canvas view settings, since some systems get slowdowns. Thanks DevonJP for reporting.
* Fix: Don't force TLS socket algorithms, since ECDSA certs seem to not like them. Thanks Bluestrings for reporting.
* Fix: Log message queue read, write and timeout errors properly. Thanks Pepper for reporting.
* Feature: Implement WebSocket support in the server, available with the --websocket-port and --websocket-listen options.
* Feature: Send keepalive messages from the server, if the client indicates support for it. Avoids them disconnecting when too busy uploading to send a ping.
* Feature: Active user counts for sessions. A user counts as active if they drew in the last five minutes.
* Feature: Make invite links indicated web client capability and NSFM-ness of sessions so that the invite page can show a "join in the browser" button and an appropriate notice respectively. Thanks Blozzom for suggesting the latter.
* Fix: Properly handle cancelling a connection while it's being established. Thanks Fox for reporting.
* Server Fix: When hosting without an account is enabled, also allow it for anyone *with* an account. Thanks ahaven for finding this.
* Fix: Don't resize brush settings unnecessarily larger when switching between brush types. Thanks Meiren for reporting.
* Fix: Try to handle switching between tablet pen and eraser more consistently. Thanks Daystream for reporting.
* Feature: Add next and previous key frame actions, allowing skipping between key frames in the current track. Thanks BulletPepper for reporting.
* Fix: Properly refer to "layer" and "layer group" in layer actions depending on what is selected. Thanks Momo for reporting.
* Fix: Save censored layers into PSDs properly. Thanks Blozzom for reporting.
* Fix: Don't allow copying, cutting and color picking from censored layers.
* Fix: Rotate brush and fill outline along with the canvas. Thanks Bluestrings for reporting and xxxx for helping solve some issues with it.
* Feature: Add experimental support for high-DPI interface scaling.
* Fix: Don't reset opacity multiply inputs to default when loading a brush that doesn't have it set. Thanks Blozzom for reporting.
* Fix: Limit MyPaint brush dab counts to more sensible values, since the defaults from MyPaint are pointlessly high and can cause chugging. Thanks Blozzom for reporting.
* Fix: Don't blink last user cursors again when making a selection.
* Fix: Make user cursors trail MyPaint brush strokes better, only smoothing it out when there's jitter. Thanks Blozzom for reporting.
* Feature: Show latency in the status message, next to the session size and cursor coordinates. Thanks Meiren for suggesting.
* Feature: Add action to pick color from screen, default shortcut is Shift+I. Thanks Meru for suggesting.
* Feature: Allow switching the current brush to erase mode when using the tablet pen eraser instead of switching to the eraser tool slot. The setting for this is in the Input settings.
* Feature: Make the Windows installer put a shortcut on the desktop.
* Fix: Widen the stripes of the censor pattern so that it's easier on the eyes. Thanks Ben for reporting.
* Fix: Don't remember uncensor layers across restarts, to avoid being exposed to things you didn't want to just because you forgot to toggle it back off.
* Fix: Properly show censored layers in the list even when they are revealed.
* Server Fix: Allow reading users' trusted status through the API, because it's something you can write through it.
* Server Feature: Allow limiting the maximum number of users per session. Moderators and administrators can override this.
* Server Fix: Time out clients that take too long to disconnect gracefully. Thanks Bluestrings for reporting.
* Fix: Properly apply layer properties if the layer changed since opening them.
* Feature: Show last joined address in join dialog.
* Fix: Hide disconnection banner after establishing connection to a session.
* Fix: Make censoring layer groups actually have an effect.
* Fix: Don't use 64 bit stuff in 32 bit Windows installer.
* Fix: Don't break pinned start menue shortcuts when updating on Windows. Thanks Bluestrings and anonymous for reporting.
* Server Fix: Don't report temporary server bans as permanent. Thanks Bluestrings for reporting.
* Server Fix: Properly convert between IPv4 and IPv6 when checking IP bans. Thanks Bluestrings for reporting.
* Fix: Use proper measurements to decide on how much painting to do in a single step, hopefully preventing chugging caused by certain brushes.
* Server Fix: Save catchup keys to file-backed sessions so that the counter doesn't reset upon a server restart.
* Fix: Don't show user cursors while catchup dialog is open.
* Feature: Add some bulk permission commands for (un)trusting and setting layer tiers, explanation available through /modhelp. Thanks Bluestrings for suggesting.
* Fix: Don't gray out layer ACL tier settings when a layer is assigned to users exclusively, since those settings are not exclusive.
* Fix: Don't include stuff from before session reset when restarting a recording because of one. Thanks Meiren for reporting.
* Fix: Don't overwrite recordings on Windows if the file names contain non-ASCII symbols. Thanks Meiren for reporting.
* Fix: Make log file on Windows log non-ASCII symbols properly.
* Fix: Don't reorder listing servers when sorting by title in the browse tab.
* Feature: Remember last sorting on the browse page. Thanks Bluestrings and Meiren for suggesting.
* Fix: Only ask for confirmation when a self-signed TLS certificate changes, not when a "real" one renews. Thanks Bluestrings and Pepper for reporting.
* Feature: Fill background for copying the merged image with a non-rectangular selection. Thanks Bluestrings for suggesting.
* Fix: Make bezier curve tool generate smooth curves at small sizes, rather than getting jaggy. Thanks Crow for reporting.
* Server Feature: Allow server owners to kick users not connected to a session.
* Fix: Make navigator slider not eat keyboard inputs when navigator is undocked. Thanks anonymousduck for reporting.
* Fix: Disregard hidden frames when rendering animations. Thanks Etide for reporting.
* Server Feature: Log when a wrong password is entered for server accounts and sessions, disconnect the user after too many wrong tries.
* Server Fix: Log client host and join attempts even when unsuccessful. Thanks Bluestrings for reporting.
* Fix: Load default settings values after the program has initialized, avoiding crashes that can happen on Windows when building in debug mode. Thanks kiroma for reporting and testing.
* Feature: Optimize classic brush calculation, making them a good chunk faster. Thanks kiroma for contributing.
2024-01-13 Version 2.2.0
* Server Fix: Add --ssl-key-algorithm parameter to allow non-RSA SSL keys, defaulting to guessing the most common formats RSA and EC. Thanks Bluestrings for reporting.
* Fix: Make pressure-less mode work with pens on Android. Thanks molluscdotgov for reporting.
* Fix: Don't start dragging keyframes when they're moved only a minuscule amount. Thanks Meru for reporting.
* Fix: Remove duplicate port from displayed network address when hosting under a non-default port. Thanks SadColor for reporting.
* Fix: Keep focus on brush sliders when typing into them. Thanks MachKerman for reporting.
* Server Feature: Allow setting web admin auth through DRAWPILESRV_WEB_ADMIN_AUTH environment variable. The --web-admin-auth parameter takes precedence.
* Fix: Show the fill tool size limit rectangle even when the outline width is set to zero pixels. Thanks Blozzom for reporting.
* Server Fix: Show an error message if listing on a certain server is not allowed.
* Fix: Unlist sessions more reliably when terminating sessions hosted "on this computer". Thanks to Buch for helping figure this out.
* Fix: Don't select a newly created layer when there's a default layer.
* Fix: Give the timeline dock a sensible minimum height. Thanks Kink for reporting.
* Fix: Don't exit the program in the pathological case of initiating a quit, being prompted to save, cancelling the save dialog and then saving again.
* Fix: Properly update current layer fill source when switching layers.
* Fix: Cap the number of threads used for parallel processing, because 128 core CPUs exist.
* Fix: Move back button in login dialog to the left side. Thanks Blozzom for reporting.
* Fix: Properly forget password when editing account and unchecking the "remember password" box. Thanks Meru for reporting, as well as Bluestrings and Blozzom for finding issues with the fix.
* Fix: Apply chosen interpolation to pasted images. Thanks Deovise and Hipofiz for reporting.
* Fix: Properly disable Session > Reset option when there's no canvas present that could be reset.
* Fix: Allow opening PSD files and importing Drawpile 2.1 animations on Android. Thanks ariqhadiyan for reporting.
* Server Fix: Prevent users from being assigned permission flags they're denied by the server configuration, which could lead to a weird superposition of being flagged as a moderator, but not actually having moderator permissions. Thanks Bluestrings for reporting.
* Fix: Don't act like the user entered incorrect account credentials if a session unexpectedly requires a password. This only happened with either amazingly bad timing or in the superposition described above. Thanks Bluestrings for reporting.
* Fix: Don't leave one-finger touch setting blank when "do nothing" is selected. Thanks BornIncompetence for reporting.
* Fix: Shorten and normalize debounce delay to be 250 milliseconds for the layer opacity/blend mode, onion skins and timeline controls, rather than being a bunch of different values. Thanks robotto for reporting.
* Fix: Remember invite link type setting properly. Thanks Bluestrings for reporting.
* Fix: Try to keep the start dialog behind other dialogs it spawns harder. Thanks Bluestrings and shablagoo for reporting and Buch for finding issues with the fix.
* Fix: Use a single palette in GIF export to prevent flickering. The palette is generated from the merged image. Thanks Hopfel and Bluestrings for reporting.
* Feature: Allow configuring the eraser tip to switch the current brush to erase mode, rather than switching to the eraser tool. Thanks Seeksie for causing this.
2023-12-08 Version 2.2.0-beta.11
* Server Fix: No longer show "cannot look up one session and then join another" when joining a session with an ID alias. Thanks Kink and Fabian for finding this.
* Fix: Actually disable brush taking in 2.1 sessions, last attempt didn't stick. Thanks again Blozzom for reporting.
* Fix: Also show mute notifications action when right-clicking the chat. Thanks Blozzom for reporting.
* Fix: Make brush palette less immensely slow. Thanks lowontrash for reporting.
* Fix: Show kick and ban messages in the correct order, without duplicates. Thanks xxxx for reporting.
* Fix: Force the canvas to refresh on resize even harder because some systems still get artifacts. Thanks xxxx for reporting.
* Fix: Default the mouse wheel to pan the canvas on macOS instead of zooming it, since that makes more sense for its two-dimensional scroll wheels. Thanks Charmandrigo for reporting.
* Fix: Make Apple Magic Trackpad and hopefully other touch pads work. Thanks Charmandrigo for reporting and helping figure this out.
* Fix: Add a close button to the tablet tester, playback, event log and flipbook dialogs so that it can be closed on Android and other systems without window decorations without having to press some button or key combination.
* Fix: Enable fingerpainting on Android by default if the device doesn't have a stylus.
* Fix: Prefer versioned lconvert executable over unversioned one to make things work on Fedora. Thanks lowontrash for reporting.
* Fix: Look in source directory for assets when building, making running from the build directory possible. Can be turned off with -DSOURCE_ASSETS=OFF. Thanks Meru, lowontrash and probably others for running into issues with this.
* Fix: Make large circles and curves drawn with the circle and curve tool not look all jaggy.
* Fix: Make large rectangles close properly with MyPaint brushes. Thanks haxekhaex2 for reporting.
* Fix: Allow horizontal scrolling in the preferences dialog so the close button doesn't get thrown off-screen on mobile. Thanks Xkower for reporting.
* Fix: Allow scrolling of preferences and start dialog sidebar.
* Fix: Move preferences dialog sidebar to the top on macOS and to the bottom on Android, to fit better with how those systems work. Thanks Snover and Xkower.
* Fix: Make copying and pasting work on Android. Thanks ariqhadiyan for reporting.
* Fix: Open files in the background to avoid "not responding" warnings. Thanks ariqhadiyan for reporting.
* Fix: Force main window to fit screen on Android whenever the docks change, to avoid spills beyond the edge of the screen. Thanks Xkower for reporting.
* Fix: Don't load ORA files in parallel on Android. This is slower, but avoids the application getting terminated for using too much memory. Thanks ariqhadiyan for reporting.
* Fix: Make keyboard modifiers work better on Android. Thanks ariqhadiyan for reporting.
* Fix: Default Export Image option to export as PNG instead of ORA, because that's what that option is for. Thanks SadColor for reporting.
* Feature: Add libera.chat link to start dialog.
* Fix: Properly restore avatar again when reconnecting to a session on a 2.1 server. Thanks xxxx for reporting.
* Fix: Make kinetic scrolling work in brush editor categories list.
* Fix: Make canvas rendering not get stuck when switching frames really quickly. Thanks Kink and Hopfel for reporting.
* Fix: Update color swatch when using fill selection, recolor selection and color erase selection.
* Fix: Only update color swatch when using tools that actually put those colors on the canvas.
* Fix: Make color palette swatch select last used color so that it doesn't get stuck when switching brush slots. Thanks Meru for reporting.
* Fix: Make Copy Merged and Copy Without Background from a floating selection work again. Thanks Meru for reporting.
* Fix: Make Export Selection, Copy Merged and Copy Without Background adhere to current view mode. Thanks Bovy for reporting.
* Fix: Make fill tool adhere to current view mode (minus onion skins) when using Merged Image as the source. Thanks Meru for reporting.
* Fix: Don't crash when changing saturation in color dialog when using HSL or LCH color models. Thanks Meru for reporting.
* Fix: Don't deadlock when saving and clearing password fallback.
* Feature: Shortcut login flow on servers that only support guest and internal account logins.
* Feature: Allow changing tablet driver through Edit menu on Windows.
* Fix: Reset floating selection when filling it to avoid weird effects if the fill is inside the originally selected area. Thanks Meru for reporting.
* Fix: Properly load annotations and timeline from ORA files without a background. Thanks MyaThingoss for reporting.
* Feature: Add a Tablet Setup link in the start dialog.
* Fix: Don't hide dock titlebars when pressing shift when a text field is in focus, since that might hide a field you're currently typing in. Thanks Trite for reporting.
* Fix: Disable Hold Shift to Arrange by default, since it's not needed most of the time.
* Fix: Don't claim every username is taken when connecting to a server with the old login flow doesn't allow guest logins, instead tell the user that they need an account. Thanks Meru for reporting.
* Fix: Give checkbox outlines more contrast, since they're virtually invisible in most themes. This is a patch to Qt.
* Fix: Change italic to bold text, since the former is not readable in Chinese script.
* Fix: Make keep aspect ratio checkbox in resize dialog keep the current aspect ratio, not the original one.
* Fix: Don't act like keep aspect ratio is checked when resizing from a selection. Thanks Meru for reporting.
* Fix: Make onion skin color partially transparent by default so that they don't turn into solid blocks on colored stuff. Thanks BulletPepper for reporting.
* Fix: Clarify the host dialog by adding additional messages that explain common sources of confusion, such as the title being required, disallowing invite links as the title, the password being necessary to host a private session and "host on this computer" requiring port forwarding.
* Fix: Prevent jittering pixels on the canvas at certain zooms and rotations. Thanks Bluestrings, Meru and taiyu for reporting this. Also thanks Meru for actually finding the solution and contributing this fix.
* Fix: Don't reset brush mode when clicking on the freehand tool button from a different tool. Thanks Big Piston for reporting.
* Fix: Render annotations when saving to PNG and JPEG. Thanks chrystalclear and Rykuta for reporting.
* Fix: Don't reset annotation settings to weird values when there's no text. Thanks Blozzom for reporting.
* Fix: When hiding a layer group, indicate that all containing layers are hidden too. Thanks Missile for reporting.
* Fix: Take scroll into account when reordering tracks. Thanks Meru for reporting.
* Fix: Show proper ext-auth URL when prompting for a login. Thanks xxxx for reporting.
* Fix: Properly show server info URL as a clickable link when prompting for a login.
* Feature: Focus the input field on the Join page when switching to it so that you can immediately paste a link without having to click it.
* Fix: Handle view mode changes (frame view, onion skins etc.) properly in drawpile-cmd and drawpile-timelapse tools.
2023-11-12 Version 2.2.0-beta.10
* Fix: Don't deadlock on first startup. Thanks to Hail, lowontrash, FARBOL234, Dorokinyo and hamlin for reporting.
* Fix: Disable brush taking in 2.1 sessions. Thanks Blozzom for reporting.
2023-11-11 Version 2.2.0-beta.9
* Fix: Make Android build work again. Thanks Tetriser for reporting.
* Fix: Allow indirect mode in 2.1 sessions when opacity dynamics are disabled. Thanks to Blozzom for reporting.
* Fix: Make LCH color wheel circle not look so bright and discontinuous.
* Fix: Refresh canvas view harder on resize to avoid artifacts on some systems. Thanks xxxx for reporting.
* Fix: Use proper background color in resize dialog. Thanks xxxx for reporting.
* Fix: Correct a rounding error when converting pixels for display. This corrects both the visuals and the color picker when picking from the merged image. Thanks deovise and hipofiz for reporting.
* Fix: Don't crash when a new user joins when using the builtin server and a local fork is present. Thanks to Kink for reporting.
* Feature: Interpolate inputs that are far away from each other to compensate against fast strokes producing jagged curves. Can be disabled in the input preferences.
* Fix: Make build directories outside of the source directory work again. Thanks Aquargent for reporting.
* Fix: Properly handle modifier key releases for keyboard canvas shortcuts. Thanks Daystream for reporting.
* Server Feature: Implement a shared bans system, letting owners of multiple servers manage a single list instead of having to keep them in sync manually. Thanks Bluestrings for suggesting.
* Server Feature: Allow exempting users from ban ranges, to help alleviate false positives.
* Fix: Make IPv6 addresses work in invite links.
* Fix: Properly add drawpile:// in front of direct invite links when hosting "on this computer".
* Feature: Support reading and writing Photoshop Document (PSD) files. Thanks pachuco, onyx, Geese and probably others for suggesting. Thanks xxxx for helping getting it compatible with other software.
* Fix: Make MyPaint brush permission not deny drawing with classic brushes. Thanks xxxx for reporting.
* Fix: Offer to crop all avatars, not just non-square ones. Thanks Bluestrings for reporting.
* Feature: Allow adding labels onto brush preset thumbnails. Thanks Paris Green for causing this.
* Fix: Don't restore flipbook to previous location and size if that would put it outside of any available screen. Thanks Ausjamcian for reporting.
* Server Feature: Allow exporting and importing session bans. They are encrypted with a per-server key by default. Thanks tincancrab for suggesting.
* Fix: Prevent banning yourself from sessions.
* Server Feature: Allow moderators to exempt sessions from the idle timeout. This ability can be disabled by server owners. Thanks Bluestrings for suggesting.
* Fix: Show proper reasons when a session is terminated, rather than always claiming the server is shutting down.
* Server Feature: Allow specifying a reason when terminating a session manually.
* Fix: Squash whitespace in session listings to prevent funky display. Thanks yeen for reporting.
* Server Fix: Error out when invalid --extauth parameter is given to drawpile-srv. Previously it would just keep going and simply not work without any indication as to why. Thanks RAINTARD for running into this.
* Feature: Allow exporting images, which saves them without setting the current file or warning about the image being merged together.
* Feature: Disable selection-dependent menu items (Deselect, Fill Selection etc.) when no selection is present.
* Server Feature: Add Roles tab to session settings to allow changing operator and trusted status of registered users not currently online, as well as allowing importing and exporting this list of users. Thanks tincancrab for suggesting.
* Feature: In addition to sounds, allow configuring popup bubbles and task bar flashing in notification preferences. Thanks MagicaJaphet and Bluestrings for suggesting.
* Feature: Add a notification for unexpected disconnects.
* Fix: Play back sounds in a different way that should fix the issues with chugging or wrong output devices that some systems have. Thanks Blozzom and Snover for reporting.
* Feature: Allow configuring notifications for private messages separately from regular chat messages. Mentions can be configured to use these notifications, allowing silencing of regular chat, but still being notified or stuff directed at you. Thanks leandro2222 for suggesting.
* Fix: Replace the terrifying notification sound effects with stuff from KDE's Ocean Sound Theme.
* Fix: Don't delay own laser trails as if it were a stroke from another user. Thanks matt for reporting.
* Fix: Properly update avatar on user markers when they reconnect with a different one. Thanks xxxx for reporting.
* Fix: Show own user marker again when using the laser pointer.
* Fix: Use previous avatar when using the reconnect button after a disconnect.
* Fix: Don't trigger a cacophony of notifications after joining a session, just play a single notification once catchup is done instead.
* Feature: Store alpha preserve state of layers in ORA files for better Krita compatibility (requires Krita 5.2.1 or newer.)
* Feature: Allow onion skins to wrap around the timeline, toggleable in the onion skins dock. Thanks Hopfel for suggesting.
* Feature: Fill the brush slots with nicer default values on first startup, rather than them all being the same pixel brush.
* Fix: Don't lock tool slots when using the eraser tool, to avoid accidentally getting stuck in it.
* Feature: Translate a single-colored bottom layer into background color when loading ORA and PSD files.
* Fix: Make Alt+Space canvas shortcut sorta work in Windows. Thanks Bovy and xxxx for reporting.
* Feature: Drawpile 2.1 animation import.
* Server Fix: Don't boot user when they enter an incorrect password, let them try again.
* Server Feature: Allow the user to pick how they want to log in, to avoid the common issue of wanting to join as a guest but picking a username that's taken.
* Fix: Nudge catchup if it gets stuck without any messages received for a while.
* Feature: Remember accounts, not just passwords. Should reduce the clicks and typing needed to log in even if you use multiple accounts.
* Feature: Allow toggling whole tile marking in the inspector, since it makes some things easier to see.
* Feature: Render flipbook frames in the background and indicate that fact with a loading spinner. It no longer lags the UI and gets done faster because of multithreading.
* Feature: Crop flipbook when a selection is present upon opening it.
* Feature: Make the flipbook UI clearer. The buttons now look like buttons, the uncrop button has a better icon and only shows while the view is cropped and the speed slider shows how many FPS you're actually running at.
* Fix: Allow saving and loading files in weird Android folders that chew up the file names internally.
* Server Feature: Allow servers to have a rules text that users are prompted to accept upon connecting. Clients remember that they accepted the rules and won't prompt again unless they changed since last time.
* Feature: Add velocity and distance dynamics to classic brushes. Similar to how they worked for the input settings before, but more flexible than just a pressure mapping.
* Feature: Allow grabbing the current brush settings of another user.
* Fix: Relax transform size restrictions so that transforms of layers that cover the whole canvas don't always get cancelled.
* Server Feature: Allow servers to set a minimum protocol version for sessions being hosted.
* Server Feature: Let clients know at the beginning of the login if the session they're trying to join is nonexistent. Thanks Meru for suggesting.
* Server Feature: Allow server owners to make sessions only joinable through direct links. Thanks Meru for suggesting.
* Feature: Add touch tester, available under the Help menu.
* Fix: Actually put the link that's being joined into the address input when using a web link, rather than leaving it blank.
* Fix: Make Recolor (alpha locked) mode way faster.
* Fix: Allow using gestures instead of touch screen controls, hopefully making zooming on touch pads work again.
2023-09-30 Version 2.2.0-beta.8
* Fix: Apply color wheel direction to color dialogs too. Thanks Blozzom for reporting.
* Fix: Don't smoothe the canvas view when at 100% zoom with the canvas rotated at a right angle, since that just blurs it for no reason. Thanks SadColor for reporting.
* Fix: Make flipbook shortcut work while the flipbook is in focus, causing it to refresh its view.
* Fix: Cap flipbook range properly, rather than letting you set a range beyond the last frame.
* Fix: Remove the useless "?" button from dialogs in Windows. Thanks vipperz for reporting.
* Fix: Turn off input event compression, which causes jaggy lines on slow devices.
* Feature: Draw a hatching pattern on frames in the timeline that are the same as the currently visible one, making it easier to figure out if it's being re-used.
* Fix: Make flipbook extend the playback range if it was on the last frame and new ones are added to the timeline.
* Feature: Bring back dprectool, the command-line tool that converts Drawpile recordings. It should work mostly the same as it did in Drawpile 2.1.
* Feature: Apply parent folder opacity to frames within it, useful for sketch tracks. Thanks to TeaLord9000 for suggesting.
* Feature: Add a "small screen" mode, which should make the application usable on phones. Thanks to Verdrusk for suggesting.
* Feature: Allow changing the application font size, rather than using the system default that may be garbage, especially on Android. Also Verdrusk's fault.
* Feature: Locking docks now also locks toolbars, rather than still allowing you to move them around on accident.
* Feature: Kinetic scrolling. This lets you click/tap/touch scrollable stuff and fling it around instead of using the scroll bars or wheel. Configurable in the preferences. Thanks again Verdrusk.
* Fix: Make two-finger zoom and rotation not go completely crazy when the canvas is mirrored or flipped. Thanks BoyOnion for reporting.
* Fix: Don't crash when picking a brush preset on Android. Thanks to zetalambo and VeeBeeArt for reporting.
* Fix: Selections finally no longer sometimes disappear when transforming them. Thanks to Spuzzy, Xan and xxxx for reporting.
* Feature: Capture volume rocker on Android and bind it to undo and redo by default. Thanks to cl for suggesting.
* Feature: Add compatibility for Drawpile 2.1's broken indirect mode.
* Fix: Make the receive delay not delay your own undos.
* Feature: Add a setting for the background color behind the canvas. Thanks to Nightshade for suggesting.
* Feature: Let operators create layers beyond the 256 per-user maximum. They will use layers of user 0 first, then 255, 254 etc. Thanks to haxekhaex2 for reporting.
* Fix: Make Drawpile 2.1 binary (dprec) recordings play back properly. Text (dptxt) recordings are not supported.
* Fix: Synchronize rendering during recording playback properly.
* Feature: Bring back drawpile-cmd, the command-line tool that renders Drawpile recordings to images. Should also mostly work like it did in Drawpile 2.1.
* Feature: Implement drawpile-timelapse, a new command-line tool that turns Drawpile recordings into timelapse videos.
* Server Feature: Add --web-admin-allowed-origin option, to set the Access-Control-Allow-Origin header to the given value. Particularly useful for development, where you don't particularly want to set up an nginx to make CORS happy. Thanks Chem for reporting.
* Server Feature: Update the server to use the 2.2 protocol.
* Server Fix: Fix up some invalid casts and thread ownership issues. Not sure if they actually caused issues in practice, but especially on Windows they might have.
* Feature: Bring back the builtin server, allowing you to host "on this computer" again.
* Fix: Don't duplicate local fork on soft reset or undo depth change.
* Fix: Make Erase, Divide and Subtract layer modes in ORA files compatible with Krita.
* Feature: Stick ID alias and listing hosting options behind an advanced options checkbox, since they keep causing confusion.
* Fix: Make host page in the start dialog work properly on Arabic and other right-to-left languages.
* Feature: Allow choosing ffmpeg path on Windows. Thanks xxxx for suggesting.
* Fix: Move brushes to the proper place in MediBang-esque layout. Thanks xxxx for reporting.
* Fix: Replace the reset notice dialog with less disruptive on-canvas messages. If you continue drawing, the notice about saving the previous state will dismiss itself. Thanks to Blozzom, vipperz, xxxx, zheida and probably others for reporting.
* Feature: Allow the client to translate server messages, rather than having them always be in English.
* Fix: Make preferences dialog not use custom layouts anymore. Fixes the dialog getting stuck at an unusably tiny size on Windows, makes it work with Arabic and other right-to-left languages and allows resizing the dialog as well as scrolling its contents.
* Fix: Drag-zooming (Ctrl+Middle Click by default) now zooms on the initial click location, rather than the center of the canvas. Thanks to Valaek for reporting.
* Fix: Don't select layer when toggling its visibility.
* Fix: Show a crossed-out folder icon for hidden layer groups, rather than switching to the layer icon for them. Thanks to Blozzom for reporting.
* Fix: Make catchup explicit. Solves both the "stuck at 99%" problem during session resets and the canvas too be unlocked too early.
* Fix: Give erase mode its own icon so that it doesn't get confused for the eraser slot. Thanks Geese for reporting.
* Feature: Show if the current brush is in erase or alpha lock mode in the toolbar and allow resetting it via a click. Thanks Geese for suggesting.
* Feature: Paste in center of the canvas (instead of the center of the view) when the pasted image size is equal to or larger than the canvas size. Thanks Meru for suggesting.
* Fix: Single-pixel offset when pasting with an existing selection present. Thanks Meru for reporting.
2023-08-26 Version 2.2.0-beta.7
* Fix: Make classic brushes not go brighter when smudging into transparency. Thanks to cada for reporting.
* Feature: "Ratchet" canvas rotation shortcut, using Alt+Shift by default. Rotates the canvas in 15° increments. Thanks to Kvothen for suggesting.
* Fix: Don't filter out undo depth messages when playing back recordings.
* Fix: Make floating docks restore properly again. Thanks SnazComic for reporting.
* Fix: Don't show tag options when right-clicking on a brush preset. Thanks Blozzom for reporting.
* Fix: Properly disable blend mode combo box in layer properties dialog. Thanks xxxx for reporting.
* Fix: Move chat status bar button into a legal position. Thanks Flz for reporting.
* Fix: Correct various errors in text recording reading and writing.
* Fix: Don't keep locally forked canvas states around. This reduces memory usage by a bunch, especially when drawing locally.
* Feature: Add layer on current key frame button is now in the top bar of the timeline, next to the other key frame buttons. Thanks FallenArts for suggesting.
* Feature: Show a notice when there's no tracks yet, rather than just showing an empty timeline grid.
* Fix: Actually pick color when adding a color to the color picker through the color dialog.
* Feature: Mark window when a chat message is received. On Windows, this makes the icon in the task bar orange. On macOS, it supposedly bounces an icon somewhere. On other platforms it probably does something similar, indicating which window is the one that got a message ready. Thanks Radio for suggesting.
* Fix: Don't add current color to the palette when creating it. Thanks xxxx for reporting.
* Fix: Make exported palettes not start using the exported location to save changes to. Thanks xxxx for reporting.
* Feature: Allow muting notifications for a window. Thanks Blozzom for suggesting.
* Fix: Enable the lock session menu option properly, it remained stuck disabled in some cases before.
* Feature: Allow selecting and copying text from the pinned message (through the context menu, it doesn't take keyboard shortcuts.) Thanks Bluestrings for suggesting.
* Fix: Don't claim that a layer is locked when it's just not visible in the current frame.
* Feature: Make canvas rendering and preview painting asynchronous. This should make the UI much more responsive when e.g. changing layer visibility or transforming a large selection.
* Fix: Properly handle canvas resizes while transforming a selection, it now no longer causes the source of the transform to get offset.
* Fix: Show the current color properly on program startup.
* Feature: Make the color wheel innards go from least to most saturated, putting it in line with how most other software presents it. This can be toggled in the preferences.
* Feature: Holding Shift while moving a selection now keeps it along the closest axis. Thanks Kvothen for suggesting.
* Feature: Implement brush export and make the brush import also understand classic brushes.
* Fix: Make erasing with MyPaint brushes in indirect mode actually work.
* Feature: Make sliders adhere to the chosen color space. Thanks to leandro2222 for suggesting.
* Feature: Increase font size on emoji posted into chat. Thanks to leandro2222 for suggesting.
* Feature: Allow adding an avatar from the login dialog.
* Fix: Show main window maximized by default, because who wants a drawing program in a tiny window.
* Fix: Give docks sensible initial sizes. Thanks to xxxx for reporting.
* Fix: Don't tabify the now invisible-by-default timeline and onion skins by default. Thanks Ben for finding.
* Fix: Make the flipbook remember your last crop, frame range and playback speed for the current window. Thanks Ben for finding.
* Fix: Don't mark guests as registered. Thanks to xxxx for reporting.
* Fix: Allow assigning a shortcut to open the Layouts dialog (F9 by default) and to the entries in the Help menu (nothing by default.)
* Fix: Make reloading the last brush preset slot-specific, since it's nonsense to clobber your current slot with the last preset you set in another one.
* Feature: Allow increasing and decreasing key frame exposure. Thanks Tabuley for suggesting.
* Fix: Properly update the view when the canvas size changes, rather than leaving stale areas outside of the canvas.
* Feature: Add shortcuts to swap the contents of brush slots to allow for a kind of toggling behavior using a single shortcut. Thanks xxxx for suggesting.
* Fix: Make drawpile:// URL handling actually work on Windows. Thanks Sal for reporting.
* Fix: Don't draw the curves for MyPaint brushes in the brush editor with the same color as the background grid.
* Feature: Allow exporting animations from the Flipbook, using the cropping, frame range and speed set in it.
* Fix: Pre-fill image saving file dialogs with the current filename, rather than the previously opened or saved one. Thanks xxxx for reporting.
* Fix: Make filling transparent areas work better, rather than different surrounding colors making it behave differently.
* Fix: Make layer folders work as sources for flood filling.
2023-07-31 Version 2.2.0-beta.6
* Fix: Don't forget account password when entering a wrong session password.
* Fix: Smoothe out the timing of strokes received over the network to not make them appear jerky because of the paint engine drawing them too fast.
* Fix: Lock timeline controls when the canvas or user is locked.
* Feature: Allow adding key frames and an associated layer or group with a single action.
* Feature: Allow duplicating key frames along with their contents.
* Fix: Put changing the timeline frame count behind a button, since it might get mixed up with the current frame on accident.
* Fix: Slow down user markers only for MyPaint brushes and snappy for classic brushes as well as when a new line is started.
* Feature: Add a flipbook button to the timeline dock.
* Feature: Hide the indirect mode button in the brush dock instead of just disabling it, since it's hard to tell the difference otherwise.
* Fix: Fixed a crash when resizing the canvas while an indirect stroke is in progress.
* Feature: Allow viewing tile and draw context memory usage in the statistics dialog.
* Server Fix: Make the server GUI exist again, it got lost in the build scripts.
* Fix: Put unpinning behind operator permissions too, just like pinning.
* Feature: Improved canvas view. It now allows scrolling further beyond the edges, has more sensible zoom steps and shows messages about locks and canvas transformations.
* Fix: Make the canvas view not jigger anymore when you zoom it out at certain sizes.
* Fix: Lock drawing when the user is locked.
* Fix: Make KisTablet Windows Ink the default tablet driver on Windows, because the Qt one is pretty busted.
* Fix: Re-synchronize the canvas when local desynchronization is detected, rather than just keeping going with a broken state for ages.
* Fix: Don't reset the layer properties dialog when someone else changes a layer. This would cause renames to get reverted to the original name, for example, which is really annoying.
* Fix: Make default layer actually select itself when joining a canvas.
* Fix: Move notifications to their own preferences page, since the network page was out of room and squashed some controls.
* Fix: Make preference notes larger so that they work better in non-Latin writing systems.
* Fix: Make the password page of the login dialog not so annoyingly large.
* Feature: Clarify when asking for a session password versus an account password.
* Fix: Handle duplicated shortcuts by complaining about it, rather than doing nothing.
* Feature: Add shortcuts to move the canvas around, for people who want to do it with something other than the arrow keys.
* Feature: Enable auto-repeat for shortcuts where it's sensible, such as zooming, moving the canvas, undo, redo or switching between layers, frames and tracks.
* Feature: Allow clicking and dragging the inspector around, so that it's easier to hit small sections.
* Fix: Don't fire an assertion when moving a selection out of bounds. This is not an error.
* Fix: Default color wheel to HSV mode, not HSL.
* Fix: Stretch columns of the ban list so they don't look so weirdly cut off.
* Fix: Don't revert settings with a default value that have an old version of some other value.
* Server Feature: Relay listing errors to the client, rather than leaving them in silence.
* Server Feature: Add maximum user count and closed state to listings.
* Server Feature: Expedite listing refreshes when something important changes, like the NSFMness, title or closedness of a session.
* Server Fix: Make the server GUI compatible with Qt6.
* Fix: Make layer picking and the inspector pay attention to the layer view mode, so that picking layers when animating works properly.
* Fix: Allow pixel brushes to have a minimum of zero pixels, rather than treating both 0 and 1 as 1.
* Fix: Make chat line not scroll into oblivion when dragging over it.
* Fix: Make the UI not mess up the sizes of docks and chat when starting it on Windows.
* Fix: Make brush outline update even when docks are hidden.
* Feature: Make Linux AppImage more compatible with older Linuxes.
* Fix: Make secure connections work in the Linux AppImage.
* Feature: Automatically join a session when given a URL on startup, rather than waiting for another button press.
* Feature: Allow including session passwords into URL.
* Feature: Implement an invite dialog, to make it easier to directly let people join a session without listing it publicly.
* Feature: Show a warning when joining an NSFM session, since it might not be obvious to new users what they're in for.
* Fix: Make newlines show up properly when the chat is in context mode.
* Fix: Handle key presses and releases while dragging the canvas, since some people start the drag before pressing the key and would like their inputs to not be ignored.
* Fix: Wrap server title in the login dialog to make it not stretch the window into eternity.
* Fix: Allow opening links in the server title. They were turned into links, but those couldn't actually be clicked.
* Feature: Implement a start dialog instead of dumping the user into a blank canvas and making them pick through the menu at the top. Replaces the join, host, new and update dialogs, unifying them into a single one instead that should reduce the number of clicks required to do pretty much anything.
* Fix: Properly disable the NSFM session setting when it can't be changed.
* Fix: Make the color palette work properly again, it was broken in various ways. Also makes the color picker look like it used to in 2.1.
* Feature: Add a button to the color picker to pick from the screen.
* Feature: Allow focusing the canvas by double-tapping the Alt key, as well as an assignable shortcut for it, which is Ctrl+Tab by default.
* Feature: Show coordinates in the view status bar.
* Fix: Put resize arrows at the corners of the selection, rather than offset on the far ends.
* Fix: Don't displace selection by some subpixel amount when moving it around.
* Fix: Prioritize sending of pings and pongs so that a lot of queued messages don't cause a disconnect.
* Fix: Make filtering closed sessions actually work.
* Feature: Make the server browser columns resizable.
* Feature: Allow filtering duplicates in the server browser.
* Fix: Make pinned messages persist again even when chat recording is turned off.
* Fix: Don't grab colors from way too far away when using classic brushes.
* Fix: Avoid colors tending toward black when smudging.
* Fix: Make the cursors for the line, rectangle, ellipse and curve tools look less skrunkly.
* Fix: Prefer Drawpile's own icons over system icons, to avoid nonsensical icons being used on Linux.
* Translation: German, Italian, Portuguese (Brazil), Portuguese (Portugal), Russian, Simplified Chinese, Spanish, Turkish.
2023-06-21 Version 2.2.0-beta.5
* Made the new default theme *actually* the default theme, don't sync it with the theme from Drawpile 2.1.
* Fixed saving and loading settings even when Drawpile 2.1 corrupted them.
* Fixed saving of shortcuts and probably also some other settings that didn't let you clear stuff anymore.
* Allowed ordering of list servers in the preferences again.
* Made chat pins work properly again.
* Allowed color picking when using the selection tool again.
* Brought back the old averaging smoothing, as another option in addition to the new time-based stabilizer.
* Miscellaneous fixes and prettifications in the settings dialog.
* Fixed stabilizer settings being forgotten when closing the program.
* Non-floating selections now stick around after hitting Delete, since you might want to delete on multiple layers.
* Fixed some crashes when closing the window when it's in a funky state.
* Made settings only save to disk when you're not doing anything in the program, to avoid causing chugging on slow disks.
* Fixed Copy Merged to actually work and not just copy a blank rectangle.
* Fixed floating docks not being resizable on macOS.
* Fixed pasting images with weird color formats.
* Added an NSFM option to the host dialog, letting you turn that on right from the get-go.
* Called NSFM the same everywhere in the program, instead of mixing up "NSFM", "NSFW" and "age-restricted" in different places.
* Added a context menu to the join dialog, if you want to copy stuff out of there.
* Made popup messages ("Connecting..." and such) work on Wayland.
* Made nearest-neighbor transform actually work, it ended up being forced to bilinear every time.
* Made the stabilizer not run at a really low framerate on Windows.
* Split Shortcuts and Canvas Shortcuts into two settings pages again.
* Fixed shortcuts not getting assigned when closing the preferences without clicking somewhere else first.
* Made conflicting shortcuts actually show errors instead of silently doing nothing.
* Fixed tool slots swizzling their colors when multiple windows were open.
* Allow holding left-click on the timeline frames and scrubbing left and right for a quick preview.
* Pick better layers when switching animation frames and tracks, so that you don't end up stuck on layers that aren't actually in your current frame.
* Fixed a really stupid bug that caused sessions to seemingly revert to 2.1 mode.
* You can now add keyboard shortcuts for a whole lot more stuff, such as swatch colors, dock visibility and pretty much all actions you can pick from the menu that inexplicably didn't let you assign shortcuts to them before.
* Fixed the authentication dialog messages looking wonky.
* Made the session password dialog look less squashed.
* Made links in server messages clickable.
* Brought back the version check in a way that should work also for beta versions, on all platforms and in other languages.
* Allowed saving the log file on Android, since you can't view it directly.
* Made alert chat message backgrounds less bright.
* Updated Chinese, German and Portuguese translations.
2023-06-14 Version 2.2.0-beta.4
* Android support
* New paint engine again (Drawdance)
* More themes, nicer default theme
* Improved animation support, with a timeline, tracks and keyframes
* Adjustible undo limit
* Local canvas backgrounds
* Better canvas shortcuts
* Real stabilizer, based on Krita's
* Indirect mode for MyPaint brushes
* Full-fledged brush editor
* Better MyPaint brush import
* Saving and loading of application layouts
* Changed default layout that works better on small screens
* Tablet-friendly sliders, taken from Krita
* Fill tool gap-filling, feathering and improved size limiting
* Nearest-neighbor transform option
* Compatibility with 2.1 sessions
* Docks now have a menu instead of a close and undock button
* Docks can now be made undockable, if you want to keep them floating
* Top and bottom regions of the window are now dockable
* Docks can now be nested
* Vertical tabs option for side-mounted docks
* Holding shift gives you rearrange mode by default
* More and more useful brush presets by default
* Chat now has multiline support
* Preferences tidied up a bunch, internal settings system reworked
* Tablet drivers on Windows can now be switched without restarting the program
* Reset snapshot interval and amount can now be adjusted
* Parental controls can be hidden when locked
* forceNsfm option for the server
* Messages from server GUI will now be alerts
* Indirect drawing mode now works properly
* Hiding docks no longer jiggers them around
* Transforms now preview on the target layer
* Session resets no longer cause the view to jerk around or a layer switch
* Session resets now prompt for a save
* Layer opacity and blend mode controls are back in the layer list dock
* Recording and recording indexes now handle undos properly
* Recordings can be played back at fast speeds again
* (De-)selecting layer groups no longer makes a clicking noise
* You now have to be operator to pin a chat message
* Moving your own layer into your own group no longer requires omnipotence
* Switching away from the annotation tool no longer conjures a blank annotation
* Linux and macOS now properly focus the canvas when it's interacted with
* Massively improved development and release infrastructure with CI and such
* Weblate integration
* Development tools, like tablet event logging, debug dumps etc.
2022-08-20 Version 2.2.0-beta.3
* Added support for MyPaint brushes
* MyPaint style 15 bit color channels
* Removed popup notifications for join and leave events
* Fixed skew when scaling a selection from the top-right handle
* Fixed mouse droppings when for large brush outline widths
* Fixed laser trail persistence selection
* Split color wheel, sliders and palette into separate docks
* Fixed "no guest logins" checkbox eanbled state
* Fixed session snapshot missing the timeline
* Enable timeline editor only when given permission
* Active layer is now shown in the timeline editor
* Next/previous frame action also autoselects layer
2022-08-11 Version 2.2.0-beta.2
* Fixed smudge color sampling mask offset
* Fixed annotation loading
* Added support for `/alert` chat command in private chats
* Fixed crash if a group layer was moved by layer deletion
* Fixed layer lock status updating
* Fixed preserved chat mode
* Annotation creator name is now shown in the dock titlebar
* Restored palette write-protect feature
* Fixed brush slider limit preferences
* Layers hidden in frame/onionskin mode are now grayed out in the layer box
* Modifying the timeline now updates the view immediately
* New identicon style
2022-08-03 Version 2.2.0-beta.1
* New paint engine written in Rust
* Added support for layer groups
* Added animation timeline editor
* Added screen blend mode
* Disabled built-in server pending rewrite
* Added `/alert` chat command
2021-09-12 Version 2.1.20
* Updated Portugese translations
* Added more angles to canvas rotation dropdown menu
* Fixed inconsistency in classic brush rendering
* Fixed inconsistency in layer resize color sampling
* Theme (Windows Vista style / Fusion / Fusion Dark mode) is now selectable
* Fixed that a cleared annotation would not count as empty for the "delete
empty annotations" command
2021-08-06 Version 2.1.19
* Fixed performance regression
* Fixed potential crash during login (catchup stage)
* Fixed crash when adding a new input preset
* "Fusion" style is now always used on Windows for consistency
* Added canvas rotation gauge widget to status bar
* Invalid canvas resize commands are now ignored
* Fixed that ongoing indirect strokes weren't drawn when exporting a recording to video
* Fixed garbled navigator content when joining a new session
2021-07-25 Version 2.1.18
* All actions can now be assigned an alternate shortcut
* Added French and Portugese translations
* Fixed inconsistent zooming at certain values
* Fixed brush size adjustment shortcuts not working consistently
* Fixed that undo operations would cause the layer list to scroll
* Fixed moving a layer to the bottom-most position
* Various bugfixes
* Breaking change: active tool setting format was changed. Not compatible with older Drawpile versions.
* Input preferences can now be saved per tool
* Brush cursor outline width can now be changed
* Layer properties can now be edited in a dialog
* Color wheel shape is now selectable
* Maximum brush size and spacings can now be extended (affects sliders)
* Added selection perspective transform mode
2020-02-16 Version 2.1.17
* HTTP redirects (e.g. when searching for a list server) are now followed
* When launched with an URL, the URL gets set to the address box correctly again
* Available list servers are now updated in session settings dialog if servers are added or removed while connected
* Updated Finnish and Chinese translations
* Server: User "trusted" status flag can now be changed via admin API
* A list server can now be added via drawpile:// link
* Fixed moderator login (would ask for password when none was needed)
2020-02-09 Version 2.1.16
* Server: Added support for ext-auth "TRUSTED" flag
* Server: Added "lastActive" timestamp field to session user list API
* Server: Changed session ID style from GUID to ULID
* Server: Added option to not respect ext-auth HOST flag
* Relative URLs are now supported in "drawpile:list-server" meta tag
* Added disconnect notification bar (with a reconnect button)
* List servers can now be manually sorted
* Fixed brush size adjustment shortcut (needed to presses to adjust)
* Fixed selection scaling if selection was not entirely contained by the canvas (selection is now clipped to canvas)
* Fixed copying and cutting a moved selection
* Automatically remove list servers that return HTTP 410 (Gone)
* Removed the default list server. Instead, a link to drawpile.net's communities section is shown.
* Saved passwords are now stored in the system password store
2019-12-07 Version 2.1.15
* Server: Added support for list server API 1.6
* Server: Added `ext_host` and `ext_port` fields to status API endpoint
* Server: Abuse report token can now be set via admin API
* Server: List server whitelist can now be edited via the API
* Server: Fixed memory leak in admin API
* Server: The server can now also serve web admin site static files
* Server-gui: Added "welcome message" field
* drawpile-cmd: fixed ORA export format support
* Added command line options to override data and config paths (portable app mode)
* Added "closed" session list filtering option
* Added "Add" button to join dialog for adding the server's associated list server
2019-11-16 Version 2.1.14
* Fixed dab spacing in default brush presets
* Fixed that selecting a brush preset could change the eraser slot into a non-erasering mode
* Fixed brush preset reordering by drag&drop
* Added brush preset folders
* Fixed that pressing spacebar while drawing would cause strange input handling behavior
* Server: admin API URL is now prefixed with `/api/`
* Bugfix: don't allow pasting by drag&drop if cut&paste is disabled
2019-11-03 Version 2.1.13
* Bugfix: spacebar would have to be pressed again after releasing mouse button when dragging
* Removed arbitrary OpenRaster image size limit
* Bugfix: brush color is now initialized properly on fresh install
* Bugfix: selected brush blending mode is restored again
* Replaced pressure checkboxes with toggle buttons to free up some vertical space
* Disabled brush preset drag&drop. (Bandaid solution to a regression, will be fixed properly in the next release.)
* Enabled High-DPI icons and scaling
2019-10-20 Version 2.1.12
* Added Italian translation (contributed by Albano Battistella)
* Fixed lockup when opening a layered TIFF file
* drawpile-cmd: added support for outputting to stdout
* Improved brush preview: different styles are now used for different brush types
* Smudging can now be used with all brush shapes
* Canvas modifier key shortcuts can now be customized
* Added cursors for layer picker, quick adjust, zoom and view rotation modes
* Use the same default curve for velocity pressure emulation mode
* Fixed tool quick adjustment dragging responsivity
* Server: file backed session file naming is now consistent when archive mode is enabled
* Added a new shortcut for canvas rotation (shift+ctrl & mousewheel)
* Improved selection tool: scale/rotate/shear mode is now toggled by clicking, rather than keyboard modifier
* Fixed crash when using large-radius color picker near the edge of the canvas
2019-06-23 Version 2.1.11
* Fixed that brush color was uninitialized on fresh install
* Fixed that using "/me" in a direct message would send it as a public message
* Fixed incorrect layer when moving selection if active layer was changed before the move ended
* Fixed single pixel shift when moving or copy&pasting freeform selections
* Join dialog's session list sort order and column is now remembered
* Fixed that read-only listservers were included in the session settings "add listing" buttons
* Server: registered user bans are no longer IP bans
* Server: op and trusted status is now remembered by user account, rather than username
* An error message is now shown if a login message is oversize
* Chat box can now be detached into its own window
* Client now refuses to autoreset if it knows it isn't fully caught up yet
2019-05-30 Version 2.1.10
* Fixed that built-in server settings were being ignored
* Updated bundled color widgets to latest upstream version
* Fixed that an early undo could clear out the canvas size
* Limited reset snapshots to one every 10 seconds
* Fixed view jumping when canvas was resized
* Fixed extra messages in the beginning of session recordings
* Server: fixed that web-admin API HTTP headers were case-sensitive
* Application version number is now shown in a tooltip if a session is incompatible
2019-05-19 Version 2.1.9
* Fixed that disabled brush slots were still selectable with a keyboard shortcut
* Fixed potential crash when logging in to a session
* Incompatible sessions are no longer hidden in from the Join dialog
* Ctrl+C shortcut now works in the chat box
* Added support for read-only list servers
* Removed drawpile-srv argument `--secure` (secure mode is now always used if TLS is enabled)
* The built-in server is now based on the new Thick Server
* Server: added support for real password hashing algorithms
* Server: fixed crash when using file sessions (regression)
* Fixed duplicate entries in the "Nearby" server list
* Very long pinned chat messages no longer force the window to become wider
2019-05-04 Version 2.1.8
* Server: fixed potential crash when terminating session
* Server: listings are now refreshed in batches instead of individually
* Background color alpha can now be set in the "new image" dialog
* Adaptive canvas zoom slider: the minimum value is now always the zoom level needed to fit the whole canvas on screen
* Drawpile can now download the latest version via the "check for updates" dialog
* Fixed formatting in update check dialog when more than one new version is shown
* Drag&dropping a link to an image onto the canvas now works again
* New more efficient recording index format. Indexes are now generated faster and the files are smaller.
* Enabled dark appearance support on macOS
* Memory usage optimization: only the minimum amount of session history is now kept in memory
* Manual session reset snapshots are now retained separately for one minute.
* NSFW sessions are no longer hidden by default
* Fixed crash when opening an OpenRaster file with missing stack.xml
2019-04-13 Version 2.1.7
* Added Ukranian translation
* Fixed navigator not updating correctly on canvas resize
* Simplified join dialog (listings from all servers are now shown at the same time)
2019-04-06 Version 2.1.6
* Scrollbars are now hidden in fullscreen mode
* Regression fix: chat box no longer autoscrolls when not already scrolled to the bottom
* Removed default shortcuts for event log and session settings. They can still be assigned custom shortcuts, however.
* Added option to share the same color across all tool slots
* Fixed lines being drawn across the canvas if session reset occurs while midstroke
* New feature: a session can now be reset to an image loaded from file
* Full screen mode no longer hides the status bar, instead it is hidden along with the toolbars and docks using the Tab shortcut
* Added "pick color from layer" brush mode
* Implemented Night Mode
* Enabled smooth canvas scaling at certain zoom levels (1-200% or 1-800% when rotated)
* Session permissions can now be saved as presets
2019-03-30 Version 2.1.5
* Fixed navigator view dragging
* Added option to update the navigator in realtime again
* Pressing Tab now toggles toolbars on and off
* Entering fullscreen mode no longer hides docks and toolbars
* Fixed brush preset preview shape rendering
* Moved certain buttons back into the status bar
* Moved zoom slider back into the status bar
* Fixed saving of brush preset changes
2019-03-23 Version 2.1.4
* Fixed session list sorting in login dialog
* Fixed crash when resizing canvas
* Fixed layer access user list going out of sync
* Fixed navigator focus rect scaling
* Fixed "registered" level permissions not taking effect on login
* Server: session and recording directories are now automatically created if missing
* Added automatic new release checking
* Added filter field to user list (event log)
* Reimplemented navigator user cursors
* Navigator cursors can now be enabled or disabled independently of the main canvas cursors
2019-03-16 Version 2.1.3
* Fixed showing layers in user markers
* Fixed crash when changing tools mid-stroke
* User cursors and other decorations are no longer shown in the navigator
* Navigator is refreshed only at 500ms intervals to reduce CPU load
* When the canvas is rotated, the righthand side of the viewport is now indicated in the navigator
* Restored 2.1.0 style chatbox and added an option to enable 2.0 style compact mode
* Added Inspector tool
* Fixed remembering of last open/save folder
* Added user list to event log dialog that shows all past users
* Server: logged out users can now be banned retroactively
* Server: past users are now listed in the admin API
2019-03-09 Version 2.1.2
* Increased brush dab max spacing limit to 999% and max brush size to 255px (oversizes accessible via the spinbox)
* Fixed crash when using flood fill on an canvas without any layers
* Fixed crash when trying to reset after resetting to the very beginning of the history
* Clicking on the layer show/hide glyph no longer selects the layer
* OpenRaster: the xres and yres values are now preserved
* Implemented fixed layers (a generalization of the old background layer feature)
* Added Vietnamese translation
* Fixed canvas not appearing immediately when login dialog was closed
* Fixed chat username line breaking
* Fixed Recolor (and other modes) in non-incremental mode
2019-02-17 Version 2.1.1