Repository navigation
Code signing policy: https://drawpile.net/codesigningpolicy/
- Fix: Make dock tab icons show up properly on Qt 6.11, they could end up blank there.
- Fix: Don't skip initial command when playing back recordings. This caused the canvas size command to be skipped on old converted recordings, meaning its size stayed at zero and nothing would play. Thanks dango for reporting.
- Server Feature: Allow new sessions to clobber empty, non-persistent, lingering sessions. Server owners can enable this to prevent "server is full" errors that would resolve themselves by waiting a few minutes for these lingering sessions to time out. Sessions with the lowest time spent drawing are terminated first. Thanks Bluestrings for suggesting.
- Fix: Make hitting "save" after joining a session in the same window not save over the save file from a previous session in the same window. Unless you are reconnecting to the same session, in which case it will save over the file as it should. The logic for this was reversed from what it should be. Thanks Bonbli and D'mitri for reporting.
- Fix: Also select layers when multiple key frames are selected.
- Fix: Properly select layers when switching focused tracks when the selected frame was already visible.
- Fix: Revert default save format to the new default even if it has been changed before, since it's better to make you change it again than lose timelapse data. Thanks Sheepolution for reporting.
- Fix: A crash on Windows when unchecking the show conflicts checkbox while still editing a shortcut. Thanks yellow circle for reporting.
- Fix: Make animation playback not get stuck when switching from a reversed range to a normal one without refereshing.
- Fix: Properly apply the parent group's opacity in the rendered animation as well, rather than just on the canvas.
- Feature: On Android, hide any open docks in small screen mode when pressing the back button before closing the main window. Thanks anonymous for suggesting.
- Fix: Make start screen take less horizontal space in small screen mode. Thanks anonymous for reporting.
- Feature: Remove the "Normal View" button from the timeline header, since you can just press the frame view button to exit it. This makes the timeline fit better on small screens.
- Feature: Add a drag zoom mode to the zoom tool. This is the default, since it's more useful and consistent with the rotation and pan tools. You can still use the select zoom by right-clicking, holding the constrain key (Shift by default) or switching the mode of the tool. Thanks Shuko for suggesting.
- Feature: Give the zoom tool nice header buttons to zoom in, out, fit and reset.
- Fix: Make the zoom tool behave more predictably, it now doesn't do weird stuff like letting you select an area and then zooming out on it.
- Fix: Give better icons to zoom in, zoom out and reset zoom, so that they don't all just look like rectangles at a glance.
- Feature: Handle Lenovo Tab stylus presses on Android by translating them to F26 to F30. Thanks Moody2357 for helping to figure this out.
- Fix: Properly indicate that the previous session is being resumed on Android. Thanks tiar for reporting.
- Fix: Correctly restore local state like layer visibility when resuming a session with a snapshot on Android. Thanks tiar for reporting.
- Fix: Work around the Wacom Movinkpad update showing a cursor when using the stylus that will flicker out of existence every time you press down the stylus. It will now show no cursor for the stylus, as it did before. Thanks Sylvanticus for reporting.
- Feature: Add some new brushes in the Drawpile category and a new Secret's Brushes category with ribbons, halftones and more provided by Blozzom.
2026-09-22 Version 2.3.1-beta.2 - Fix: Make ratchet rotation canvas shortcut work properly when the canvas is mirrored or flipped. Thanks Bovy for reporting.
- Fix: Make default filename use months as the second number, not minutes. Thanks hipofiz for reporting.
- Fix: Allow dragging initial curve tool point to let you change its control point again. Thanks Astre for reporting.
- Fix: A fix for the application not starting up on Android older than 8. Thanks freyalupen for reporting.
- Feature: Allow triggering any action via touch taps. Thanks Bnuuyman for suggesting.
- Feature: Add one-finger double-tap touch action. Lets you bind stuff to tapping twice quickly with a single finger. Thanks Bnuuyman for suggesting.
- Feature: Allow selecting multiple frames in the timeline, letting you move, copy, delete etc. them all at once. You can use Shift or Ctrl or switch to the "select" timeline tool to do it without keyboard keys.
- Feature: Add support for stylus barrel rotation on Android, for styluses that support it. Thanks kwh0209 for helping test this. This is a patch to Qt.
- Fix: Make repeated move transforms not cause the transformation to get scaled by one pixel. Thanks Hermanni for reporting.
- Feature: Allow fractional scaling for animation exports, in case you need very specific pixel dimensions.
- Feature: Allow configuring right-click drawing to do nothing (the default), draw with the background color or erase. Thanks noelle and walnut for suggesting.
- Fix: Give select layer above and below shortcuts a proper title with "layer" in the name so that you have a chance of finding them in the list. Thanks anonymous for reporting.
- Feature: Allow selecting color-marked layers via keyboard shortcuts. Thanks anonymous for suggesting.
- Feature: If Drawpile on Android is terminated due to resource exhaustion, such as running out of memory, it will now show a message about it on the next startup. Thanks Bluestrings for suggesting.
- Feature: Add a workaround for full-pressure blotches on Ugee tablets. Enabled by default on Android and the browser where it is known to happen, shouldn't cause interference for styluses that behave normally. Thanks London for reporting.
- Fix: Make sure MyPaint brush strokes start with proper directional values if the brush makes use of them. Previously they could end up with the value being zero degrees instead. Thanks tiar for reporting.
- Fix: Call the Option key on macOS by its proper name. Thanks Axocrat for reporting.
- Feature: Allow configuring whether a stroke is started only when moving the stylus. Enabled by default, as it was before. Thanks dAVePAGE for suggesting.
- Fix: Make MyPaint brushes not require movement to put down the first part of their stroke. Brushes that use directional inputs don't do this, since movement is needed to have a direction. Thanks dAVePAGE for reporting.
- Feature: Turn the lasso fill tool into a shape fill tool with two shape options: lasso and fan. The latter option does not produce holes, everything gets filled. Thanks lan700ng and VolutBrum for suggesting.
- Fix: Correct saving of key frame properties to dppr files. Thanks marddle for reporting.
- Feature: Allow exporting animations and timelapses on Android with the OS-supplied media encoder. Thanks Bluestrings, hpar and marddle for testing.
- Fix: Make WEBM video export use a higher quality.
- Feature: Add a declone key frame layers action. For the selected key frames, it will duplicate the layers referenced by multiple key frames.
- Feature: Add a paste decloned key frame layers action. Will paste and duplicate layers if necessary.
- Fix: Allow hitting enter/return twice on a number input to accept the dialog they're in, rather than entering edit mode again. You can also hold Shift to explicitly accept the dialog and Ctrl to explicitly enter edit mode instead.
- Feature: Allow configuring the default save file name format under Edit > Preferences > Files. Thanks Bluestrings for suggesting.
- Feature: Show the current layer title on the cursor when using the layer pick canvas shortcut (Ctrl+Shift+Left Click by default.) Thanks Gabr for suggesting.
- Fix: Take the canvas rotation into account when constraining the angle (Shift by default) in the line and gradient tools. Thanks Ben for reporting.
- Fix: Properly remember the selection of built-in brush tags like All or Untagged.
- Feature: A history of used brushes, selectable as as a new "History" tag. Deleted brushes and brushes requested from other users will be retained here and can be undeleted or saved respectively until the history is cleared or they are explicitly removed. Thanks Ausjamcian, Geese and Phoneme for suggesting.
- Feature: Add a clear button for the search field in the brushes dock. Thanks Bluestrings for suggesting.
- Fix: Optimize non-tile-aligned canvas resizes. They should now be faster and use less memory. Thanks Bluestrings for reporting.
- Fix: Retrieve file display names properly on Android. They could sometimes end up with wonky names when using file providers with ugly paths.
- Fix: Use the proper input minimum and input maximum ranges in the MyPaint brush settings. Thanks Pine for reporting.
- Feature: Allow exporting animations and timelapses on Windows using the OS-supplied media encoder.
- Fix: Allow toggling the workaround that ignores zero-pressure tablet inputs, in case you have a tablet that reports no pressure despite you pressing the stylus down. SuperDisplay is known to do this. Thanks Tenzin for reporting.
- Fix: Encode special characters in invite links so that they don't cause trouble when copying them around. Thanks Bluestrings for reporting.
- Feature: Project playback, via File > Open Player. Can play back dppr files. This replaces the previous player, dprec and dptxt files will be converted on the fly.
- Feature: Drawpile will now ask you if you start a recording while autorecovery is enabled, to avoid accidentally recording double for no reason. Thanks tiar for reporting.
- Feature: Allow converting dprec and dptxt recordings to dppr files via File > Import > Convert Recordings to Project. You'll also be prompted about it when you use File > Open on these files.
- Feature: Support for Android 16. Older versions continue to be supported, same as before.
- Fix: Make timeline selection tool work properly while dragging over a track with onion skins enabled.
- Feature: Add Tools > Developer Tools > UDP Activity Stream. This emits the cursor position over the canvas view and some other activity over a UDP socket, which can be consumed by stream avatars, brush sound makers and similar programs. Thanks Maniko for suggesting.
- Feature: PNG spritesheet export for animations. Thanks greendyno and ULTRA TECH for suggesting.
- Fix: A crash when resizing the canvas smaller while a lasso selection is being transformed. Thanks greendyno for reporting.
- Feature: Repairing dppr and dpcs files via File > Repair File. If the file is detected to be corrupted, you will also be prompted to repair it when opening or recovering the file.
- Feature: The the position, zoom, rotation, mirror and flip state of the view is now saved in dppr files. This state is restored when resuming a session on Android and following it can be toggled in the playback dialog.
- Feature: When using Save As to save to a new dppr file, the current dppr file will be used as the basis for it, rather than an empty file. Thanks tiar for suggesting.
- Fix: Make Selection → Fill Selection, gradient tool and shape fill tool adhere to layer alpha lock. Thanks hipofiz and Verdrusk for reporting.
- Fix: Show proper download progress for list server favicons.
- Fix: Make double-clicking dock titlebars not toggle them floating, since that's too easy to activate accidentally.
- Fix: Increase the drag threshold for arranging docks and toolbars in general, as well as for docks when not in arrange mode even further, to avoid accidental rearrangements.
- Feature: Add File → Merge/split projects. This lets you combine multiple dppr files or pull individual sessions out of them. Adding dprec/dptxt recordings to them is also supported.
- Feature: Warn about closing the browser tab too quickly after saving, since several browers will truncate the target file to 0 bytes and then write to a temporary file, leaving you with the former if you exit too quickly.
- Feature: The browser pressure tester now shows the pressure value and lets you toggle whether to optimize for low-pressure styluses like Apple Pencils, in case it doesn't get detected automatically.
- Server Feature: Tell the user how many hours or minutes remain on their ban if it expires in less than 3 days, since giving just a date can make it confusing with regards to time zones. Thanks Bluestrings for suggesting.
- Feature: Allow switching timelapses to be speed-based instead of duration-based. It will calculate the video duration from the given speed. Thanks xxxx for suggesting.
- Fix: When saving an ORA file with clipping groups, the animation timeline's frame assignments no longer get garbled. Thanks BluesFlying for reporting.
- Fix: Solve an issue where on some systems you would get disconnected on the first attempt of joining a session and then it worked fine on reconnect. This fix was already applied on Android, but aparently it also rarely happens elsewhere. Thanks Greendyno for reporting.
- Feature: Replace the New and Open buttons in the toolbar with a menu that has common file actions and repeats the top menu bar for systems where that's annoying to access. Thanks tysontan for suggesting.
- Feature: Allow dragging the logo in the timelapse dialog, rather than having to fiddle with the padding sliders.
2026-05-16 Version 2.3.1-beta.1 - Fix: Force canvas view dimensions to be even on hardware renderers, since otherwise the view gets scrunched on some graphics cards.
- Fix: Make MyPaint brushes properly handle input values exactly on the point of a stair-step curve. Thanks Blozzom for testing.
- Fix: Don't show MyPaint curves as continuing in a straight line outside the first and last point, sincet they don't.
- Server Fix: Only show the fact that a session was reported in the event log, but leave the details to only be visible to the server owners. Thanks Liz for reporting.
- Feature: Allow setting a blank brush cursor in the tools preferences. Thanks mixnmatt for suggesting.
- Fix: Work around tablets not reporting when the eraser is brought near. Thanks Lauwenmark for reporting.
- Feature: Show rectangle selection extents in the status bar. Thanks Mercia for suggesting.
- Server Fix: Log streamed resets being blocked properly. Thanks grimsley for reporting.
- Feature: Allow selecting custom color scheme files dropped into the application data.
- Fix: Work around some some Android devices eating three- and four-finger taps unconditionally. Thanks Afiq for reporting.
- Fix: Don't try to set the one-finger touch input on Android according to whether the device says it has a stylus attached because devices just lie about it. It's always set to be dynamically detected by default now.
- Fix: Make stylus buttons on some external tablets on Android work properly. The pen buttons used to not activate until pressing the pen down and release only if the pen was continued to be held. This is a patch to Qt.
- Fix: Clamp OKLAB colors the proper way round. Thanks Bonbli for reporting.
- Feature: Replace autosave mechanism with more robust autorecovery.
- Fix: Make setting kinetic scrolling to touch drag not trigger long-presses immediately on Android.
- Fix: Properly clear invalid selection areas when masking brush strokes (shouldn't happen in the first place though.)
- Fix: Make stylus buttons on Xiaomi devices act as right and middle clicks instead of page up and page down. Can be toggled in the tablet preferences. This is a patch to Qt.
- Fix: Make lines not come out all jaggy on Xiaomi devices by ignoring the (wrong) tablet position history. Can be toggled in the tablet preferences. This is a patch to Qt.
- Fix: Default the global pressure curve on Xiaomi devices to be really steep, because their stylus has a similarly high threshold as Apple Pencils do.
- Feature: Add "Anti-Strain", "Apple Pencil" and "Xiaomi Stylus" as a preset options for the global pressure curve.
- Fix: When saving a file, ask whether to overwrite it after confirming the format to avoid overwriting files unquestioned.
- Fix: Properly preview editable fills when switching layers.
- Feature: Allow toggling eraser, erase mode and alpha preserve via canvas shortcut. Thanks SOLARIS for suggesting.
- Fix: Disable the annoyingly slow and sometimes even crashy animations when rearranging docks and toggling toolbar extensions. They now just occur instantly instead.
- Feature: Allow viewing project statistics, such as length of sessions and work time, via File → Project statistics. Requires enabling autorecovery and saving to a dppr file.
- Feature: Timelapses, via File → Make timelapse. Requires enabling autorecovery and saving to a dppr file.
- Feature: Allow triggering undo, redo, hide docks and any other actions via canvas shortcut. Thanks RubySnoot for suggesting.
- Feature: Make right-clicking with the freehand tool draw with the background color. Thanks doughie for suggesting.
- Fix: Properly disable color marker and blending option buttons in the layer properties dialog when you don't have permission to modify those. Thanks xxxx for reporting.
- Fix: Make bezier curve tool work with touch drawing. Thanks Notester32 for reporting.
- Fix: Make refreshing flipbook not reset the playback to the beginning. Thanks BulletPepper for reporting.
- Fix: Keep flipbook range to match the canvas range when it did so before even when closing the flipbook. Thanks BulletPepper for reporting.
- Feature: Add next/previous frame within range actions, to move through the timeline but wrap at the edges of the frame range. Holding shift while pressing arrow keys actuates this action as well. Thanks BulletPepper for suggesting.
- Feature: Add "set speed by FPS", "reset range" and "reset speed" actions to the flipbook. They are now behind the button that previously had only two zoom-related actions.
- Fix: Make fonts not be a wonky size on some Android devices.
- Feature: Ask for a UI scale on startup on Android, letting you adjust it and view the result, rather than having to restart Drawpile and potentially be left in an unworkable state. You can also pick the interface mode while you're at it.
- Feature: Rotation tool. Similar to the Pan and Zoom tools, this lets you rotate the canvas just by clicking on the canvas. Thanks Cryankiebuillars for suggesting.
- Fix: Properly enable clipping and alpha lock controls in layer dock when switching from a non-editable to an editable layer. Thanks xxxx for reporting.
- Fix: Don't clamp brushes with out of range inputs from the mere act of opening the brush editor. Thanks Phoneme for reporting.
- Feature: Add numeric input fields to curve inputs to allow the exact numeric values of each curve point to be set exactly. Thanks Saphiros for suggesting.
- Fix: Render repeated animation frames into exports, since some players get confused by frames held longer.
- Feature: Brush preview styles. You can now toggle between the full style with the rainbow circles and a plain style that matches the UI colors and doesn't try to preview every aspect of the brush. You can also toggle the display of the brush's title and thumbnail. There's also the option of disabling the preview altogether. The default is to show the thumbnail and title with plain style, since that gives the best tradeoff between showing the relevant information without being too distracting. Thanks fadi123go for suggesting.
- Fix: Use a fixed random seed for the brush preview so that it doesn't change erratically when adjusting a parameter, which made it hard to see what was actually changing.
- Feature: Only load brush thumbnails as they are needed. This should speed up startup if you have a lot of brushes.
- Fix: Properly update alpha inherit icon when switching between dark and light themes. Thanks xxxx for reporting.
- Feature: Allow choosing between thumbnails, strokes or both in the brushes dock. The default is both, since it gives the most amount of information at a glance.
- Fix: Center brush dock thumbnails instead of having them left-aligned. Thanks MorrowShore for reporting.
- Feature: Allow arbitrary scaling of brush dock sizes with a slider instead of a fixed set of sizes.
- Fix: Handle additional stylus buttons on Android correctly. This makes some three-button styluses no longer interpret two of the side buttons as middle mouse.
- Feature: Bind mouse button 5 to toggling the eraser by default. This makes three-button styluses have useful behavior.
- Fix: Show correct MyPaint outline size when switching tools. It could sometimes end up showing an unadjusted size.
- Fix: Properly mark MyPaint brushes as having been modified when modifying inputs other than pressure.
- Fix: Don't limit flipbook range to 99 when opening it.
- Feature: Allow using external ffmpeg for animation exports. This adds some more video codecs that normally don't come with Drawpile.
- Fix: Make color selection in annotation tool asynchronous so that it doesn't crash in the browser. Thanks Curiosity for reporting.
- Feature: An overview page for the shortcut preferences, to hopefully cut down on users not being able to find where to assign mouse buttons or similar.
- Fix: Make status bar not end up huge when reattaching chat. Thanks hpar and xxxx for reporting.
- Fix: Slow down the update rate of the status bar, since it causes performance issues on some devices. Thanks Liz and Hyper ifg for reporting.
- Fix: Don't focus flipbook when it's already open to allow refreshing it without it taking away the keyboard focus from the main window.
- Feature: Make the key frame delete action also delete the associated layer and add a separate unassign key frame action that only gets rid of the key frame.
- Feature: Move the timeline track manipulation buttons into the top-left corner of the timeline above the tracks which was previously just a blank space.
- Feature: Add an exposure tool to the timeline, which allows shifting multiple frames around without keyboard shortcuts. It is also accessible by holding Alt.
- Feature: Allow zooming the animation timeline. There's a zoom menu on the timeline header now, you can use Ctrl+Mouse Wheel and you can bind keyboard shortcuts to it. Thanks Myathingoss for suggesting.
- Feature: Allow playing back and exporting the tail end of an animation loop by setting the playback start larger than the end in the flipbook. This will play from flipbook range start to timeline range end, restarting from the timeline range start and playing until the flipbook range end, skipping the frames in the middle. Thanks Saphiros for suggesting.
- Feature: Allow locking frame dragging on timeline tracks to prevent accidental frame moving, overwriting and changes in exposure. Thanks Saphiros for suggesting.
- Fix: Make lone presses of the Alt key not focus the menu bar, since that interferes with shortcuts.
- Feature: You can now configure the main menu bar actions in the shortcuts. They are also no longer dependent on which language you have Drawpile set to.
- Feature: Allow dragging over numeric inputs to adjust their value. They also now don't annoyingly select the prefix and suffix anymore when you click on them. Thanks LingjenKaos for suggesting.
- Fix: Don't consider the canvas eligible for long-pressing to open a (nonexistent) context menu.
- Fix: Ignore motions right before releasing a numeric slider so that lifting the stylus doesn't annoyingly nudge the value off what you meant to pick.
- Fix: Some text input on Android where spacebar wouldn't work, the view would turn blue on some devices, the text area would block stylus input or the text menu would cover up the text.
- Fix: Handle F13 to F24 keys on Android and translate F21 to middle click by default. This is a workaround for OnePlus devices that inexplicably press this keyboard key when you press the button on their stylus. Thanks Clover_Yan for reporting.
- Fix: Translate transforms with oversized selection masks to cut and paste operations instead of cancelling the transform. Thanks phanie for reporting.
- Fix: Properly reset user id after leaving an online session and opening a file or creating a new image in the same window. Previously you would count as different users in different contexts, leading to permissions appearing wrong and your own strokes getting a user marker. Thanks grimsley for reporting.
- Feature: Translate double-tap gesture on Huawei styluses on Android to the F25 key. Thanks noalero for suggesting.
- Fix: Occasional crashes when using anti-overflow with a non-zero expand value at the edge of the canvas. Thanks Ausjamcian for reporting.
- Feature: Allow clearing log files in the Files preferences. This is particularly useful on Android, where you can't manually delete them (although they probably don't take up much space either way.)
- Fix: Immediately send local drawing commands from freehand strokes to the paint engine. This makes synchronized smudging way faster on some devices (and no perceptible difference on most others.)
- Fix: Cancel strokes lingering from synchronized smudging when a new one is started. This prevents long-running strokes from just taking forever to finish and prevents the program hanging in some pathological cases.
- Fix: Don't enable synchronized smudging on MyPaint brushes that don't have it explicitly set and only have infinitesimal smudge factor. There's several brushes where all it does is slow down the stroke with no perceptible difference.
- Fix: Set frame ranges properly when only changing one side of the frame range in a session that doesn't have both sides set yet. Thanks dAVePAGE for reporting.
- Fix: Properly load frame ranges from ORA files that don't have any timeline defined.
- Fix: Default session host type to passworded instead of remembering that you had it set to public. This is a safer option than accidentally hosting something in public you didn't mean to and ending up in a panic trying to get the strangers out. Thanks Bluestrings and watt for reporting.
- Fix: Change the wording on public and passworded session options to make it clearer what they do. Thanks Bluestrings, hyper and tiar for suggesting.
- Feature: Generate a session password if none is set, rather than spewing an error telling the user they need to go fix it themselves.
- Feature: When attempting to host a public session without a title, offer to host it invite-only instead of just showing an error. Thanks hyper for suggesting.
- Feature: Move operator password settings to roles page, to avoid users mistaking it for the session password setting. Thanks Bluestrings for suggesting.
- Feature: Show a warning that removing the password from a session will make it public. Thanks Bluestrings for suggesting.
- Removed Server Feature: Closing sessions, called "block new joins" in the client. It's just a worse variant of setting/changing the password on the session to make it invite-only. That has none of the downsides of locking yourself out, letting strangers join if they time it right and the session becoming public on its own after everyone has left.
- Feature: Add a prompt to the invite dialog to make sessions passworded if they're public and a button to open the session settings, to make those a bit easier to find. Thanks Bluestrings for suggesting.
- Fix: Close invite dialog when disconnecting.
- Feature: Load brush preset data and thumbnails on demand instead of preloading them. This makes startup, switching tags and other operations that reload brushes much faster, especially if you have a lot of brushes.
- Feature: Add sections to the brush editor settings list and group the settings accordingly. Thanks Blozzom for suggesting.
- Fix: Don't change current brush when using the brushes dock's search bar.
- Feature: A notice in the invite dialog if the server or session doesn't support or restricts joining via web browser, with a prompt to use invite codes instead if appropriate. Thanks Bluestrings for suggesting.
- Fix: Allow skipping around in the playback dialog again. This was caused by the check whether the canvas size is valid or not being flippe the wrong way round. Thanks Saova for reporting.
- Feature: Adjust stabilizer with velocity. Enabled by default with a curve that lessens the stabilization for faster strokes, which makes it much more usable without having to constantly adjust the slider.
- Fix: Properly preview lines, curves, circles and rectangles when using a brush with smudging turned on. Thanks retarj_o_burro for reporting.
- Feature: Automatically resume drawings on Android, since the system will terminate Drawpile when it's in the background without giving you a chance to save. To avoid this, cleanly exit the application via File → Quit or by pressing the back button. Thanks tiar for suggesting.
- Fix: Don't clear save paths when reconnecting to a session. This was particularly annoying on Android, since you can't save over existing files there. Thanks tiar for reporting.
- Feature: Provide a better default name by default instead of just punting to "Untitled". The suggested name is now automatically prefixed with a date and tries to use a cleaned-up version of the session title if drawing online. Thanks tiar for suggesting.
- Fix: Make automatic switching to frame view mode work properly even when the timeline isn't a floating or tabbed widget. The lack of a tab bar caused it to get misdetected as hidden.
- Fix: Solve an issue where on some Android devices you would get disconnected on the first attempt of joining a session and then it worked fine on reconnect. Thanks Bluestrings for reporting.
- Server Fix: Properly disconnect notify all clients when a session is shut down. Previously it could miss some of them and leave them lingering without a session.
- Server Feature: Allow disconnecting clients that linger too long without a session, either before joining/hosting one or after having left. The duration is configurable by server owners, not limited by default.
- Fix: Allow unsetting default layers again. Previously that operation got incorrectly filtered out as attempting to set the default layer to an invalid id.
- Fix: Select the bottom-most layer to start with if no default layer is set. Previously you'd end up on the newest layer, which was unpredictable and often enough confounding if you ended up on somebody's shading layer or similar.
- Fix: Properly hide and lock drawing on hidden layers in frame view. Thanks hipofiz for reporting.