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
 * Fixed OK button related bugs in the login dialog
 * Added support for ext-auth avatars
 * Added server configuration option for disabling avatars
 * Avatar selection box is now only shown if avatars have been configured and server supports custom avatars
 * Fixed mouse droppings when switching to a smaller brush
 * Fixed setting autoreset threshold when session size is unlimited
 * Fixed autoreset sometimes failing to work
 * Fixed missing layer attributes in reset
 * Save censored layer flag in OpenRaster files
 * Fixed ORA file loading (2.1.0 regression)
 * Add copy merged action (copy visible selection excluding background)
 * Fixed window autoraising when notification balloon was shown (Windows specific bug)
 * Fixed onionskin mode settings initialization
 * Fixed zooming when zoomed outside the usual zoom range. (2.1.0 regression)

2019-02-13 Version 2.1.0
 * Changed internal pixel format to premultiplied 32 bit RGBA
 * Added PutTile command and optimized layer initialization
 * dprectool: added --msg-freq option
 * Protocol change: replaced ToolChange and PenMove with DrawDabs commands
 * Replaced "background layer" concept with a tiled canvas background. (Mostly compatible with MyPaint)
 * Redesigned user list box and chat panel
 * Autoreset threshold is now adjustable and includes reset image as base size
 * Individual layers can now be censored
 * Merged "Find sessions" dialog into the "Join" dialog
 * Simplified "Host" dialog
 * Redesigned "Login" dialog
 * Moved layer hamburger menu to the main menu bar (and expanded it)
 * Added support for user avatars
 * Added controls for flipping, rotating and zooming to the navigator dock
 * New user level: Trusted users
 * Added tiered feature access controls (guest/registered/trusted/operator)
 * Added zoom and rotation controls to navigator
 * Removed sliders from status bar
 * Added zoom tool
 * Added zoom/rotation/flip toolbar
 * Show keyboard shortcuts in toolbar tooltips
 * Replaced recording status icon with toolbar button
 * Replaced "new chat message" status icon with toolbar button (red dot indicates new message)
 * Added template export feature
 * Added square pixel brush
 * Replaced Ffmpeg video export with native WebM export
 * Added private messaging feature

2018-08-14 Version 2.0.11
 * Server: fixed OP status auto-restoration for users who used the "become operator" feature
 * Server AppImage: updated libmicrohttpd to version 0.9.59
 * Fixed crash caused by dragging&dropping a layer that was deleted during the drag operation
 * Fixed unsetting shortcuts which have a default value
 * Changed default "session settings" shortcut to F9, to avoid collision with the default (Windows) fullscreen shortcut F11
 * A nicer set of presets for the brush palette
 * Sending USR1 signal to drawpile-srv now restarts the internal web-admin server

2018-03-17 Version 2.0.10
 * Server: history files are now flushed periodically to better protect against dataloss in case of abrupt server termination
 * Server: blank session files are no longer loaded
 * Windows: wintab relative pen mode hack must now be explicitly enabled
 * Removed tablet bug workaround mode (with the improved tablet support, the workaround mode causes more problems than it fixes)
 * Bugfix: newlayer command now refuses to create a layer with a duplicate ID
 * Bug workaround: a deopped resetting user is now automatically kicked to prevent reset image from mixing with the normal session content.
 * Server: added option to automatically purge old DB log messages
 * Fixed crash when replacing current canvas with a new one while a selection existed

2018-02-25 Version 2.0.9
 * Minor recording format change: recordings are now prefiltered
 * Fixed random duplicate frames in exported animations
 * Added Windows Ink support (from Krita)
 * Added improved Wintab support (from Krita)
 * Added improved X11 tablet event handler (from Krita)
 * Reverted change that updates the color history in real time
 * Swapping colors with X now remembers the color, even if it hasn't been used yet

2018-02-11 Version 2.0.8
 * Fixed password remembering on Windows (now uses the same local appdata directory as other settings)
 * Fixed saved extauth passwords appearing under the server section in the settings dialog
 * Fixed that a server password would also get saved for extauth
 * Server: added support for SSL certificate chains and certificate auto-reloading
 * Fixed reset removing permission settings
 * Server: web admin API can now be used with socket activation
 * Server: support 'uid' extauth token field
 * Better auth user and mod icons
 * Added a new session option to allow only authenticated users to join (requires server version 2.0.8) 
 * Chatbox no longer shows "user joined" messages for users already in the session
 * Platform input method context plugins are now included in the AppImage
 * macOS: open a new window (if none are open) when application icon is clicked

