Drawpile 2.0.6 Release

Jan. 21, 2018

Version 2.0.6 is now done! It's been 6 months since the last release, but to make up for it, this update is packed full of new features and bug fixes.

Tablet problems after updating Windows 10

Many have a encountered new tablet bug after installing the Windows 10 creators update: Drawing with a stylus drags the canvas instead of paining. Whether by design or a bug, Windows now generates touch events for the stylus. Touch is typically used for scrolling, which is what is happening here. This change has affected many applications, so it's not just Drawpile.

Currently, there is no true fix to this problem, but there is a workaround: uncheck the "scroll with finger" checkbox in the preferences. If you're not getting any pressure sensitivity, try also checking the "bug workaround mode" checkbox.

Canvas clearing session reset bug

I found a number of distinct bugs that could corrupt the canvas in some circumstances during a session reset. The most easily triggered one is that if a user is drawing at the exact moment the reset finishes, the canvas can disappear entirely. This happend on a per-user basis: users who weren't drawing or joined later were unaffected. This bug is now fixed.

In another case, a client could submit an empty reset. I'm not entirely sure yet what causes it, but I've added a check that blocks empty reset snapshots.

There may be still some reset related bugs remaining, but it should generally work a bit more robustly now.

User accounts

Perhaps the most important new feature in this release is enhanced support for user account registration. Drawpile has supported user accounts for a long time, but without a way for users to register accounts by themselves, it hasn't been of little use.

Version 2.0.6 introduces a new feature that makes it possible for web sites to provide Drawpile user accounts. You will now be able to register a user account here at drawpile.net to use on the public server. It is even possible for other servers to accept drawpile.net accounts or create their own.

At the moment, the only thing you can do with drawpile.net user accounts is reserve usernames to use on the public server, but new website features are coming soon!

Note: if you try logging in using a reserved username with a version older than 2.0.6, you will get a somewhat cryptic error message saying "Invalid state".

Read on for a full list of other new features added and bugs fixed, and also some ideas for future development.

Read more...

Drawpile 2.0.5 Release

June 26, 2017

Version 2.0.5 is now out! This release brings many general usability improvements and fixes a few bugs.

Bugs fixed in this release:

  • Fixed flood fill expansion (regression)
  • Fixed concurrency problem in recording playback (controls out of sync with actual playback)
  • Fixed zooming with ctrl+stylus motion
  • Fixed language changing
  • Fixed tool selection when "select all" command was used and the rectangular selection tool was already selected
  • Fixed a bug in the server GUI that could reset server settings

Usability improvements:

  • The number of remembered host addresses is now limited
  • Enter and Esc keys can now be used to end or cancel Bezier curve drawing
  • If a selection exists, undo first undos the selection transformation
  • Improved latency hiding behaviour (avoids blinking strokes while drawing caused by repeated canvas rollbacks)
  • Canvas is now locked on autoreset and a notification chat message is sent
  • Layer selection is now restored after session reset
  • Removed "persistent session" option from the host dialog (this option was misleading since persistence may not be available on the target server. Once a session is started, it can be made persistent via the session settings dialog if the server supports it.)

New features:

  • Added a built-in tablet testing tool
  • Added an option to hide the server address in the status bar
  • Added an option to disable tool toggling shortcut
  • All admin HTTP queries are now logged
  • Added a log file for debug messages

Linux specific fixes:

  • Fixed server build with systemd integration enabled
  • Qt version in AppImage downgraded to 5.6, as tablet hover events are broken in Qt 5.7 and newer

Read more...

Website update

May 21, 2017

The website has just received a technical overhaul. While the overall layout remains the same, the site is now powered by Django. (Previously, it was a static site generated with Hyde.) This makes it possible to add dynamic features in the future, such as username registration for the public server and user galleries.

The source code for the website is now fully open and can be found at github. I will accept pull requests if you have ideas for improvement or even just typo fixes.

Read more...

Drawpile 2.0.4 Release

April 25, 2017

Version 2.0.4 is now out! This release introduces new features, but also fixes a couple of bugs.

Bugs fixed in this release:

  • Fixed user lock and OP status getting out of sync with the server when joining back to a session
  • Added missing error reporting if image saving fails

New features and improvements:

  • There is now a dedicated brush slot for an eraser (eraser mode is permantenly active in this slot)
  • Eraser as a separate tool is back. The eraser tool works works just like the freehand tool, but it only uses the new eraser slot
  • Switching the currently selected brush into eraser mode is now done with a new shortcut: Ctrl+E
  • Added a new tool for drawing Bezier curves
  • A size limit can now be set for the flood fill tool to protect against accidental fills.
  • Flood fill tool now has an erase mode

And last, but not least, is the new Room Code feature.

When you announce a session, the list server assigns a random five letter code to it. This code can be entered into the server address box in the Join dialog in place of the full session address. All listed sessions get a room code, but it is most useful with the new private session type. When the listing mode is set to private, the session will not appear in the public list, but you still get a room code. This way, when you want to invite friends to a session but do not want to make it visible to the general public, just set the listing type to private and send them the room code.

Read more...

Drawpile 1.0.3 Release

April 17, 2017

Version 2.0.3 is now out. This release fixes some more bugs and restores some UI features. If you've been holding back from the 2.0 series because of the missing brush choice buttons, this is the release for you!

This release introduces the following changes to the UI:

  • Brush selection buttons (1-5) are back!
  • Brushes and the tools that use them are now decoupled: any brush can now be used with any tool
  • Any brush can now be switched into eraser mode
  • Consequently, the Pen, Brush, Watercolor and Eraser tools have been merged into a single Freehand tool. Which mode it works in now depends on the selected brush.
  • The maligned tool preset pie menu is now replaced with a brush preset dock
  • Restored 'X' shortcut key to swap between primary/alternative colors
  • Smoother behavior now matches version 1.0.6

This release also fixes many bugs:

  • Fixed application crash when merging layers
  • Fixed invisibly locked layers (strokes would disappear after drawing)
  • Fixed empty canvas after reset (caused by mixing of non-reset and reset messages during auto-reset)
  • Fixed missing ctrl/alt modifiers when using a tablet stylus
  • Fixed server crash when a new user joins
  • Fixed lockup when squishing selections
  • Fixed "connection error" when username contains non-ASCII characters (server AppImage specific bug)
  • Session timeout setting now works as it should

Read more...