2018-01-26 Version 2.0.7
 * Fixed duplicate colors in color history palette
 * Windows specific: added missing style plugin
 * Fixed flipbook downscaling (regession)
 * Flipbook now upscales small images
 * Bugfix: logging in with ext-auth would disable the field for session password entry
 * Bugfix: rectangle fill or image pasting worked (locally) on locked layers
 * Improved selection scaling behavior. Aspect ratio maintaining mode now works, as does flipping and mirroring
 * The client can now remember server and ext-auth passwords
 * The state of the "show password protected sessions" checkbox is now remembered

2018-01-22 Version 2.0.6
 * Added selection shear mode
 * Added terminate session action (moderator command)
 * Changing color now immediately updates the color history
 * Implemented support for external authentication
 * Flipbook can now be cropped
 * Added quick layer pick mode (hold shift+control to select a layer)
 * Added `/status/` endpoint to server web-admin API
 * Added palette file export & import feature
 * Added abuse report feature
 * Added "server title" field to server GUI
 * Added option to disable tablet eraser detection
 * Added drawpile-cmd tool
 * Fixed joining a template session by URL
 * Fixed color fill on transparent areas
 * Optimized OpenRaster file saving
 * Canvas saving is now done in the background
 * Added option to hide password protected sessions from the join dialog
 * Bugfix: abort reset if resetting user is deopped
 * Added new serverside command to cancel session reset
 * Session reset snapshot is now generated only on demand
 * Session reset is now cancelled if a snapshot cannot be generated
 * Bugfix: fixed loss of canvas if user was drawing while reset occurred
 * Windows installer fix: audio.dll was put into a wrong directory
 * Recording is now automatically restarted on session reset
 * Fixed crash when cancelling bezier curve drawing with a right click
 * Regression fix: snap brush outline to pixel boundaries when using hard edged brush

2017-06-26 Version 2.0.5.1
 * Fixed shortcut conflict that blocked the use of the Enter key

2017-06-26 Version 2.0.5
 * Fixed building with systemd integration enabled
 * The number of remembered host addresses is now limited
 * Added tablet test dialog
 * Support Enter and Esc keys when drawing Bezier curves
 * Selection undo now first undos selection transformation
 * Improved retcon behavior. (Don't reset local fork on every conflict to avoid self-conflict loop)
 * Fixed flood fill expansion (regression fix)
 * Fixed concurrency problem in recording playback
 * Added option to hide the host address in the status bar
 * Canvas is now locked on autoreset and a notification chat message is sent
 * Fixed zooming with ctrl+tablet stylus motion
 * Fixed language changing
 * All admin HTTP queries are now logged
 * Layer selection is now restored after session reset
 * Fixed tool selection when "select all" command was used and the rectangular selection tool was already selected
 * Added option to disable tool toggling shortcut
 * Removed "persistent session" option from the host dialog (can still be set via session settings dialog.)
 * Added a log file for debug messages
 * Fixed bug in server GUI that could reset server settings
 * Downgraded AppImage Qt version to 5.6 (Tablet hover events are broken in Qt 5.7 and above)

2017-04-25 Version 2.0.4
 * Added support for room codes and private listings
 * Reverted pressure controls back to checkboxes
 * Added dedicated eraser brush slot
 * Restored eraser as a separate tool (uses only the eraser slot)
 * Added 'Ctrl+E' shortcut to toggle the current brush's eraser mode
 * Added bezier curve tool
 * Fixed stale op and lock bits left over from previous user with the same ID (fixes OP status being out of sync with server after logging back in)
 * Flood fill size can now be limited to protect against accidental canvas fills
 * Added erase mode to flood fill tool

2017-04-17 Version 2.0.3
 * Restored some tablet and smoother improvements from stable branch
 * Fixed (concurrency related) crash bug in layer merging
 * Properly clear ACLs for deleted layers
 * Properly demarcate reset snapshot (fixes possible mixing of non-reset and reset messages that can make the canvas initialization undoable)
 * Fixed missing template sessions in join dialog
 * Host action is now disabled when there is no canvas
 * Fixed missing modifier keys (ctrl/alt) with tablet stylus
 * Fixed potential buffer overflow in Command message serialization
 * Fixed server crash when queueing a large number of messages for upload
 * Fixed infinite loop when squishing selections
 * New AppImage build script (fixes UTF-8 related JSON parse error. Most visible when logging to a server with a non-ASCII username)
 * Fixed session timeout
 * Brush dock redesign (brush preset buttons restored)
 * Merged basic brush based tools (pen, brush, watercolor, eraser) into a single freehand tool
 * Brushes are now shared by all brush based tools (freehand, line, rectangle, ellipse)
 * Any brush can now be toggled into eraser mode
 * Tool preset pie menu replaced with brush preset dock
 * Restored 'X' shortcut key to swap primary/alternative color

2017-03-27 Version 2.0.2
 * Fixed returning from fullscreen mode to maximized window
 * Added contexts to lambda signal/slot connections (fixes server crash when terminating an announced session)
 * Added "send to all sessions" server admin API endpoint and GUI button
 * Restored "lock dock positions" feature
 * Messages received during reset while session history is full are now dropped (mitigates auto-reset loop of death)
 * Fixed layer selection after current layer is deleted
 * Separated layer delete & merge menu items
 * Enabled canvas cache refresh optimization
 * Always generate a fresh initial snapshot when hosting (fixes user ID related bugs when rehosting a short session)
 * Session template password field now sets the password hash instead of the plaintext (consistent with everything else and matches documentation)
 * Implemented missing session template configurations: announcement, opword, preserveChat
 * Display session history size in the status bar (as reported by the server)
 * Fixed lockup on reset when navigator was visible
 * Restore pinned chat message on reset
 * Fixed "hide from self" layer menu item
 * Fixed selection moving when selection is partially (or completely) outside the canvas

2017-03-20 Version 2.0.1
 * Configurable brush cursor
 * Improved session announcement list fetching error messages
 * New feature: automatically add timestamp markers to recordings
 * Fixed constant canvas rollback when many people were drawing simultaneous
 * Fixed moderator accounts
 * Fixed layer exclusive access locking
 * Fixed restoring of session & layer ACLs after reset
 * Fixed setting cut&paste and annotation lock flags
 * Show progress bar (in status bar) during session reset
 * Include username in "op granted/revoked" chat message
 * Fixed duplicate local messages when sending reset snapshot
 * Server GUI: fixed max session count and session size limit changing

2017-03-18 Version 2.0.0 Stable
 * Server: Fixed setting of local hostname (when using a configuration file)
 * Server: Fixed setting of port number in announcement
 * Server: Show listing server error messages
 * Server: Restore op/deop chat notifications
 * Server: Fixed GUI mode tray icon
 * Made tool pie menu smaller
 * Temporarily disabled pie menu popup with right mouse button
 * Restored tool preset shortcuts (1-8)
 * Added shortcuts for assigning tool presets (Ctrl+1-8)
 * Removed new brush cursors (will be made configurable in the next version)
 * Fixed incorrect range in session alias validation ('z' and '9' characters were not accepted)
 * Fixed lasso selection tool (regression)
 * Switching tools now commits the floating selection instead of cancelling it
 * Regression fix: previosly used color list
 * NSFM icon for session lists
 * Fixed selection resize handle bounding box
 * Show received chat message timestamps

2017-02-25 Version 2.0.0 Release Candidate
 * Various bug fixes
 * Added parental controls feature (password protected option to limit access to sessions tagged as "not safe for minors")
 * New brush cursors
 * Slightly adjusted laser style (line is always thick, less blinky)
 * Added server column to session list
 * New feature: mark layer as default for new users
 * Protocol change: added MoveRegion command

2017-02-04 Version 2.0.0 beta 3
 * Implemented file backed session history (enables session hibernation)
 * All session attributes can now be restored from file
 * Public session announcements can now be added and removed via a GUI
 * Reimplemented /opword command (GUI version)
 * Login dialog now shows a progress bar during catchup phase
 * Improved login performance
 * Annotations can now be aligned vertically
 * Individual users can now be blocked from sending chat messages
 * Fixed chat message pinning
 * Session settings now have a dialog window
 * Added option to lock annotation creation and lock individual annotations from modification
 * More server GUI features
 * OSX: Fixed pinch gesture detection
 * Revamped dptxt format
 * Recordings can now be saved directly in dptxt format
 * Merged dprec2txt and txt2dprec into dprectool 
 * Replaced tool slots with a tool preset pie menu
 * Server logs are now available via the admin API
 * Session specific server logs can now be viewed in the client
 * Operator status is now restored for authenticated users
 * Server no longer auto-ops users if opword is set or authenticated ops are remembered.
 * User accounts can now be configured in the settings file
 * Reimplemented session template feature

2017-01-09 Version 2.0.0 beta 2
 * Regression fix: set inital smoothing value for new document
 * Regression fix: layer retitling
 * Regression fix: non-preserved chat messages
 * Custom session ID replaced with session aliases (every session now has a unique ID)
 * Server HTTP admin API (mostly) restored
 * Server settings are now stored in an SQLite database
 * Most server settings can now be changed via API and persist in the database
 * Client now automatically resets the session when server space is running low
 * Session user limit can now be changed via the GUI
 * Chat message preservation mode can now be changed via the GUI
 * Users can now be banned from individual sessions
 * Hosting password feature removed. (Instead, hosting privilege can be limited to registered users)
 * Graphical mode for dedicated server (not yet feature complete)
 * Protocol change: Chat message type changed to Transparent
 * Protocol change: added an extra bytearray field to JoinUser message for future proofing

2016-12-17 Version 1.0.6
 * Server: non-persistent session idle time can now also be limited
 * Server: added /opword command
 * Name of the user who created an annotation is now displayed in the editing widget
 * Bugfix: enable/disable fill commands when operator status changes and image lock is in place
 * Bugfix: Filling freeform selections now uses the correct blending mode
 * Cut and fill commands now only operate on selections to avoid accidentally clearing or filling whole layers
 * Added an option to lock dock widgets in their places
 * Added server log chat messages for operator actions
 * Server: remove kicked users from the session immediately
 * Display user pointer on FillRect and PutImage commands

2016-10-15 Version 1.0.5
 * Fixed edited palette loading (OSX specific regression)
 * Fixed untrusted certificate error (OSX specific)
 * Improved performance when joining a session (task bar related bugfix)
 * Fixed restoration of eraser hard edge mode when switching tools

2016-08-06 Version 2.0.0 beta 1
 * Major refactoring
 * Protocol version 4
 * Some server features removed (to be reimplemented later)
 * New simplified recording playback dialog
 * Session resetting to previous snapshots

2016-08-06 Version 1.0.4
 * Username length is now limited to 22 characters
 * Show correct error message when server is full
 * Let the user know if their IP address has been banned
 * Added option to restrict cut&paste and fill operations
 * List of logged in users can now be included in session announcement
 * Allow undo override even while session is locked

2016-07-02 Version 1.0.3
 * Remember last used path when saving files
 * Support new miniupnpc library version
 * Added txt2dprec tool
 * Added support for session templates in the standalone server
 * Fix shortcut saving when editor widget was not manually closed 
 * Removed default canvas size limit (screen size)
 * Recording buffer is now periodically flushed to minimize data loss in case of a crash
 * New feature: chat message pinning
 * Selection mirror & flip buttons now automatically cut the selection
 * Flipbook playback range can now be selected

2015-09-13 Version 1.0.2
 * Fixed crash when smoother was set to zero
 * Server: added command line option to enable split recording mode (new recording for each snapshot)
 * Server: /force_snapshot command can now be used outside debug mode
 * Fixed stretched selection contents if selected area was (partially) outside the canvas
 * Chat URL autolinker now accepts more characters in the fragment identifier
 * Retcon simplification: just discard the local fork on conflict rather than replaying
 * Hidden layers are no longer saved when in a flattened image
 * Fixed pressure glitch at the start of a stroke
 * OpenRaster loader optimization: more efficient loading of solid fill layers

2015-08-09 Version 1.0.1
 * Strokes are started immediately even when smoothing is enabled
 * Ports in autolinked URLs are now recognized
 * Dedicated server: added --welcome-message parameter
 * Fixed "reset size" for polygonal selections
 * Improved recording index file generation
 * Active selection is no longer cleared when switching from rectangle to lasso tool
 * A link to unhide age restricted sessions is now shown in the session selector
 * Bugfix: remember selected listing server in session finder dialog
 * Improved UI lockup prevention when receiving large amount of commands
 * Smarter image sending: avoid sending blank images
 * New feature: area sampling for color picker
 * When opening a drawpile:// link, rather than connecting directly, the join dialog is shown

2015-07-12 Version 1.0.0
 * Added "Behind" and "Color erase" blending modes
 * Added support for automatically setting up port forwarding with UPnP
 * Added notification about Carrier Grade NAT
 * Added option to show layer numbers instead than titles
 * Added "thick laser trail" option
 * Added German translation
 * Remain somewhat responsive when joining a long-running session
 * Fixed timeout disconnect caused by missing Ping messages (related to above)
 * Fixed missing button icons in flipbook window
 * Fixed crash when using filling a rectangle aligned with bottom right corner of the canvas
 * Improved touch gesture support (scrolling, zooming and rotating)
 * Faster image loading
 * Moved user list to the chat box
 * OpenRaster: new namespace for Drawpile extensions
 * Protocol change: all blending modes can now be used with PutImage
 * Removed Color pressure mode
 * Scale selections maintaining aspect ratio by holding shift
 * Pasted images are now placed on their original positions (if copied from Drawpile)
 * Public session listing filtering for adult content

2015-06-02 Version 0.9.11
 * Fixed moving of freeform selections
 * Fixed merging (and export) of layers with sublayers
 * Fixed crash when closing animation export dialog
 * Support original frame size for all video export types
 * Updated Czech and Finnish translations
 * Added animated GIF export feature

2015-05-21 Version 0.9.10
 * Fixed loading of older recording formats (<v11.x)
 * Added Solo+BG layer view mode
 * Added Onionskin layer view mode
 * Added animation export feature
 * Added flipbook window for previewing animations
 * When opening animated GIFs, each frame is loaded as a layer
 * Protocol change: merged LayerCreate and LayerCopy
 * Added "Insert layer" action
 * LAN server discovery using Zeroconf
 * Added Japanese and Russian translations
 * Fixed filling selections partially outside the canvas
 * Moving a selection will now automatically move the pixels too
 * Added autosave feature
 * Added button to reset all settings

2015-04-03 Version 0.9.9
 * Added "Lasso" selection tool
 * Added view flipping and mirroring
 * Added filter bar to shortcut settings editor
 * Added last used colors selection to color dock
 * Added selection transformation buttons
 * Added notification sounds
 * Palettes are now write-protected by default
 * Selections (and pasted images) can now be rotated as well as scaled
 * New dab mode button style
 * Chat icon is now shown in statusbar when there are unread messages
 * Crosshair cursor is no longer shown for brush tools
 * Protocol change: added implementation for LayerCopy
 * Added experimental workaround for certain tablet event bugs
 * Added "duplicate layer" button
 * Added "solo" layer view mode
 * Added IP ban feature to the standalone server
 * New icon theme (Breeze)

2015-01-30 Version 0.9.8
 * Show menu bar when pointer is brought to the top of the screen in full screen mode
 * Fixed unnecessary retcon at start of new strokes
 * Fixed annotation moving (regression)
 * Fixed retconning of indirect paint mode strokes
 * Added a language override field to settings dialog
 * New feature: Hold tool shortcut button to select the tool temporarily; releasing the button switches back.
 * Simplified Host dialog
 * Flat tool slot button style
 * Minor protocol change: added new PutImage composition modes
 * "Fill under" mode for flood fill tool
 * Moved zoom buttons to the status bar

2015-01-16 Version 0.9.7
 * Fixed "host on remote server" dropdown box
 * Fixed crash when reordering layers
 * Added new Retcon synchronization method
 * Removed preview strokes
 * Protocol change: 16 bit layer and annotation IDs
 * Updated server admin API
 * New server admin web app
 * Added context menu to pressure curve editor
 * Added clear button to key shortcut editor

2015-01-02 Version 0.9.6
 * Added connection timeout check
 * Added keepalive messages
 * Automatically switch stroke preview mode based on latency
 * OSX: Quit menu action now works as expected
 * OSX: Added "Close" item to File menu.
 * OSX: Don't quit when all windows are closed
 * OSX: Added Window menu
 * Added zoom and angle shortcut context menus to status bar
 * Added network statistics dialog
 * Color picker cursor is now set when quick colorpicking
 * Simplified navigator dock
 * Brush size adjustment now sets brush diameter instead of radius
 * Slightly smoother antialised (thin) brush stroke rendering
 * Fixed tablet event handling when running on Qt 5.4
 * Added preview widget for flood fill
 * Set annotation editor background color
 * Added Watercolor brush
 * Added pixel grid for high zoom levels
 * Statusbar is no longer shown under the tool docks to conserve vertical space
 * Custom session IDs are now shown in session selection window
 * Ctrl+wheel zoom now uses 50% steps
 * Various minor improvements and bug fixes
 * Added dprec2txt tool
 * Added support for playing back all older recording format versions

2014-10-17 Version 0.9.5
 * Added Czech translation
 * Added "Record session" checkbox to join dialog
 * Added zoom and angle sliders to status bar
 * Added support for zooming/rotating with a pinch gesture
 * Added option to disable tablet events
 * Added custom cursors for tools
 * Better text/selection box resizing handles
 * Flood fill expansion
 * Fixed UI language fallback
 * Support for older OSX versions (10.7 and up)
 * Support Retina displays on OSX
 * Added "preserve alpha" blending mode

2014-08-15 Version 0.9.4
 * Improved palette box
 * Various improvements to annotation editing
 * Compressed recording support
 * Regression fix: fixed missing initial snapshot generation in recording index
 * Added /roll chat command for generating dice rolls
 * Layers can now be locked in offline mode
 * Added /preservechat setting
 * Fixed brush blending glitch on semitransparent layers
 * More consistent non-antialiased dab positioning
 * Improved tool box layout
 * Combined color dock
 * Updated OpenRaster support to spec version 0.0.3
 * All supported file types can now be opened by drag&drop
 * Individual layers can now be exported by dragging&dropping
 * Live preview for layer opacity change
 * Added flood fill tool
 * Fixed brush preview outline alignment

2014-07-18 Version 0.9.3
 * Layer opacity glyph now acts as show/hide button
 * Added layer context menu
 * Support for loading remote files (e.g. drag&drop URLs to canvas)
 * Bugfix: paint tools on new windows would not get enabled
 * Set mainwindow title correctly
 * Zero canvas size when creating layers is now tolerated
 * New chat command added: /me
 * Bugfix: locked layers could be changed my merging
 * Regression fix: rectangle fill was broken in previous version
 * Register .dprec filetype on OSX

2014-07-12 Version 0.9.2
 * Improved message popup widget
 * Server: session hibernation
 * Protocol change: more information is included in SessionConf message
 * Translation support
 * Add Finnish translation
 * Web admin API and sample app
 * Bugfix: set layer lock status bits correctly at the start of a new session
 * Changed default stroke preview type to Realistic
 * Default shortcuts for Copy layer & Copy visible changed for consistency with other programs
 * Added Edit toolbar
 * List of supported image formats for saving is now constructed correctly
 * Protocol change: session IDs are now treated as strings rather than numbers
 * Protocol change: SessionConf::attrs is now two bytes long
 * Protocol change: added "flags" field to Chat message
 * Protocol change: use 32 bit coordinates everywhere
 * Chat messages are no longer included in the session history by default
 * Fixed crash when dragging&dropping a layer
 * Fixed canvas stealing focus from text boxes
 * Authenticated login support
 * More version info shown in `drawpile-srv --version`
 * Various bug fixes and usability improvements

2014-06-03 Version 0.9.1
 * SSL support
 * Bugfix: Layer access control menu would lose per-user bits when locking a layer
 * Improved palette widget
 * Added shortcut for showing and hiding the chat box
 * Memory usage fix (undo savepoints are now correctly released)
 * New color widgets
 * Moved foreground/background color selector to the tool settings dock
 * Added tool slots

2014-05-07 Version 0.9.0
 * Server: support for multiple sessions on a single server
 * Server: support for systemd socket activation
 * Server: options can now be loaded from a settings file
 * Server: persistent session expiration
 * Clickable URLs in chat messages

2014-03-27 Version 0.8.6
 * Show old annotation position until reshape message has finished its roundtrip
 * Spin boxes for accurate adjustment of brush parameters
 * New feature: cut selection to clipboard
 * Smoother laser pointer trails
 * Indexed recordings
 * Pauses in recordings are now exported to video
 * New tool: recording markers
 * Added button to stop video export
 * Added "Select all" and "Deselect" menu entries

2014-02-25 Version 0.8.5
 * Navigator view is now updated in real time
 * Hiding laser trails will disable the laser pointer tool
 * New stroke preview style: realistic preview using a temporary layer
 * Simplified input settings dock
 * Brush size shortcut: Shift+mouse wheel or '[' and ']' to adjust brush size
 * Added "redo" button to user list dock
 * New feature: Direct to video export using ffmpeg
 * New feature: latest chat message is shown in the statusbar if chat box is hidden
 * Bugfix: right mouse button now works correctly when input smoothing is enabled

2014-02-03 Version 0.8.4
 * Bugfix: stop scene rectangle from growing when lines or annotations are dragged beyond boundaries
 * Color picker: right mouse click now picks background color
 * Improved interval recording: time between intervals is no longer accumulated
 * New feature: Laser pointer tool
 * New feature: constrain rectangle and line drawing to squares and straight lines with shift key
 * New feature: Ellipse drawing tool
 * New feature: Preview stroke style is now selectable

2014-01-17 Version 0.8.3
 * Improved navigator
 * Stroke smoothing
 * New zoom shortcut (ctrl+middle button or stylus button)
 * Quick color picking: Ctrl + mouse click
 * Pen pressure emulation modes for mouse
 * Fixed rounding bug which caused jitter in tablet pointer coordinates
 * Usability improvement: paste images to center of current view

2014-01-10 Version 0.8.2
 * New application icon
 * Session recording and playback support
 * Adjustable server session history size limit
 * Video export (image sequence only at the moment)
 * Improved dab and line drawing

2013-12-30 Version 0.8.1
 * Use icons from current theme
 * Treat hidden layers as locked
 * Added "delete empty annotations" action
 * Annotation edit box UI bug fixes
 * Canvas resizing
 * Added button for granting and revoking session operator privileges
 * Show remote user pointer positions
 * Layer control locking

2013-12-20 Version 0.8.0
 * Undo and redo support
 * Bugfix: pop up "save as" dialog when trying to save a file in an unsupported format
 * Added "paste from file" action
 * Added upload progress bar
 * Host dialog fixes
 * Paste images by drag&drop
 * Fix loading of tall images

2013-12-14 Version 0.7.2
 * Per-user layer locking
 * Improved brush shape
 * Copy & paste support
 * Improved annotation editing
 * Visible annotations are now included in saved images
 * Ability to look up the external IP address using ipecho.net
 * Menu bar is now hidden in fullscreen mode and floating docks remain visible
 * Option to pick color from current layer only

2013-12-06 Version 0.7.1
 * Redesigned layer & user list boxes
 * Redesigned chat box
 * Support for layer blending modes
 * Indirect drawing mode
 * Text based file format (mainly for testing)
 * Color picker history
 * Right mouse button paints with background color
 * Various bugfixes

2013-11-28 Version 0.7.0
 * Layer support
 * OpenRaster support
 * Partial rewrite: new server and network protocol
 * All features now work in network mode

2008-10-20 Version 0.6.0
 * Subpixel drawing
 * Added pen tool (draw without antialiasing)
 * Added blending modes
 * New brush slider style
 * View rotation
 * Changeable shortcuts
 * UI tweaks and bug fixes

2008-09-26 Version 0.5.0
 * Total rewrite of server and network code. Dropped support for multiple
 session per server and simplified the protocol.
 * Server is now contained in a shared library and is embedded by the client.
 * Tile based drawing engine
 * Fixes to brush rendering
 * Viewport dragging with spacebar (works with tablets too)
 * Added annotation tool
 * Added support for tablet eraser
 * Many small bugfixes/improvements.

2007-04-10 Version 0.4.0
 * Support multiple windows
 * Implemented line and rectangle tools
 * Added a menu item to disable new users from joining the session
 * Full screen mode
 * Client now informs the user if the (local) server crashes
 * Added a "Open recent" menu
 * Changed the brush generation algorithm
 * Added HSV and RGB color selection docks
 * Added a palette dock
 * Various UI improvements

2007-01-18 Vesion 0.3.0
 * Several tablet handling bugs were fixed
 * Client now shows a list of logged in users
 * Session administration commands (kick, lock)
 * Chat

2007-01-11 Version 0.2.0
 * Added networking support, hosting and joinin sessions now possible.

2006-12-27 Version 0.1.0
 * Initial release
