CHANGES.txt for Tux Paint

Tux Paint - A simple drawing program for children.

Copyright (c) 2002-2023
Various contributors (see below, and AUTHORS.txt)

2023.May.18 (0.9.30)
  * Improvements to Stamp tool:
    * Avoid playing English descriptive sound for a stamp
      stamp when not running in an English locale.
      Bill Kendrick <>

  * Improvements to Shape tool:
    * Octagon allows aspect ratio change
      Bill Kendrick <>

    * Slight improvement to shape calculations
      Bill Kendrick <>

  * Improvements to Magic tools:
    * Support for sizes in Magic tools via the plugin API.
      + Adds a new UI element for setting sizes in the Magic tool.
      + May be disabled with the "nomagicsizes" option.
      + Plugins' "init()" functions are sent a new "disabled_features"
        argument containing bitmask of Magic-relevant disabled features
        (so far Magic controls & the new Magic sizes feature).
      + Note: Bumps `TP_MAGIC_API_VERSION` to 0x00000008.
      Bill Kendrick <>

    * Various Magic tools now support sizing options:
      + Blocks, Chalk, Drip
      + Bloom
      + Blur
      + Bricks
      + Cartoon
      + Clone
      + Confetti
      + Darken, Lighten
      + Distortion
      + Emboss
      + Fisheye
      + Flower
      + Foam
      + Googly Eyes
      + Kaleidoscope, Symmetric L/R & U/D, Pattern, Tiles
      + Light
      + Metal Paint
      + Mosaic
      + Negative & Opposite
      + Noise
      + Pixels
      + Puzzle
      + Rain
      + Rainbow & Smooth Rainbow
      + Remove Color, Keep Color
      + Ripples
      + Rosette, Picasso
      + Saturate, Desaturate
      + Sharpen, Edges, Silhouette
      + Smudge, Wet Paint
      + Tint, Color & White
      + Toothpaste
      + TV
      + Xor Colors
      Bill Kendrick <>

    * String 'V' and String corner magic tools preview with XOR effect.
      Bill Kendrick <>

    * Clone performance improved.
      Bill Kendrick <>

    * Foam bubbles now always appear circular.
      Bill Kendrick <>

    * New Foam sound effect.
      (Sound effect licensed as Creative Commons 0 by

    * TV offers a new "TV (Bright)" variation
      (the original was always too dim, but has been utilized by
      people as an artistic way to darken an image, so don't want
      to take away the 'classic' variation).
      Bill Kendrick <>

    * Mosaic (shaped) tools: more progress bar feedback.
      Bill Kendrick <>

    * Blind: Remove entire-picture ("fullscreen") mode; it wasn't
      particularly useful.
      h/t Pere
      Bill Kendrick <>

    * Light: Better shape to the effect.
      Bill Kendrick <>

  * New Magic Tools:
    * Rainbow Cycle: Changes colors each time you use it
      (similar to Rainbow and Smooth Rainbow, but only changes
      between strokes).
      Bill Kendrick <>

  * Other Improvements:
    * Word-wrap long button labels, for better readability.
      (h/t Jozef Riha for the idea.)
      Bill Kendrick <>

    * Slightly more verbose output from "--verbose-version"
      (shows when certain features are enabled; not just disabled)
      Bill Kendrick <>

    * SDL_VIDEO_WINDOW_POS environment variable is now recognized
      when running Tux Paint in fullscreen mode (useful for positioning
      Tux Paint on a particular monitor).
      Bill Kendrick <>

  * Starter and Template Improvements
    * More starters have smearing disabled (world maps & "skyline-sf-dusk")
      (h/t Anna-Cornelia Queen)
      Bill Kendrick <>

  * Bug Fixes:
    * Don't try to load a blank-named template during slideshow playback.
      Bill Kendrick <>

    * Color palette would still show previously-selected color as active
      when returning from the temporary color pipette ([Ctrl] + click).
      Bill Kendrick <>

    * Update maximum button size calculation to account for Stamp
      rotation button added in 0.9.29.  (Otherwise you could end up
      seeing no stamps between the up/down scroll buttons!)
      Bill Kendrick <>

    * Some button sizes could cause buttons to render with gaps
      (e.g. 90 and 91), where 'garbage' graphics could appear.
      Bill Kendrick <>

    * On Haiku, read config from the correct location
      Luc 'Begasus' Schrijvers <>

    * Cartoon magic tool would always apply the effect at the bottom
      right, and also move improperly.  Mended.
      h/t @Miyagi_Andel on Twitter for the bug report.
      Bill Kendrick <>

  * Ports & Building:
    * Created "src/", to run 'indent' against source files.
      Ran it during 0.9.30 development.
      Bill Kendrick <>

    * Now requiring "SDL2_Pango" library all the time (no longer
      builds without it).  Motivation: Without it, many scripts
      (e.g. Japanese, Thai, Arabic) did not render properly.
      (h/t Pere for confirming the situation.)
      Bill Kendrick <>

  * Documentation updates:
    * Haiku build instructions added to INSTALL docs.
      Luc 'Begasus' Schrijvers <>

    * Added screenshot examples of each Magic tool.
      Bill Kendrick <>

  * Localization Updates:
    * Chinese (Simplified) translation
      臧传明 <>

    * French translation
      Jacques Chion <>

    * Icelandic translation
      Sveinn í Felli <>

    * Japanese translation
      TOYAMA Shin-ichi <>

    * Slovak translation
      Jozef Říha <>

    * Songhay translation
      Abdoul Cisse <>
      Mohomodou Houssouba <>
      Songhay localisation and dictionary project <>

2023.April.2 (0.9.29)
  * Improvements to "Stamp" tool:
    * Stamps may now be rotated.
      Use the "stamprotation=no" option to disable entirely,
      or the control to enable/disable (if stamp controls are
      not disabled).
      Pere Pujal i Carabantes <> (feature)
      Bill Kendrick <> (on/off control)

    * Outline while placing & rotating stamp is now thicker.
      Bill Kendrick <>
      h/t Pere for reporting this & Albert for explaining things.

  * New Magic Tools:
    * "Googly Eyes"; place eyeballs in your drawing.
      Bill Kendrick <>
      (Sound effect licensed as Creative Commons 0 by

    * "Maze"; draw a maze pattern over part or all of your drawing.
      Bill Kendrick <>
      (Sound effect licensed as Creative Commons 0 by
      Julian Evans,

    * "Circles" and "Rays" -- convert the image into circular or ray
      brushstrokes, and "Fur" -- add fur to a picture.
      Bill Kendrick <>
      (Inspired by "Night Sky Scene [Pen Parallax]" Scratch Project
      by -HexaScape- <>)

      ("Circles" and "Rays" sound effects based on Richard Wagner's
      "Ride of the Valkyries", recording licensed as Creative Commons
      Attribution 3.0 Unported (CC BY 3.0), and conducted by,
      Philip Milman <>)

      ("Fur" sound effected licensed as Creative Commons 0 (CC0 1.0)

    * "Bloom" - Apply a glowing light bloom effect to the image.
      Bill Kendrick <>
      (Sound effected licensed as Creative Commons 0 (CC0 1.0)

    * "Color Sep." (color separation) and "3D Glasses" - Separate the
      colors of the image, e.g. Red vs Cyan, as in anaglyphic
      "3D glasses" images.
      Bill Kendrick <>
      ("3D Glasses" sound effected licensed as Creative Commons 0 (CC0 1.0)
      "Color Sep." sound effect licensed as Creative Commons
      Attribution 4.0 International (CC BY 4.0)

    * "Double Vision" - separate and blend (50/50) the image,
      simulating double vision.
      Bill Kendrick <>
      (Sound effect licensed as Creative Commons 0 (CC0 1.0)

    * "Saturate" & "Desaturate" - Increase or decrease color saturation.
      Bill Kendrick <>
      (Sounds based on "can lid.wav", Creative Commons 0 (CC0 1.0)

    * "Keep Color" & "Remove Color" - Completely desaturate
      parts of the picture, based on the chosen color.
      "Keep" keeps the saturation intact if the colors match;
      while "Remove" desaturates parts of the image that match the
      chosen color.
      Bill Kendrick <>
      (Sounds based on "Ethnic drums » ethnic beat6.wav" and "...7.wav",
      Creative Commons 0 (CC0 1.0) by

    * "Kaleido-4", "-6", and "-8" -- Kaleidoscopic lens effects.
      Bill Kendrick <>
      (Sounds based on "Xylophone chromatic descending passages improv",
      "Xylophone scale descent improv", & "Xylophone chromatic passages improv",
      licensed as Creative Commons Attribution 4.0 International (CC BY 4.0)

  * Improvements to Magic Tools:
    * Better performance from "Rush" (by using SDL_gfx rotozoom)
      Pere Pujal i Carabantes <>

    * "Zoom" and "Perspective" background colors change
      immediately when you select new colors.
      Bill Kendrick <>

  * Improvements to Fill tool:
    * Shaped fill tool (similar to radial gradient, but
      follows the shape of the object).
      Bill Kendrick <>
      (Based on
      by Richard Mitton)

  * Improvements to Shape tool:
    * Rotation of corner-stretched shapes are around their center,
      rather than orbiting a corner.
      Bill Kendrick <>

    * Stretching a shape upwards rotates it 180-degrees
      (e.g., stretching the triangle downwards makes an up-pointing
      triangle (^), as before; but stretching it upwards now makes
      a down-pointing triangle (v))
      Bill Kendrick <>

  * Improvements to Color selection:
    * The rainbow palette color picker allows you to switch to the
      chosen built-in color, the pipette (color selector) color, or the
      color mixer's color, and make adjustments using its hue, saturation,
      and value controls.

  * New Starter
    * Space_draw.svg by Ingrid Illa Terrier

  * New Template
    * rainbow_gradient.png by Bill Kendrick
      [Hint: Start a new picture, paint over the entire thing
      with black, then use eraser to 'scratch away' and expose
      the rainbow!]

  * Starter and Template Improvements
    * Now possible to set scaling and smearing options for
      each starter or template image.  A ".dat" file can be
      created which describes whether it's okay to scale and crop
      the image's top/bottom and/or left/right, and if not both,
      whether to smear the sides of the starter/template to the
      edges of the canvas (the prior behavior, and the default),
      or use a specific solid color background.  When scaling,
      gravity may be specified, to ensure that a particular side or
      corner of the starter or template is included.
      Bill Kendrick <>
      with suggestions from Albert Cahalan <>
      and Pere Pujal i Carabantes <>

  * Other Improvements:
    * A keyboard shortcut is now available for quickly accessing
      a small eraser.  Hold the [X] key while clicking, and drag
      around the picture to erase.  (Not available if in the process
      of rotating a stamp or shape, or when Text or Label tool are
      active.)  Release the mouse to return to normal operation.

      (Eventually, this could be utilized when we can support
      the recognition of a drawing tablet stylus' "eraser" tip;
      Bill Kendrick <>

    * When deleting a file on macOS, move the file to trash instead of deleting
      the file permanently.
      Mark Kim <>

    * Automatic button size option ("buttonsize=auto"), to scale button
      size reasonably based on window size / fullscreen resolution.
      Pere Pujal i Carabantes <>

    * Using SDL linear scaling hint to reduce jaggedness when displaying
      in full screen at a different resolution than the display's
      native size.  (SDL2.0)
      TOYAMA Shin-ichi <>

    * If only one display is available, when running in windowed mode
      and asking for Tux Paint to appear in a width and/or height larger
      than the display's dimensions, Tux Paint will fall back to
      the maximum(s) the display is capable of.
      Bill Kendrick <>

    * Changed default UI font from Bitstream Vera to DejaVu Sans.
      h/t Mark Kim <>

    * Update Tux Paint Magic API so `set_color()` functions can
      alter the canvas.  (Utilized by "Zoom" and "Perspective", so far.)
      Note: Bumps `TP_MAGIC_API_VERSION` to 0x00000007.
      Bill Kendrick <>

    * Joystick button to activate "Fill" tool added.
      Bill Kendrick <>

    * Play dialog popup animation at a consistent speed across platforms.
      Also, fix the issue with animation not clearing after the final render.
      Mark Kim <>

  * Bug Fixes:
    * Always creating 24-bit canvases, in an attempt to avoid blending
      artifacts, e.g., when applying brush strokes using the Paint tool.
      (Previously, we were using the display's color depth and masks,
      which seemed to work fine under SDL1.2, but does not under SDL2.)
      Bill Kendrick <>

    * Magic tools with very long filenames/function names did not load
      on some Android systems.  Affected new Kaleido-* tools, but also
      Blocks, Chalk, and Drip (hence this being listed as a bug fix).
      h/t Pere for discovering this.

    * On touch devices, the color pipette tool could easilly be
      immediately dismissed due to the 'button up' event happening
      right where the "Back" dismissal/cancel button appeared.
      Now only pays attention to 'release' if the button was down.
      Bill Kendrick <>
      h/t Pere for reporting this.

    * SDL1.2 supported "SDL_VIDEO_WINDOW_POS" environment variable,
      but SDL2 does not; so reimplemented it ourselves. (See ENVARS docs.)
      Bill Kendrick <>

    * Mended issue that prevented pop-up prompt's drop-shadows
      from rendering (under SDL2).
      Bill Kendrick <>

    * Opening and immediately dismissing Color Mixer could cause
      an unexpected color to be chosen.
      h/t @kentonyanamin on Twitter for reporting.
      Bill Kendrick <>

    * Line shape could report "360 degrees", which should be "0 degrees".
      h/t Karl Ove Hufthammer <> for the report
      Bill Kendrick <>

    * Some Magic tools did not change descriptions when switching
      from paint to full-canvas mode.
      + Emboss
      + Drip
      h/t Karl Ove Hufthammer <> for the reports
      Pere Pujal i Carabantes <>
      & Bill Kendrick <>

    * Full-screen Drip magic effect didn't work well
      Pere Pujal i Carabantes <>

    * Receive clicks when Tux Paint window is regaining focus
      (via "SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH"), which is how
      the earlier SDL1.2 versions worked.
      Bill Kendrick <>

    * Various Magic tools miscalculated which part of canvas
      needed updating in their paint modes; mended.
      (Bricks, Cartoon, Clone, Distortion, Emboss, Glass Tile,
      Light, Metal Paint, Negative, and Pixels.)
      Bill Kendrick <>

    * Some brushes' initial spacing was not acheivable after
      changing the spacing.  Now 'nudging' back to the default
      when chosing the spacing option that's closest to the default.
      (h/t Pere for pointing this out)
      (Also, some tweaks to the spacing UI)
      Bill Kendrick <>

    * Mend crash bug in "Paint" and "Radial Gradient" modes of Fill tool.
      Pere Pujal i Carabantes <>
      with Bill Kendrick <>
      (h/t Miyagi Andel for reporting & Shin-ichi TOYAMA for pinpointing
      the issue)

    * Mend crash bug in "perspective.c" Magic tools.
      (Perspective, Panels, Timezoom, Zoom, Rush)
      Bill Kendrick <>

    * Disallow using Ctrl-Z shortcut while drawing or rotating shapes
      or shapes, to avoid unexpected results.
      Pere Pujal i Carabantes <>

    * Scaling of button labels often caused them to stretch wider
      than they should have.  Corrected 'keep aspect ration' option
      in zoom().  [Note: That should be replaced with an SDL2_gfx call!]
      Bill Kendrick <>

    * Text from unfinished "Label" tool input would appear after
      creating a New image or Opening an existing one.  Mended.
      Pere Pujal i Carabantes <>
      and Bill Kendrick <>

    * On-screen keyboard would crash Tux Paint on Android; mended.
      Pere Pujal i Carabantes <>

  * Ports & Building:
    * Processed PNG images through `pngout` to increase some compression
      (also corrects some warnings being reported by libpng (via SDL_image);
      h/t Tim Dickson, closes
      Bill Kendrick <>

    * Automatically update macOS build version from the command line
      at build time.
      Mark Kim <>

    * Change name of Tux Paint config. files from ".conf" to ".cfg"
      on Windows.
      TOYAMA Shin-ichi <>

    * Merge "tuxpaint.desktop" file at build time (rather than as a
      manual step)
      Will Thompson <>

    * Use RHEL 7-compatible appdata filename
      + Rename metainfo file to appdata
      + Fix detection of xdg-icon-resource
      Will Thompson <>

    * Adding "2DGraphics" (and hence "Graphics") and "KidsGame" (and hence
      "Game") to the categories listed in "tuxpaint.desktop" launcher for
      FreeDesktop systems (e.g., Linux)
      Will Thompson <>

    * Add "tuxpaint-fullscreen.desktop", which launches Tux Paint
      with "--fullscreen=native" option on environments
      (similar to the fullscreen launcher we've had for Windows)
      (Closes; h/t Aaron Wolf)
      Bill Kendrick <>

    * Remove "intltool" dependency. (Thanks to this, no need for
      "".  It involved rewriting ""
      to invoke 'xgettext' and 'msgfmt' rather than 'intltool' commands.)
      Will Thompson <>

    * Added "appstream" metainfo file (used by software centers like
      GNOME Software and KDE Discover) to display info about an app.
      Richard Hughes <>
      and Will Thompson <>

    * Various Android port updates
      * FIXME: Pere & Terrence, can you enumerate them here???
      * Changing Android save paths to now default to the 'external' dir from the device itself.
      Terrence Sheflin <>
      Pere Pujal i Carabantes <>

    * SDL2.0 version: Compatibility with SDL2_Pango 0.1.3.
      Mark Kim <>

    * New tool, "test-png", which exercises libpng library on
      a set of PNG image files, allowing us to find those which
      cause Tux Paint (via SDL_image, in turn via libpng) to
      report back warnings to STDERR.
      h/t Tim Dickson, per
      Bill Kendrick <>

    * Updated `src/po/` sanity-checking script
      to check `src/po/LINGUAS` file.  Also, OPTION docs and
      Tux Paint Config. source updated to make the script's job easier.
      Bill Kendrick <>

    * Cleaned up .c and .h source files using `indent`:
      find . -name "*.c" -or -name "*.h" -exec  indent -nbfda -npcs -npsl -bli0 --no-tabs {} \;
      Bill Kendrick <>

    * Cleaned up some compile-time warnings that cropped up in SDL2 branch.
      Bill Kendrick <>
      TOYAMA Shin-ichi <>

    * On Windows, run "tuxpaint-config" with the same privileges as
      the installer app
      TOYAMA Shin-ichi <>

    * Pango loads Tux Paint-supplied fonts on macOS.
      Previously Pango loaded system-supplied fonts instead, which
      could lead to fonts not rendering in a human-readable text.
      This change fixes
      Mark Kim <>

    * More fonts for the text and label tools on the macOS.
      Enabled forked fonts so more fonts are available for use with the
      text and label tools on the macOS.  This is particularly noticible
      with localized fonts because only a few localized fonts may exist
      on the system so missing even a single font can lead to inability to
      type in a localized language at all.  It's unclear why forked fonts
      were disabled to start on the macOS but it appears to be reliable
      now so it's now been enabled to take advantage of its benefits.
      Mark Kim <>

    * Speed up macOS app bundle build time.
      Fixed a typo that was causing the macOS app bundle build time to be
      unnecessarily long.  The app buildle build time is now ~20x faster.
      Mark Kim <>

    * Add missing dependencies in Makefile which result in build failures
      when building with the --shuffle flag for GNU make.
      Philipp Rösner <>

    * Correction to allow Haiku printing code to compile again
      Luc 'Begasus' Schrijvers <>

  * Documentation updates:
    * New "Quickstart Guide" document added.
      Bill Kendrick <>

    * "Troubleshooting" document added (work-in-progress, and
      mostly for developer use when getting info. from users
      experiencing problems)
      Bill Kendrick <>

    * Magic tool API documentation updated to match other docs,
      and allow for localization.  (Maintained in "tuxpaint-docs" repo.)
      Bill Kendrick <>

    * Example Magic tool source file ("tp_magic_example.c")
      now allows for localization.  (Maintained in "tuxpaint-docs" repo.)
      Bill Kendrick <>

    * Updated macOS build instructions for SDL2.0 (INSTALL docs).
      Mark Kim <>

    * Added an overview of building for Android (INSTALL docs).
      Pere Pujal i Carabantes <>
      (Edited by Bill Kendrick)

    * "--verbose-version" now shows whether SDL2_Pango is being used.
      Bill Kendrick <>

  * Localization Updates:
    * Allowing translators to provide strings that help score fonts
      based on their support for the locale, and placing them higher
      in the Text and Label tools' font selector.
      Albert Cahalan <>
      and TOYAMA Shin-ichi <>

    * Bulgarian
      Vankata453 <>

    * Catalan translation
      Pere Pujal i Carabantes <>

    * Dutch translation
      Willem Heppe <>

    * French translation
      Jacques Chion <>

    * Gaelic (Irish) translation
      Kevin Scannell <>

    * Georgian translation
      Gia Shervashidze <>

    * Gujarati translation
      Kartik Mistry <>

    * Icelandic translation
      Sveinn í Felli <>

    * Japanese translation
      TOYAMA Shin-ichi <>

    * Japanese documentation
      TOYAMA Shin-ichi <>

    * Japanese font updated
      A subset of Genjyuu Gothic:
      Added by TOYAMA Shin-ichi <>

    * Korean translation
      Mark Kim <>

    * Norwegian Nynorsk translation
      Karl Ove Hufthammer <>

    * Portuguese (Portugal) translation
      Hugo Carvalho <>

    * Punjabi translation
      A S Alam <>

    * Ukrainian translation
      Yuri Chornoivan <>

2022.June.4 (0.9.28)
  * Improvements to "Paint" and "Lines" tools:
    * Brush spacing may now be altered within Tux Paint.
      + Note: A "nobrushspacing" simplifcation option is provided to
        disable this feature; Tux Paint will continue using the brushes'
        default spacings.
      Bill Kendrick <>

    * Many brushes have been given more reasonable default spacing
      settings (e.g., star brush's new default spacing causes
      individual stars to appear, rather than a 'smear').
      (h/t Areti Tsolakidou for the suggestion)
      Bill Kendrick <>

    * Instructions at the bottom note when a brush is directional,
      animated, or both, when chosing a new brush.
      Bill Kendrick <>

  * Improvements to "Stamp" tool:
    * Stamp performance improvements
      + Stamps are scaled before they are colorized or tinted,
        to increase performance.
      + The current stamp (in its current form: size, orientation,
        and color) is cached, so it may be applied to the canvas
        many times without having to re-render.
        (No longer scaling and tinting every time you click.)
      (h/t Andre Anckaert)
      Bill Kendrick <>

  * Improvements to "Eraser" tool:
    * Outline for circle-shaped erasers is now also circular.
      (h/t Areti Tsolakidou for the suggestion)
      Bill Kendrick <>

  * Improvements to "Shapes" tool:
    * Added hexagon (6-sided polygon) and heptagon (7-sided) shapes.
      Bill Kendrick <>

    * Showing aspect ratio of shapes when stretching them.
      Bill Kendrick <>

    * Using floats more, allowing for proper heptagon support, as
      well as a non-skewed starting angle for octagons (22.5 degrees).
      Bill Kendrick <>

  * Improvements to "Text" & "Label" tools:
    * Onscreen keyboard button sizes no longer restricted to
      "the same size as other UI buttons" or "1/4th the size...",
      and will now scale down from the full-size buttons to whatever
      allows the full layout to fit within 90% of the canvas width
      and 50% of the canvas height (picking the smallest size, to keep
      square buttons for letters/numbers/symbols).
      + Closes
        (h/t Anat Caspi)
      Bill Kendrick <>

    * "Label" tool now offers a way to "apply" a label to the canvas
      (as if it were 'painted' onto the drawing with the "Text" tool).
      Bill Kendrick <>
      & Pere Pujal i Carabantes <>

    * Bugfix: Onscreen keyboard repositions itself to the top if you
      use [Enter] to move the cursor down, and it begins overlapping
      the keyboard.
      Bill Kendrick <>

    * Bugfix: Positioning and rendering of labels selected for editing
      via [Tab] cycling & the [Enter] key now works as expected.
      Bill Kendrick <>

    * More instructional text is shown (and sound effects play) when
      using the Label tool.
      Bill Kendrick <>

  * Improvements to Color Picking:
    * A keyboard shortcut is now available for picking colors from
      the canvas more quickly.  Hold either (left or right) [Ctrl] key
      while clicking, and the color selector option will appear.
      Release the mouse button over a color on the canvas to choose it
      (or outside the canvas to abort).
      Bill Kendrick <>

    * A new color mixer has been added, allowing red (magenta-ish),
      yellow, and blue (cyan-ish) primary colors, along with white
      ("tint"), grey ("tone"), and black ("shade") to be added together to
      form a desired color.  Undo/Redo is available!
      Bill Kendrick <>

    * The rainbow palette color picker now acts as a true
      Hue/Saturation/Value picker, with the addition of a "value" slider.
      Bill Kendrick <>

    * The crosshairs on the rainbow palette color picker are larger,
      and scale up (or down) based on the UI size (--buttonsize setting).
      Bill Kendrick <>

    * Show a "pipette"-shaped mouse pointer when selecting a
      color from the color palette, or the picture.
      Bill Kendrick <>

    * Don't play 'bubble' paint sound when color picker or selector
      (or new mixer) are aborted (via their "Back" buttons or [Esc] key).
      Bill Kendrick <>

  * New Magic Tools:
    * "Tile Zoom"; like the regular "Zoom", but tiles the results when
      you scale down (similar to "Panels", but with non-integer scaling).
      Bill Kendrick <>

    * "Rush"; similar to "Zoom", but the effect is blurred.
      Bill Kendrick <>

  * New Brushes:
    * "Dog" animated directional brush.
      (Modified version of art from the "oneko" package by Tatsuya Kato.
      Brushified by Bill Kendrick <>

  * Other Improvements:
    * The up & down scroll buttons now auto-repeat if you click/tap and
      hold them in the "Tools" section, and "Open", "New", and "Slideshow"
      dialogs.  (For
      Bill Kendrick <>

    * The "Slideshow" now begins by showing the most recent images
      (the bottom of the list of saved images) rather than the oldest
      (the top of the list).
      Bill Kendrick <>

    * Added an option to sort the "Open" and "Slideshow" dialogs
      by newest-images-first, rather than the default oldest-first
      (--reversesort setting).
      Pere Pujal i Carabantes <> and
      Bill Kendrick <>

  * Localization Updates:
    * Albanian translation
      Besnik Bleta <>

    * Icelandic translation
      Sveinn í Felli <>

    * Japanese translation
      TOYAMA Shin-ichi <>

    * Santali translation (Ol-Chiki)
      Prasanta Hembram <>

    * Slovak translation
      Jozef Říha <>

    * Korean translation
      Mark Kim <>

    * Portuguese (Portugal) translation
      Hugo Carvalho <>

    * Updated the Chinese (Traditional) subset font file that ships
      with Tux Paint, based on the current translation strings.
      Bill Kendrick <>

    * Tux Paint for macOS can now localize the macOS menubar.
      Mark Kim <>

    * Tux Paint for macOS can now detect the system language.
      Mark Kim <>

    * Updated `src/po/` sanity-checking script
      so it properly finds the updated docs & other changes.
      Bill Kendrick <>

  * Bug Fixes:
    * Fixed abnormal exit of threaded font scan which prevented enabling
      text/label tools on some environment such as Rocky Linux 8.
      TOYAMA Shin-ichi <>

  * Ports & Building:
    * Windows installer forces to uninstall before the installation if
      version 0.9.27 and older is found.

    * Windows installer will no longer show a dialogue to inform
      user of uninstallation when "/VERYSILENT" switch is specified
      (useful for automated installation/uninsta$llation processes).
    * Pass the full path of locale directory to bindtextdomain().
      Workaround to the issue that gettext() can not find translation
      files after the update of MinGW/MSYS2 in January 2022.
      TOYAMA Shin-ichi <>

    * Initializing layout of onscreen keyboard (osk) to avoid undefined
      behavior when changing keyboards.
      Pere Pujal i Carabantes <>

    * Address issue with uppercase-only mode in Turkish locale.
      Pere Pujal i Carabantes <>

    * Fixed a bug that can randomly crash Tux Paint when started in a language
      with a input method map (*.im).
      Mark Kim <>

    * Avoid leaking memory when loading Label text strings from a
      saved drawing. (Affected Windows only.)
      Bill Kendrick <>

    * Avoid crashes when coming across unexpected Label data stored within
      a saved PNG image.
      (h/t Donny Sianipar for the report & sample image)
      Bill Kendrick <> and
      TOYAMA Shin-ichi <>

    * Adjust where libpaper gets init'd.
      Reuben Thomas <>

  * Ports & Building:
    * Release builds tarballs that denote SDL1.2 vs SDL2.0 branch.

    * Windows
      * Windows installer will no nlonger show a dialogue to inform
        user of uninstallation when "/VERYSILENT" switch is specified
        (useful for automated installation/uninsta$llation processes).
        TOYAMA Shin-ichi <>

      * Standard output and standard error are now redirected to the
        files in User's save directory for example:
        TOYAMA Shin-ichi <>

    * macOS
      Mark Kim <>

      * On macOS, use the CMD (⌘) key wherever CTRL is used on other OSes

      * Use character class in macOS build script
        (It appears \t is not compatible with certain versions of grep.)

      * Remove install stages not needed on macOS

      * When looking up paths of fonts, preferences, etc., macOS searches
        two places, the system paths and the user paths under $HOME.
        Now handling rare scenario where HOME is not set; if so,
        now just searching the system path twice instead of searching the
        system path followed by going into an undefined behavior
        (possibly segfault crash).

      * Fonts are now also looked for in the system preferences path,
        /Library/Application Support/TuxPaint/fonts

      * Fixed the issue with the backspace not working in text and label tools
        when in certain language modes in macOS.  Mac keyboards have the DELETE
        key where PC keyboards have the BACKSPACE key, and the two keys have
        different keycodes, so the backspace requires special handling on the
        macOS in programs writtens for the PC.

      * Remove the `--openfolder` option when calling `bless` from Apple
        Silicon.  This option is no longer valid on Apple Silicon as of the
        March 2022 release of Xcode.

      * Localization of SDL2.0 menu on macOS.

  * Documentation updates:
    * Added some styling, use of HTML semantic tags, call-outs for notes,
      improved printed output, and other improvements to the README and
      OPTIONS docs.
      Bill Kendrick <>

    * Magic Tool docs sort tools by localized names, include full
      localized names in the "See also" references, corrected HTML docs
      (and subsequent TXT conversions) character encoding (us-ascii -> UTF-8).
      Bill Kendrick <>

    * macOS Apple Silicon and Universal Binary build instructions
      Mark Kim <>

    * Compressed PNG images in documentation.
      Bill Kendrick <>

2021.November.25 (0.9.27)
  * New Magic Tools:
    * "Lightning" - Draws a bolt of lightning striking between
      the start and end positions of a line.

    * "Opposite" -- Change parts of the picture to their complementary
      colors.  (Similar to "Negative", but instead of inverting the
      Red, Green, and Blue components, it rotates the Hue 180 degrees
      while leaving Saturation and Lightness alone.)

    * "Panels" - Convert your picture to 4-panel-comic-style
      2x2 image, repeating the original.  (Repeat for "compound eye"
      style effects!)

    * "Reflection" - Create a reflection of part of the image,
      below (as in a lake reflection), above, to the left, or to the right.

    * "Smooth Rainbow" - A smooth, gradient variation of the classic
      "Rainbow" Magic tool.

    * "Stretch" - Squish and stretch parts of your picture, giving a
      fun-house mirror effect.

  * Magic Tool Improvements:
    * "Halftone" works much better, drawing large overlapping circles
      of Cyan, Magenta, Yellow, and Black, based on the average
      color of the area of the picture being replaced, to give a
      "newsprint" effect.

    * "TV" now breaks pixels into red/green/blue components,
      rather than merely adding a 'scanline' effect.

    * "Blocks", "Cartoon", "Chalk", "Emboss", and "Halftone" can all now
       affect the entire image at once.

    * More tools update progress bar while doing lots of work
      (mostly full-screen mode).  More tools play their sound effects
      when applying effects in full-screen mode.

  * Improvements to "Paint" and "Lines" tools:
    * Rotational brushes now supported.  Unlike "directional"
      brushes, in which a 3x3 grid representing the 8 cardinal
      directions (45 degree steps) is used, only a single brush image
      is required, and Tux Paint will rotate it between 0 and 360 degrees,
      depending on the direction the mouse is going.  The brush's ".dat"
      file should contain a line consisting of the word "rotate".
      + Note: This adds a dependency on "SDL_gfx" library
        SourceForge project page:
        as this feature use it's "rotozoomSurface()" and "SDL_gfxBlitRGBA()".

    * Replaced the "arrow_compass_points" brush with a single
      arrow which can rotate at any angle, using the new
      "rotational" brush feature.

    * Added "rotating dash" brush.

    * Small icons appear on brush selection buttons denoting
      when the brush is animated and/or directional.

  * Other Improvements:
    * New "Fill" tool mode: "Brush".  Similar to classic flood fill,
      but only fills as you move the brush within the area to be

    * Grouped similar Magic tools into sections.
      (e.g., all of the distortions, versus painting tools, versus
      full-image effects, etc.)

      Use the left/right pagination buttons that now appear at the
      bottom of the selector (similar to those used with Stamps tool)
      to switch between groups.

      Note: Bumps `TP_MAGIC_API_VERSION` to 0x00000005.

    * Initial support to place pictures deleted from the "Open" dialog
      into the "Recycle Bin" on Windows.

    * When drawing lines or rotating a shape, the angle of rotation
      is shown (in the instructions at the bottom).

  * Documentation updates:
    * Ensured Tux Paint's built-in help ("tuxpaint --help"),
      Unix manual ("man page"), and command-line option
      tab-completion list, and "OPTIONS" documentation all cover
      the full set of Tux Paint options.

    * Reorganized the "Available Options" section of "OPTIONS"
      documentation (to match the organization found in the UI
      of "Tux Paint Config.")

    * Reorganized the options listed in Tux Paint's man page,
      to more closely (but not precisely) match the organization
      noted above.

    * tuxpaint(1) manpage is now managed & translatable via the
      'tuxpaint-docs' project, just like the HTML & plaintext
      documentation files (since 0.9.26).

    * Documentation to the various Magic tools are also now
      managed & translatable via the 'tuxpaint-docs' project.

    * Added table of contents to some documentation
      ("Options Documentation", "FAQ", "Installation Documentation",
      and "Advanced Stamps 'How-To'").

    * Moved Windows and macOS compilation instructions into main
      "Installation Documentation" (docs/.../INSTALL...).

    * Expanded explanation of how stamp tinting modes work
      in "Extending Tux Paint" documentation.

    * Documentation translation updates:
      + French translation
        Jacques Chion <>

  * New Starters:
    * Frog
      Jeff Davidson, (Parkdale Elementary, Waco, TX; 2007)

  * Localization Updates:
    * Allowing Left [Alt] key for switching to Japanese input method
      (for keyboards that lack a Right [Alt] key).
      TOYAMA Shin-ichi <>

    * Catalan translation
      Pere Pujal i Carabantes <>

    * French translation
      Jacques Chion <>

    * Icelandic translation
      Sveinn í Felli <>

    * Japanese translation
      TOYAMA Shin-ichi <>

    * Portuguese (Portugal) translation
      Hugo Carvalho <>

    * Ensure some locales have hints to find the best fonts
      for the Text and Label tools:
      + Greek
      + Scottish Gaelic

  * Bug Fixes:
    * "Negative" magic tool did not play its sound when using
      fullscreen (vs painting) mode. Fixed.

    * "Zoom" magic tool icon had weird artifacting. Mended.

    * "Halftone" magic tool had the "Zoom" tool's icon.

    * Undo buffer canvases were not always the same dimensions
      as the drawing surface, if buttonsize was adjusted.
      (Adversely affected "Shift" magic tool.)

    * Remove some old Win32-specific code to handle multibyte
      characters, which could cause a crash bug when using the
      on-screen keyboard under Windows.  (Older mingw/msys did
      not supply a needed function.)
      * h/t @Miyagi_Andel on Twitter for reporting the crash
      * h/t Pere Pujal i Carabantes for confirming how to reproduce it
      * TOYAMA Shin-ichi <> dropped the old
        code and rebuilt Tux Paint 0.9.26 for Win32 as 0.9.26-5
      * Note: This means dropping support for Windows 2000 & XP
      * (Also, remove Windows-only call to `_nl_locale_name()`,
        and avoid crashing if our `mysetenv()` receives any NULL pointers.
        T. Shin-Ichi & Bill K.)

    * Always show the appropriate instructions at the bottom when the
      "Fill" (depends on which sub-tool chosen) and "Shapes" (depends
      on whether "simpleshapes" option is set) tools are selected
      (e.g., when returning from the "Open" dialog).

    * Avoid possibility of crashing when doing a flood-fill of a
      complicated shape on a large canvas (e.g., `tuxpaint --3000x2000`
      with `starters/mosaic.svg`
      + Replace recursion with a queue (span filling method)
      + Call the progress bar animation updates and playsound() function
        less frequently
      h/t Yang for reporting & Pere for confirming

  * Ports & Building
    * Fix compilation error on Linux with HOST environment variable set.
      Modifies the Makefile so it attempts to cross compile only when both
      HOST and HOSTROOT environment variable (which are both required for
      cross compilation) are set; avoid confusion when an unrelated
      $HOST env. var. is set.
      Mark K. Kim <>

    * Include "AppVersion" directive to Windows installer Inno Setup
      recipe file (.iss).
      Easton Pillay <>

    * Other Windows installer updates:
      + Updated to Inno Setup 6
      + 64-bit version now to be installed in the standard "Program Files"
        folder on 64-bit architecture instead of "Program Files (x86)" as before.
      + 64-bit installer will invoke uninstaller for existing old x86 mode
        installation, if found.
      + Updated translation files for the installer
      + Added language specification to start menu shorcuts for which
        translation is supported both for the web site and installer.
      + Disabled start menu shortcut to outdated translations of README.html.
      + Remove old OpenCandy stuff from Windows .iss file.
      TOYAMA Shin-ichi <>

    * Added shell script to build windows installer and portable zip archive.
      TOYAMA Shin-ichi <>

    * Further work to remove compiler warnings.

2021.June.28 (0.9.26)
  * New Features
    * Larger UI buttons
      Override the ages-old default 48x48 size for UI buttons
      (via a new "buttonsize" option).  Note: If the button size
      would be too large for the required parts of the UI to appear
      within Tux Paint's window size, the largest possible size will
      be used.
      Pere Pujal i Carabantes <>

    * It's now possible to increase how many rows of buttons are shown
      for the color palette at the bottom of the screen.
      (Use the "colorsrows" option.)
      Pere Pujal i Carabantes <>

    * Adding sub-tools to the Fill tool:
      + Solid -- The classic fill tool; click to fill 
      + Linear -- A linear gradient; click and drag to adjust,
        release mouse to finish
      + Radial -- A radial gradient; click to fill
      (The gradients transition from the current color to the
      background that's being filled.)

  * New Magic Tools:
    * Checkerboard
      Cover the entire canvas with a checkboard pattern using the
      current color.  Drag to change the size of the squares.

    * Clone
      Clones (copies, via painting) part of a drawing to another position.

    * Pixels
      Draws large squares, for classic computer 'pixel art' style drawings.

  * Documentation updates
    * Documentation is now maintained in a separate source repository,
      'tuxpaint-docs', which allows for easier and more consisten
      translation of the documentation.  Pulling in initial version of
      these docs, which contain a variety of minor updates (and also a
      few which had previously only been available as plain TXT are now
      available as HTML).

      + French translation
        Jacques Chion <>

      + Galician
        Miguel Anxo Bouzada <>

      + Japanese
        TOYAMA Shin-ichi <>

    * Adding documentation that covers some of the
      environment variables that Tux Paint utilizes.

    * Expanded the steps for making and posting releases.

    * Documented how to build Tux Paint using old macOS
      Mark K. Kim <>

    * Added more credits to manpage.  Avoiding word-wrapping
      URLs and email addresses.  Saved out as UTF-8, rather than
      Latin-1 encoding.

  * Other Improvements
    * Fill tools do a better job at filling around
      antialiased edges, and apply some blending.

    * Reduce CPU usage by increasing delay in main loop
      from 1ms to 10ms, and only using SDL's Timer subsystem
      when scrolling happens.
      (Details at
      Mark K. Kim <>
      (h/t @bbugwong on Twitter for reporting the issue)

    * If parent of export directory doesn't exist, Tux Paint will
      try to create it as well.
      (Only one level up; e.g., with an export location like
      /path/to/Pictures/TuxPaint/, it will try to create
      /path/to/Pictures/ if it doesn't exist, but not its parents).
      h/t Tim Dickson

  * Translation Updates:
    * Albanian
      Besnik Bleta <>

    * Catalan
      Pere Pujal i Carabantes <>

    * Galician
      Miguel Bouzada <>

    * Icelandic
      Sveinn í Felli <>

    * Occitan
      Quentin PAGÈS <>

  * Magic Tool Improvememnts:
    * A new "xorpixel()" function has been added to the Magic Tools API.

  * Bug Fixes:
    * Halftone magic tool wasn't loading due to a problem
      with its sound effect file.

  * Ports & Building
    * [WIP] Apple iOS port
      Mark K. Kim <>

2020.December.27 (0.9.25)
  * New Features
    * Export drawings:
      * GIF export option from the Open -> Slideshow dialog.
        * Utilizes "gifenc", public domain by Marcel Rodrigues:

        * Depends on "libimagequant", from the "pngquant2" project:

          (GPL v3 or later, for Free/Libre Open Source Software)
          (h/t TOYAMA Shin-ichi for adding support for versions < 2.8.0)
      * Single image (PNG) export from the Open dialog.
      * Both utilize XDG user dirs settings, if available, to determine
        where to store them, or "~/Pictures", otherwise.  In those cases,
        files are stored in a new "TuxPaint" subdirectory.
      * The "--exportdir" option can be used to override the default
        location (but a "TuxPaint" subdir. will NOT be placed there).

    * Shape controls:
      * Draw shapes from the center (as in previous versions of Tux Paint)
        or from a corner (similar to the default mode of most other
        graphics tools).
      * The controls to modify the drawing behavior can be removed,
        for simplification of Tux Paint's interface (for younger users).

  * Other Improvements
    * New, smaller sizes available in "Eraser" tool.
      (h/t Jackson Bray for the suggestion)

    * "Eraser" tool now draws smoothly connected strokes,
      like the "Brush" tool, when the mouse is moved quickly
      (relative to the eraser size; especially useful for the
      smallest erasers).

    * On-screen keyboard (visible when the feature is enabled, while
      using the "Text" and "Label" tools) now appears with larger
      (48x48 pixel, vs 24x24 pixel) buttons, when Tux Paint's window
      (or fullscreen) size is large enough to fit them with the
      chosen layout.
      (h/t Anat & Aviv, who suggested it to help with users of
      eye-tracking systems)

    * On-screen keyboard buttons use a slightly larger font
      (16pt vs 12pt, previously seen on the small keyboard;
      32pt on the large keyboard).

  * Ports & Building
    * Corrections for Haiku not opening saved files.
      Gerasim Troeglazov <>

    * Windows build changes
      * Enabling PowerTools repositry to install additional SDL* packages
      * Corrected README launcher for English, after install completes
      * Updated translation files and ensure license text appears
      * Support for Mingw64 for 64-bit builds
      * Ability to find Mingw DLLs by examining EXEs
        (new shell script replaces hard-coded list in Makefile)
      TOYAMA Shin-ichi <>

  * New Brushes
    * Footprints
      * Human feet
        Based on Openclipart by "netalloy"
        Creative Commons Zero 1.0 Public Domain License

      * Paw (dog or cat like)
        Based on Openclipart by "alinager"
        Creative Commons Zero 1.0 Public Domain License

      * Shoes
        Based on Openclipart by "Tavin"
        Creative Commons Zero 1.0 Public Domain License

  * Starter & Template updates
    * Added margins to elephant, fish_icon and frame_hearts
      starters, to avoid smearing on edges in Tux Paint.
      Pere Pujal i Carabantes <>

  * Documentation updates
    * Cleaned up HTML code of HTML-based documentation.

    * Sub-section links within README's Table of Contents.

    * EXTENDING docs cleaned up and Table of Contents added.

    * Converted FAQ from bullet lists to definition lists.

  * Bug Fixes
    * Mended issue where stamp descriptions were not loading
      when "getenv()" (e.g., "getenv("LANGUAGE")") returned an
      empty string, rather than a NULL.

    * Mended bug where corrupt text would appear as stamp
      descriptions, if we failed to know what language to use
      (see above).

    * Mended bug where a personal Template could not be loaded
      due to how we tracked which entry in the "New" dialog
      was the first template image.

  * New Translations:
    * Sardinian translation
      Flavia Floris <>

  * Translation Updates:
    * Basque translation
      Alexander Gabilondo <>

    * Catalan translation
      Pere Pujal i Carabantes <>

    * French translation
      Chion Jacques <> 

    * Galician translation
      Miguel Bouzada <>

    * Icelandic translation
      Sveinn í Felli <>

    * Japanese translation & Japanese README documentation
      TOYAMA Shin-ichi <>

    * Norwegian Bokmål translation
      Karl Ove Hufthammer <>

    * Norwegian Nynorsk translation
      Karl Ove Hufthammer <>

    * Santali translation (Ol-Chiki)
      Prasanta Hembram <>

  * Misc
    * Improved safety when copying things into string buffers.

2020.April.24 (0.9.24)
  * New tools
    * Fill
      Not actually a new tool, but promoted from a "Magic" tool
      to a full-fledge tool in the "Tools" bar.  However, also
      avoids filling "Undo" buffer with snapshots of the drawing,
      if the fill does nothing (e.g., if you click the same spot
      a second time).

  * Ports & Building
    * Updates to build on Haiku.
      Luc 'Begasus' Schrijvers <>

    * Replaced KDE (older, KDE4, in fact) specific icon and
      launcher (.desktop file) installation & uninstallaton
      invocations in Makefile with those that use
      `xdg-...` tools.

    * macOS build documentation updates.
      Mark K. Kim <>

    * Wrapped some debug output in "#ifdef DEBUG" tests,
      and made sure some warnings and errors were going to
      STDERR, rather than STDOUT.

    * Updates to build for Windows (using mingw/msys)
      TOYAMA Shin-ichi <>

    * Updates to 'spec' file for Linux RPM builds
      TOYAMA Shin-ichi <>

  * Other Improvements
    * Added ability to move color palette options to the end of
      the New dialog, for situations where users are meant to start
      drawings with specific Starters or Templates.
      Use "--newcolorslast" option.
      (Suggested by Bernard Verhaeghe)

    * Show progress bar while loading (more) stamps, to avoid
      looking hung on slower systems or with complicated stamp images.

    * Recognize signals (SIGUSR1 and SIGUSR2) on POSIX systems,
      which causes Tux Paint to quit, first saving the current drawing
      (if unsaved) (like "--autosave"), either saving a new image
      (like "--saveovernew") (via SIGUSR1), or overwritting the current
      drawing (like "--saveover") (via SIGUSR2).
      (Thanks to Flavio Airundo for the idea; closes

    * Updated most parts of the code that were throwing warnings in GCC.

    * Build process generates thumbnails of included Starters and Templates.
      When installed, this greatly increases the speed of the "New" dialog.

    * Updated some Starter source images so they work better with
      flood fill (Bald Eagle, World map, Gecko).

    * Ability to disable stereo panning effect (e.g., paint brush, UI
      elements sound effect feedback, etc.), useful for users with
      hearing impairment in one ear, or situations where one speaker or
      headphone is being used.  Use "--nostereo" command-line option
      or "nostereo=yes" config. file option.

  * Documentation updates
    * Mended link to MinGW/MSYS instructions at John Popplewell's website.
      (h/t "sechidis")

    * Improved and expanded usage info (e.g., "tuxpaint --help" output)

    * Documentation on POSIX signals recognized by Tux Paint (e.g.,
      the new "SIGUSR1" & "SIGUSR2") added to a new doc file,

  * Translation Updates:
    * Norwegian Nynorsk translation
      Karl Ove Hufthammer <>

    * Swahili
      Benson Muite <>

    * Valencian
      Pilar Embid Giner <>
      via Pere Pujal i Carabantes <>

  * Bug Fixes
    * Correct issue that prevented Tux Paint from lauching on Mac OS X 10.7.
      Mark K. Kim <>

    * Reduce launch time by calling progress bar less frequently
      while loading stamps.
      Mark K. Kim <>

    * Ability to bring up the print dialog from the macOS build was
      removed in Tux Paint 0.9.23 to support the new build mechanism.
      It has been re-added.  To access it, option-click the print icon,
      or configure Tux Paint to always bring up the dialog upon print.
      Mark K. Kim <>

    * Made sure "New" dialog created correct thumbnail subdirectories
      for personal Starters & Templates (e.g., ~/.tuxpaint/starters/thumbs/)

    * Ensure that similarly-named (but not identically-named) PNG & SVG
      Starters & Templates don't get confused with each other
      (e.g., "frame_heart.png" being ignored, because we find
      Pere Pujal i Carabantes <>

    * Moved the setting of the window icon after window creation.
      Pere Pujal i Carabantes <>

* Misc
    * Verbose debugging, and "DEBUG_PRINTF()" macro now available;
      see debugging options in INSTALL.txt.
      Mark K. Kim <>

  * Notes:
    * 0.9.23a & 0.9.23b were test versions for macOS that Mark produced
      and sent to individual users for testing.

2018.August.30 (0.9.23)
  * New tools
    * Color selector
      Pere Pujal i Carabantes

  * SDL2 port
    Pere Pujal i Carabantes

  * Android port
    JianWei Zhang as contribution in the GSoC 2015

  * New shapes
    * Stars
      Pere Pujal i Carabantes

  * Documentation updates
    * Made stamp controls (size, flip, mirror) section clearer.

    * Cleaned up and reorganized docs subdirectory.

  * New locales
    * Bengali
      Provided by Chandrakant Dhutadmal

    * Bodo
      Provided by Chandrakant Dhutadmal

    * Dogri
      Provided by Chandrakant Dhutadmal

    * Kabyle (aka Kabylian)
      Yacine Bouklif <>

    * Kashmiri (Devanagari)
    * Kashmiri (Perso-Arabic)
      Provided by Chandrakant Dhutadmal

    * Sindhi (Devanagari)
    * Sindhi (Perso-Arabic)
      Provided by Chandrakant Dhutadmal

    * Urdu
      Provided by Chandrakant Dhutadmal

  * Localization Updates:
    * Various
      Chris Leonard <>

    * Aragnoes translation
      Juan Pablo Martinez Cortes <>

    * Basque translation
      Ander Elortondo <>
      Alexander Gabillondo <>

    * British English translation
      Caroline Ford <>

    * Catalan translation
      Robert Buj Gelonch <>

    * Chinese (Simplified) translation
      Never Min <>

    * Croatian translation
      Paulo Pavačić <>

    * Danish translation
      Joe Hansen <>

    * Dutch translation
      Willem Heppe <>

    * Estonian translation
      Sven Ollino <>

    * French translation
      Chion Jacques <> 

    * Fula translation
      Ibraahiima SAAR <>

    * Gaelic (Irish) translation
      Kevin Scannell <>

    * Galician translation
      Miguel Bouzada <>

    * Georgian translation
      Gia Shervashidze <>

    * German translation
      Holger Wansing <>
      Helge Kreutzmann <> typos fixes and improvements for stamps

    * Greek translation
      Yannis Kaskamanidis <>

    * Gujarati translation
      Kartik Mistry <>

    * Icelandic translation
      Sveinn í Felli <>

    * Indonesian translation
      Courtesy of SugarLabs and
      T. Surya Fajri <>

    * Italian translation
      Flavio Pastore <>

    * Japanese translation
      TOYAMA Shin-ichi <>

    * Korean translation
      Mark K. Kim <>

    * Norwegian translation
      Karl Ove Hufthammer

    * Portuguese (Brazilian) translation
      Fred Ulisses Maranhão <>

    * Portuguese (Portugal) translation
      Sérgio Marques <>

    * Russian translaton
      Yuri Kozlov

    * Scottish translation
      Fòram na Gàidhlig

    * Slovenian
      Matej Urbančič <>

    * Songhay translation
      Abdoul Cisse <>

    * Spanish translaton
      Matías Bellone

    * Swedish translation
      Sebastian Rasmussen <>

    * Thai translation
      Nudjaree <>

    * Ukrainian translation
      yurchor <> 
      Sugar Labs i18n team <>

  * Bug Fixes
    * Crash if any "mosaic" magic tool used, Xubuntu 15.10
      If the PNG patterns used to generate the effect were compressed
      the wrong(lossy) way, the program will crash
      ( Bug #210)

    * "Hat" started could not be drawn on.  Mended.

  * Ports & Building
    * Rewrote the macOS build system to be more Linux-like, with no XCode IDE.
      Build for older releases of macOS / Mac OS X (10.6 and later).
      Mark K. Kim <>

    * Mac install creates a DMG
      Robert Buj Gelonch <>
      Mark K. Kim <>

    * Allow override override build date (in order to make builds reproducible)
      by Chris Lamb, pushed by Bernhard M. Wiedemann

    * Allow specifying a suffix to the "lib" directory where
      magic tools are installed.
      Tim Dickson <>

    * Install Tux Paint docs into a version-numbered directory
      (e.g., "/usr/local/share/doc/tuxpaint-0.9.23/")
      Tim Dickson <>

    * Launcher icon installation location adjustments:
      * .../X11R6/include/X11/pixmaps/ -> .../share/pixmaps/
      * Using kde4config (vs kdeconfig); not putting things in "Graphics" subdir.
      * Removed gnome-config stuff
      Tim Dickson <>
      Bill Kendrick <>

  * Other Improvements:
    * Reformatted source code via GNU Indent tool; should
      greatly increase code readability and formatting consistency.

2014.August.5 (0.9.22)

  * New Tools:
    * Label - A tool to add text to a drawing, which can be modified or
      moved later.
      By Arunodai Reddy Vudem (GSOC 2008)
      With modifications and integration by
      Pere Pujal i Carabantes <>

  * New Magic Tools:
    * Blinds - Close window blinds over your picture.
      Pattern - Draws a tiled pattern around the picture.
      Perspective - Change the image's perspective.
      Mosaic Hexagon, Mosaic irregular, Mosaic square - Glass mosaic effects.
      Tiles - Draws a symettric pattern around the picture.
      Zoom - Zoom the image in or out.
      By Pere Pujal i Carabantes <>

    * Puzzle - Slide parts of your picture around like a sliding puzzle.
      By Adam 'foo-script' Rakowski <>
      with modifications by Pere Pujal i Carabantes <>

    * ROYGBIV Rainbow - Draw a rainbow arc using solid colors of
      Red, Orange, Yellow, Green, Blue, Indigo and Violet.

    * Symmetry Left/Right, Symmetry Up/Down - Paint with relfective symmetry
      across the horizontal or vertical center of the image.
      (Like Kaleidoscope, but only one mirrored brush, either left/right
      or up/down.)

    * Wet Paint - Draws a light coat of paint, and smudges at the same time.
      (Based on Smudge tool.  Requested by gallery artist Angela.)

    * Xor Colors - Colors based on the position drawn on the picture.
      Lukasz Dmitrowski <>

  * Build System Improvements:
    * Variety of tweaks to help Tux Paint cross-compile for Windows under Linux
      Volker Grabsch <>

    * Added support for building under Haiku OS
      Scott McCreary <>

    * Integrated OpenCandy-powered recommendation service
      into Windows installation scripts (InnoSetup), as an option.

      Note: "tuxpaint.iss" still builds standard, OpenCandy-less
      Tux Paint installer; "tuxpaint-opencandy.iss", along with a file
      with secret key info (not included in CVS, of course!), build
      an OpenCandy-enabled version.  The OC account is currently
      maintained by Bill Kendrick <>, lead developer.

      For more info, see

    * Using $LDFLAGS when linking Magic tool plugins and Tux Paint binary.
      Volkov Peter <> (SF.Net Bug #3389067)

  * Collection of Mac OS X Updates:
    Produced by Eric Poncet <>
    Commissioned by Harvey Ginter <>

    * Fix OS X 10.9 issue of current directory set by Finder
      to something else than folder where app bundle resides.

    * Customization support for Mac OS X (automatic, under XCode)
      and Windows (manual).

    * Some Mac OS X build / project changes & updates.

    * Adjustments to Mac OS X fontconfig config file, to avoid warnings
      and make things more robust.

    * Updates to some #include's to catch up with newer library revisions.

    * Tweaks to pixel read/write on Apple.

    * Introduction of 'intprt_t' casting to avoid warnings on x64.

    * Some additional debugging output.

    * Logging stderr & stdout to /tmp/tuxpaint.log

  * Accessibility Improvements:
    * Added a mouse accessibility mode to avoid the need to drag the mouse.
      by Ankit Choudary <> (GSOC 2010)
      with integration and fixes by
      Pere Pujal i Carabantes <>

    * Added an option to display an on-screen keyboard when using the
      'Text' and 'Label' tools.  ("--onscreen-keyboard") [Experimental!]
      by Ankit Choudary <> (GSOC 2010) with 
      integration and fixes by Pere Pujal i Carabantes <>
      and some code borrowed from xorg (keysymdef.h and en_US.UTF-8_COMPOSE
      and xterm file keysym2ucs.c (function keysym2unicode   
      Markus G. Kuhn <>, University of Cambridge, April 2001
      Special thanks to Richard Verhoeven <>
      Public domain.

    * Keyboard can be used to move and click mouse ("--keyboard" option).
      by Ankit Choudary <> (GSOC 2010)
      * See documentation in OPTIONS for how to use it.

    * Joystick can be used to drive Tux Paint
      by Ankit Choudary <> (GSOC 2010)
      with integration and fixes by Pere Pujal i Carabantes

      * Use --joystick-dev to choose joystick (otherwise
        uses the first joystick found on the system).
        * Use '--joystick-dev list' to list available joysticks.
      * Uses any of the buttons found in the joystick, no need for
        configuration.  (--joystick-buttons-ignore can be used to
        ignore buttons.)
      * The hat of the joystick moves one pixel at a time, useful to
        carefully place the pointer.
      * The ball of the joystick should also trigger pointer
      * The responsivity of the joystick can be configured via command
        line or config files:
        * --joystick-slownes sets a delay at each axis motion event.
            Allowed values from 0 to 500, defaults to 15.
        * --joystick-threshold sets the minimum value of axis motion to
          begin move the pointer.
            Allowed values from 0 to 32766, defaults to 3200.
        * --joystick_maxsteps sets the maximum number of pixels that
          the pointer will move at a time.
            Allowed values from 1 to 7, defaults to 7.
      * Joystick buttons can be assigned used to activate certain commands
        in Tux Paint (--joystick-btn-COMMAND options)

  * Magic Tool Improvememnts:
    * Magic tools can register themselves as paint with one click
      (versus click/drag/release): MODE_ONECLICK.  (e.g., "Ripples")
      Utilized by mouse-accessibility feature.

    * Magic tools can register themsevles as paint-with-a-preview:
      MODE_PAINT_WITH_PREVIEW.  (e.g., "Flower")
      Utilized by mouse-accessibility feature.

  * Other Improvements:
    * Random brushes avoid repeating the same frame twice.

    * Showing a warning when using save-related options when "nosave" is set.
      (SourceForge Bug #3327493)

    * Quicker prompt window pop-up animation.

    * Left/Right Stamp navigation buttons are purple, like the other (up/down)
      scroll buttons found in Tux Paint.
      (SourceForge Bug #2918289)

    * Slightly improved mouse motion handling when Tux Paint is very busy
      drawing or previewing.  (e.g., when drawing a circle, you could often
      end up with a "D" shape... now, you get more of a regular polygon shape
      if Tux Paint is taking too long to draw.  It skips some motion events,
      rather than ignoring all motion events after the first 1/4th second.)

    * Deleting files from Tux Paint's 'Open' dialog now moves them to
      the user's Trash folder.
      FIXME: Only on systems (e.g., Linux)
      ( Feature #3101084)

    * Tux Paint (in windowed mode) now only centers itself if
      no specific positioning has been provided via
      the SDL_VIDEO_WINDOW_POS environment variable.
      (SourceForge Bug #3138446)

    * Creating thumbnails for the starters we provide.
      (Speeds up 'New' dialog appearance.)
      (SourceForge Bug #1417849)
      Pere Pujal i Carabantes <>

    * On systems where Pango is used for UI text rendering, Tux Paint now
      spawns a temporary thread during start-up (at the splash screen) to
      allow "fontconfig" to generate its font cache in the background,
      while showing the "please wait" animation, and responding to the US.
      (Fontconfig takes a long time to generate its cache the first time
      you run a Pango- and hence fontconfig-enabled application
      (Tux Paint, Gimp, Inkscape, etc.), or after adding lots of new fonts
      to your system). Bug #2944951

    * Thumbnailing (of UI elements, stamps, saved images, etc.) is now
      gamma-corrected. See:

    * Template images are now supported.  Similar to Starters, they are
      pre-drawn pictures to begin a new drawing with, accessed via the
      "New" dialog.  The "Eraser" tool will erase back to the original
      picture (rather than a solid color).

      Unlike Starters, they do not involve an immutable "layer" above the
      drawing.  They may be drawn over in their entirety.

    * After switching into, or out of, a magic tool, the canvas is updated.

    * Starter images can be in SVG (Scalable Vector Graphics) format.
      (Avoids loading PNG if SVG with the same name exists.)

    * Removed white artifacts from some Starters, and reduced file size
      of some Starters.

    * When scaling/smearing a picture or Starter, to fit the current canvas
      size, it was not drawing on the far right or bottom edges, causing
      Fill tool to 'spill'.  (Example: fill one of the puzzle pieces on the
      right or bottom of the 5x5 jigsaw Starter, and all pieces on the right
      and bottom would get filled, too.)

    * Starter images can be in KPX (Kid Pix Template) format.
      (These appear to simply be JPEG with 60 byte's worth of Mac OS
      resource fork header at the beginning.)
      (Thanks to Sarah Curry for sharing some example templates to test.)

    * When a default size was not specified, SVG-based Stamps would default
      to the largest, which was canvas-sized.  Now defaulting to a more
      reasonable size.  (And users can click the maximum size choice to get
      the largest, canvas-sized rendition.)
      ( bug #2836471)

    * Widened dialog windows, to help avoid word-wrap and overlap problems
      with some prompts, in some locales.
      ( bug #2834461)

    * Shape Tool now locks rotation into 15 or 5 degree steps, when the
      radius of the shape is very small or small, respectively.
      ( bug #2837177)

    * Shape Tool tries to avoid glitches where lines connect, when shape is
      rotated.  (Rotation of fixed-aspect shapes like Square and Octagon
      stays within the angle of the corners. i.e., rotating a square 140 deg.
      actually only rotates it 30 deg., since it looks identical,
      sans glitches.)
      ( bug #2837177)

    * Created a BASH tab-completion file for Tux Paint, so that
      command-line options are easier to discover (without necessarily
      needing to consult the man page, 'Options' documentation, or --usage

    * Text (and Label) tool doesn't flicker when typing or erasing text.

    * Creation of thumbnails for personal starters and templates.

    * Major rewrite of configuration and locale-setting code.
      Albert Cahalan <>,
      Bill Kendrick <>

    * Packaging all the metadata in the PNG file. Before a draw based
      on a starter would have need 3 files: the draw, the starter and the
      .dat file, whith the addition of the Labels tool this increased to
      5 files. Now all this stuff is packed in customs chunks inside the
      PNG file.
      Pere Pujal i Carabantes <>

    * No longer directly accessing PNG structure members directly, now using
      Thomas Klausner, Bug #3386433

    * Adapted the interface to play nice too on touchscreen devices.

    * Optimised PNG files using TruePNG and PNGZopfli, for smaller file sizes.

 * New Starters:
    * Elephant
    * Hat
    * Old Soviet Car
    * Skull 
    * Bald Eagle
    * Car 2
    * Desert Tortoise
    * Gecko
    * Manatee
    * Pansy
    * Stained Glass
    * Woodpecker
    * Frame - Filmstrip
    * Frame - Flowers
    * Frame - Picture
    * Frame - Screen
    * Frame - Television
    * Frame - Gold
    * Frame - heart
    * Frame - hearts
    * Fish Icon
    * Mosaic
      From Open Clip Art, curated by 
      Caroline Ford <>

    * Frame - neon
      Made in inkscape and the gimp by Caroline Ford.

  * New Templates:
    * Burnt bark
    * Cliff
    * Corn maze
    * Jellyfish
    * Lighthouse
    * Mossy bark
    * Mossy log
    * Mudstone
    * Ocean splash
    * Ocean waves
    * Redwoods above
    * Rocks
    * Sheep
    * Spider's web
    * Sun behind clouds
    * Sun behind leaves
    * Trees above
    * Trees at dusk
    * Wool mill machine
      Photographed by Bill Kendrick <>

  * New Brushes:
    * Another flower brush
      Made out of some open clipart by C Ford.

    * Inksplat
      Based on 'Splatter Brushes' for GIMP
      By 'Flyhorn' at deviantART

  * New Locales:
    * Acholi translation
      Achuma George Patrick <>
      Opio June Bryan
      Ogwal Kenneth Awio

    * Akan translation
      Derrick Frimpong <>

    * Amharic translation
      Solomon Gizaw <>

    * Aragones translation
      Juan Pablo Martinez Cortes <>

    * Armenian translation
      Anush MKRTCHYAN 
      Jasmine Udea

    * Assamese translation
      Anand Kulkarni <>

    * Bambara translation
      Fasokan <>

    * Bosnian translation
      Samir Ribić

    * Kiga translation
      Florence Tushabe <>

    * Fula translation
      Ibraahiima SAAR <>,
      Fula Localization Project,

    * Inuktitut
      Harvey Ginter <>

    * Kannada translation
      Savitha <>
      Provided by Vrundesh Waghmare <>

    * Konkani (Devanagari and Roman)
      Rahul Borade <>

    * Luganda translation
      James Olweny <>

    * Luxembourgish translation
      Ren� Brandenburger <>

    * Maithili
      U.Sudhakar <>
      sk <sk>
      Provided by Praveen Dewangan <>

    * Malayalam translation
      Students of Vocational Higher Secondary School Irimpanam
      - rimal <>
      - Abhijith P.K
      - Appu Ajith
      - Vishnu Ajith
      - Harish Vijay
      - Mathew K.Vaidyan
      - Manu C.Kauma
      - Sreejith P.M
      - Nithin M
      - Sidharth K.Bhattathiri
      - Thomas Peter
      - Dona C.D
      - Anjitha venugopal
      - Athira Venugopal
      - Shelmi P.R
      - Revathi Sukumaran
      - Salu P.SAmitha Appukuttan
      - Geegu Varghese
      - Ashna Manoharan
      - sreelakshmi
      - jithu
      - Abhinav Thomas
      - Abhitha Thomas
      - Sajith P.V
      - Vishnu Vinod
      - Senthis
      - Vimal <>
      - Sameer <>
      - Sanal <>
      - Sooraj <> 
      - V Sasi Kumar <> 
      Updated by Sonith Kumar <>
      Reviewed by Haris Ibrahim K. V. <>

    * Manipuri (Bengali and Metei Mayek)
      Hidam Dolen <>
      Provided by rahul dabre <>

    * Marathi translation
      Santosh Jankiram Kshetre <>

    * Nepali translation
      Khagen Sharma <>
      Provided by Neha Aphale <>

    * Northern Sotho translation
      Pheledi Mathibela <>

    * Odia translation
      Kaniska Padhi <>

    * Punjabi translation
      Arshpreet Singh <>

    * Persian translation
      Farinaz Hedayat <>

    * Sanskrit translation
      Babita Shinde <>

    * Santali translation (Devanagari)
      Chandrakant Dhutadmal <>
      Ganesh Murmu <>

    * Santali translation (Ol-Chiki)
      Chandrakant Dhutadmal <>
      Ganesh Murmu <>

    * Serbian translation (latin)
      Ivana Rakic <>

    * Sinhala
      Menik Prasantha <>

    * Sundanese
      kumincir <>

    * Valencian
      Pilar Embid Giner <>

    * Venetian language
      Fabio Lazarin, El Galep�n <>

    * Zulu
      sipho <>

  * Localization Updates:
    * Albanian translation.
      Canonical Ubuntu Launchpad contributors

    * Basque translation
      Ander Elortondo <>

    * Belarusian translation
      Alexander Geroimenko <>

    * Brazilian Portuguese translation
      Frederico Goncalves Guimaraes <>

    * British English
      Robert Readman <>

    * Bulgarian
      Stefani Stoyanova

    * Chinese (Traditional) translation
      Song Huang <>

    * Czech translation
      Zdeněk Chalupský <>

    * Danish translation
      Joe Dalton <>

    * Dutch translation
      Freek de Kruijf <>

    * Finnish translation
      Olli <>
      Tarmo Toikkanen <>

    * German translation
      Stephanie Schilling <>

    * Greek translation
      Kiriaki SERAFEIM <>

    * Gujarati translation
      Kartik Mistry <>

    * Hindi translation
      aki <>
      Ashish Arora <>

    * Hungarian translation
      Nagy Akos <>

    * Italian translation
      Flavio "Iron Bishop" Pastore <>

    * Latvian
      Raivis Strogonovs <>

    * Malay translation
      Muhammad Najmi Ahmad Zabidi <>

    * Norwegian Bokmål translation
      Karl Ove Hufthammer <>

    * Norwegian Nynorsk translation
      Karl Ove Hufthammer <>

    * Romanian translation
      Hodorog Andrei <>

    * Russian translation
      Nikolay Parukhin <>
      Sergei Popov <>

    * Polish translation
      Piotr Kwiliński <>

    * Portuguese now using plain "pt" locale (vs. always specifying "_PT")

    * Portuguese translation
      Sergio Marques <>

    * Scottish Gaelic translation
      Michael Bauer <>

    * Scottish Gaelic translation for Inno Setup
      Foram na Gaidhlig <>

    * Serbian translations (cyrillic)
      Ivana Rakic <>

    * Slovak translation
      Jaroslav Rynik <>

    * Songhay translation
      Abdoul Cisse <>
      Mohomodou Houssouba  <>

    * Spanish (Spain) translation
      Teresa Orive <>

    * Swedish translation
      Henrik Holst <>

    * Swahili translation
      Emanuel Feruzi <>

    * Telugu tranlation
      saikumar <> as a task in GCI

    * Turkish
      Enes Burhan KURAN <>

    * Vietnamese translation
      Clytie Siddall <>

    * Zapoteco
      Rodrigo Perez Ramirez and Indigenas Sin Fronteras <>

  * Bug Fixes
    * Starter and template filenames with non-lowercase extensions (e.g. .JPG)
      would fail to load. Bug #191

    * If a non-SVG starter or template with the same name as an SVG one
      existed, it would be loaded instead of the SVG (despite a thumbnail
      of the SVG appearing in the file selector). Bug #191

    * Image on right of dialogs would get scaled/cut-off even if there was
      room for them.

    * When using 'print delay' option, it would not allow printing the
      first time until the delay had passed.

    * Fixed error reporting when make_directory() fails.
      (Fixes spurious Bug #2765872)
      John Popplewell <>

    * Buffersize for holding Starter and image filenames was way too low.
      (Could crash with Starter images with very long filenames.)

    * Shape tool would only resize a shape if you dragged down or right,
      not up or left.
      ( Bug #2834320)

    * tuxpaint-import tool uses BASHisms, so changed shebang to #!/bin/bash
      (instead of #!/bin/sh).

    * Added some missing examples to the default tuxpaint.conf file.
      (Thanks to Aapo Rantalainen <>)

    * Default stamp size, in some situations, was very large
      (due to some rules that allowed stamps to be, at maximum,
      up to 2x width of the canvas, OR 2x height of the canvas, as long
      as it wasn't larger than the canvas in the other dimension).
      The stamp sizing buttons were unable to re-select that size.
      The sizing button bug has been fixed, the rule has been adjusted to
      allow a maximum overscan of 1.5x width-or-height, and if the maximum
      size causes overscan, then a smaller size is used for the default
      when the stamp is first used.
      ( Bug #1668235)

    * Shapes tool now draws at mouse release to help painting with
      touchscreen devices.
      ( Feature request #3008811)

    * Shapes tool would left their preview on the canvas if you leave it 
      or change the shape before finishing to draw it.
      ( Bug #1057311)

    * Example for 'savedir' in tuxpaint.conf suggested you needed /saved
      at the end, which is not true.  Added note explaining that actual
      image files go under 'saved' subdirectory.
      (Thanks to Marco Menardi)

    * Saved images woose path contains non-ascii chars can now be opened on Windows.

    * Ignoring ".pfb" (PostScript 'Printer Font Binary') fonts, to
      avoid crashes.

2009.June.28 (0.9.21)
  * New Starters:
    * Silver Frame
      Caroline Ford <>

    * Jigsaw 3x3 & 5x5
      Andrew 'akanewbie' Corcoran <>

  * New Magic Tools:
    * + Blur (entire image mode) - Blurs entire image
      + Color Shift - Modifies the colors in the image.
      + Sharpen - Sharpens entire image
      + Edges - Traces the edges of the image, over a white background.
      + Silhouette - Creates an outline of the image, over a black background.
      + Color and White - Turns image pure color & white (no grey or color).
      + Snow Ball - Places random snow balls over the image.
      + Snow Flake - Places random snow flakes over the image.
      + Noise - Adds random noise to the image.
      + Mosaic - Gives the image a mosaic effect.
      + Rain - Adds rain drops to the image.
      + Toothpaste - Squirts "toothpaste" on to the image.
      By Andrew 'akanewbie' Corcoran <>
      (Part of Tux4Kids' participation in Google Summer of Code 2008)

    * + Confetti - Paints random confetti bits on the canvas.
      + TV - Adds television (CRT) interlacing lines over the image.
      + Rosette - Paints at 3 points on the screen, in a rosette shape.
      + Picasso - Paints at 3 points, in a "Picasso" art style.
      + Wavelets - Waves that go up and down.
      By Adam 'foo-script' Rakowski <>
      (Part of Tux4Kids' participation in Google Summer of Code 2008)

    * + Rails - Draws train tracks / rails over the image.
      + Fisheye - Warps part of the picture, as though seen through a fisheye.
      + Fold - Folds the corners of the image up, like a piece of paper.
      By Adam 'foo-script' Rakowski <> (GSOC 2008),
      with modifications by Bill Kendrick
      and Pere Pujal i Carabantes <>

    * Real Rainbow - Draw an arc-shaped, photorealistic rainbow.
      By Bill Kendrick
      with math help from Jeff Newmiller <>
      Rainbow colors/alpha based on photo from
      photo by Flickr user "Nicholas_T"
      Creative Commons Attribution 2.0 Generic

    * String Edges - Draw string-like patters around the picture.
      String Corner - Draw aligned string-like patterns.
      String 'V' - Draw free-form string-like patterns.
      Tornado (based on Flowers) - Draws a tornado effect onto the picture.
      By Pere Pujal i Carabantes <>

    * Icons for some new Magic Tools
      (Color and White, Fisheye, Mosaic, Picasso, Silhouette, TV and Wavelet)
      Donelle Cory <>

  * Magic Tool Improvememnts:
    * Added "_switchin()" and "_switchout()" functions to Magic tool API,
      to tell Magic tools when they are selected or deselected, or when
      their mode changes..

    * Added "_modes()" function to Magic tool API, so Magic tool plugins
      can tell Tux Paint what modes it accepts, 'paint' or 'fullscreen'.

    * "_click()" function is now given a 'mode' value, corresponding to the
      mode the current tool is in.

    * "_get_description()" function is now given a 'mode' value, and is
      called once for each mode a particular tool claims to support.
      (e.g., "which=0,mode=MODE_PAINT", then "which=1,mode=MODE_PAINT",
      then "which=1,mode=MODE_FULLSCREEN")

    * "Paint" and "Fullscreen" control buttons added to Magic tool
      selector UI.  Can be disabled with "--nomagiccontrols".

    * "Negative", "Tint", "Glass Tile", "Darken" and "Lighten" tools
      can all now affect the entire image.

  * System-Related Improvements:
    * 'savedir' and 'datadir' paths given in configuration files
      (e.g., ~/.tuxpaintrc) now have any environment variables and tildes
      (e.g., "~" for $HOME, or "~username" for 'username's home directory)
      NOTE: Environment variable expansion via 'wordexp()' -- currently
      NOTE: 'printcommand' and 'altprintcommand' options not currently parsed
      for env. vars.

    * On systems that use postscript_print (Linux and other Unix-likes),
      errors when attempting to issue a print command (e.g., trying to use
      "lpr", but that command is not available) should appear in Tux Paint.
      (SourceForge bug #2205528)

  * Build System Improvements:
    * Adhering to Debian & standards regarding .desktop file.

  * Documentation Improvements:
    * Corrected location of config files for Mac OS X in OPTIONS docs.

    * HTML documentation files for the various Magic tools are now
      generated using a PHP script.  Tool details are stored in a PHP array
      (which is easier-to-edit than individual HTML files).

  * Other Improvements:
    * Starter images no longer need to be created with alpha transparency.
      Any solid white will be removed automatically by Tux Paint.

    * White always appears as the first color in the "New" dialog,
      regardless of its position (or even existence) in the color palette.

    * Text tool uses FriBidi to determine when right-to-left characters have
      been typed (e.g., Hebrew) so that they are drawn in the right direction.
      (Mixing RtoL and LtoR works (e.g., Hebrew with numerals))

    * Updated to the latest version (2.27) of DejaVu Sans Regular for UI font.

    * Only loads locale-specific fonts (e.g., Tibetan's "bo.ttf", which is
      unusable with any language _except_ Tibetan) when Tux Paint is running
      in that locale.  (Use "--alllocalefonts" command-line option
      or "alllocalefonts=yes" config. file option, to load all of those fonts,
      regardless of locale setting -- the old behavior.)

    * Font scoring system improved, so that fonts that support the current
      locale (based on special translation strings -- many of which have been
      submitted or improved) 'bubble up' to the top of the Fonts list when
      using the Text tool.
      Pere Pujal i Carabantes <> and
      Bill Kendrick <>
      with help from:
      Albert Cahalan <>,
      Frank Weng <>
      and various translators.

  * New localizations:
    * Shuswap (Secwepemct�n) translation
      Neskie Manuel <>

    * Songhay translation
      Abdoul Cisse <>
      Mohomodou Houssouba <>

  * Localization Updates:
    * Afrikaans translation
      Petri Jooste <>

    * Arabic translation
      Tilo <>

    * Asturian
      Xandru Armesto <>

    * Basque translation
      Juan Irigoien <>

    * Brazilian Portuguese translation
      Frederico Goncalves Guimaraes <>

    * Catalan translation
      Pere Pujal i Carabantes <>

    * Chinese (Simplified) translation
      Huang Zuzhen <>

    * Chinese (Traditional) translation
      Frank Weng <>
      Song Huang <>

    * Danish translation
      Joe Dalton <>

    * Dutch translation
      Bert Saal <>

    * Estonian translation
      Henrik Pihl <>

    * French translation
      Jacques Chion <>

    * Georgian translation
      Gia Shervashidze <>

    * Gujarati translation
      Kartik Mistry <>

    * Greek translation
      Serafeim Kyriaki <>

    * Hebrew translation
      Jorge Mariano <>
      Guy Hed <>

    * Hungarian
      Gabor Kelemen <>

    * Irish Gaelic
      Kevin Patrick Scannell <>

    * Italian translation
      Simona Riva <>

    * Kurdish translation
      Amed �eko Jiyan <>

    * Portuguese translation
      Sergio Marques <>

    * Romanian translation
      Sorin Paliga <>

    * Russian translation
      Nikolay Parukhin <>

    * Slovak translation
      Jaroslav Rynik <>

    * Slovenian translation
      Matej Urban <>

    * Spanish translation
      Gabriel Gazzan <>

    * Swedish translation
      Daniel Nylander <>

    * Tamil translation
      Ravishankar Ayyakkannu <>

    * Ukranian translation
      Serhij Dubyk <>

    * Zapotec (Miahuatlan dialect) name and locale code correction

  * Bug Fixes
    * Was inadvertently calling "magic_switchin()" on Quit. Fixed.
      Dan Shields <>

    * [Ctrl]+[P] keyboard shortcut for printing was not complying with
      option to disable printing capability (e.g., "--noprint")! Fixed.

    * Preventing Tux Paint from dropping out of Fullscreen mode when
      pressing either left or right [Windows] keys
      Note: Works on Windows XP, 2000 and Vista only.
      (If Tux Paint is deliberately switched to the background,
      e.g. using [Alt]+[Tab], the [Windows] keys function as normal until
      Tux Paint is the active application again.)
      John Popplewell <>

    * Directional brushes used to always begin with middle image;
      now this only happens if you click and release, with dragging.
      Jason Ward <>
      Pere Pujal i Carabantes <>

    * Corrected bug in postscript printing: images scaled up onto a large
      canvas printed small, compared to when they're printed at the size
      they were drawn.
      Pere Pujal i Carabantes <>
      Thomas Kalka <>

    * Corrected 'oval' brush shape so that colors came out right.
      (Thanks to Andrei Skoogarev)

    * Improved support for localized Stamp sound effects (e.g., "en_GB" for
      British English now works; only "en" would have worked before).

    * Fixed minor bug that caused Tux Paint to crash when loading
      many fonts (i.e., with the 'sysfonts' option).
      Pere Pujal i Carabantes <> and
      Albert Cahalan <>

    * 'tuxpaint-import' script didn't support files with spaces. Fixed.
      James Le Cuirot <>

    * Fixed display bugs and icon positioning in pop-up dialogs when
      using right-to-left languages (like Hebrew or Arabic).

2008.June.26 (0.9.20)
  * New translations:
    * Asturian
      Xandru Armesto <>
      Mikel Gonz�lez <>

  * Localization Updates:
    * Afrikaans translation
      Samuel Murray (Groenkloof) <>

    * German translation
      Burkhard L�ck <>

    * Greek translation:
      Yannis Papatzikos <>

    * Khmer
      Khoem Sokhem <>
      Auk Piseth <>

    * Lithuanian translation
      Alesis Novik <>

    * Slovakian translation
      Peter Tuh�rsky <>

    * Spanish translation
      Gabriel Gazzan <>

    * Swedish
      Robin Rosenberg <>

    * Ukranian translation
      Serhij Dubyk <>

    * Ukranian documentation
      - EXTENDING.txt
      - FAQ.txt
      - INSTALL.txt
      - OPTIONS.txt
      - PNG.txt
      - README.txt
      Serhij Dubyk <>

    * Vietnamese font removed, until a suitable replacement is found
      (licensing issue)

    * Using proper case in PO filenames (e.g., zh_TW.po instead of zh_tw.po)
      to solve MO installation problem caused by Makefile simplification.

  * Build System Improvements
    * RPM spec updates:
      + Plugin .so files were missing.
      + Separated devel packages in RPM spec.
      + Added dependency on SDL_Pango.
      TOYAMA Shin-ichi <>

    * Placing Tux Paint launcher icon ("tuxpaint.desktop") in
      'applications', rather than 'gnome/apps/Graphics', per
      (SourceForge Bug #1932808, via Ubuntu)

    * Added "Categories" back to the 'tuxpaint.desktop' file
      ("Education," and "Art").  NOTE: You need to edit '',
      otherwise changes will be overwritten the next time 'tuxpaint.desktop'
      is generated!
      (SourceForge Bug #1932808, via Ubuntu)

    * Numerous Makefile improvements:
      + Automated i18n creation; merged back to Makefile, removed Makefile-i18n
      + Support for generic targets; removed beos- & most win32-related targets;
        use of "ARCH_" variables
      + Automated Magic plugin creation; merged back to Makefile,
        removed magic/Makefile
      + Other misc. updates and efficiency improvements
      + Automatic testing for SVG, SDL_Pango, SDL_Mixer and libpng vs libpng12
        libraries; 'oldsvg' and 'nosvg' targets removed; new means for building
        without sound, etc.
      Albert Cahalan <>

    * Made sure Makefile works with NetBSD again.
      Thomas Klausner <>

    * Makefile edited so that Tux Paint can be installed in the absence
      of gettext in the system.
      Arunodai Vudem <>
      Mark K. Kim <>

    * Making Magic Tool source throw fewer compiler warnings.

    * Removed "_APPLE_10_2_8_"-related #include work-arounds, since 10.2.8
      support is unlikely right now. (With Martin F's blessings)

    * Removed "OLD_UPPERCASE_CODE"-based work-arounds, since no longer
      necessary. (With Luc S's blessings on BeOS.)

  * Documentation Improvements:
    * Mentioned that canvas size can be changed in README (so it's not
      just hidden in OPTIONS).

    * Starters section of EXTENDING documentation updated ("New" vs "Open",
      other clean-up, and now directs people to README for determining
      image sizes.)

    * Moved "Starters" from the 'Open' section to 'New', in README.

    * Other minor README improvements.  Added Table of Contents to README.

  * Bug Fixes
    * Legacy Tux Paint images (prior to Tux Paint supporting different
      colored backgrounds) would end up with arbitrary Eraser colors.
      Forcing it to always use white, which was the only background color
      in early versions of Tux Paint.

    * Brushes with large spacing wouldn't be spaced properly when drawn
      from bottom-to-top using the line tool.  Fixed.
      Pere Pujal i Carabantes <>

    * Fixed bug when zooming stamps in video depth other than 32bpp.
      (Float to int casting; also removes compiler errors.)

    * getpixel/putpixel function passed to Magic tools now pays attention
      to the incoming surface, rather than always using the canvas surface,
      to determine bitdepth.  (Fixes bug where some Magic tools, e.g., Grass,
      didn't work right on video depths other than 32bpp.)

    * "Ojibwe" is the proper spelling of the language, accepting that as
      a "--lang" option, too.

    * The variables not declared as extern in SDL_Pango.h have been 
      renamed in dirwalk.c and fonts.c. SDL_Pango.h no longer needs to be
      shipped along with tuxpaint code. Inclusion error message has been added
      for missing libpaper.
      Arunodai Vudem <>
      Mark K. Kim <>

    * "Uppercase only" option support for builds that use Pango to render text.
      (Note: Needs help in some/many? locales.)

    * Fixed issues where some strings not appearing under 'nopango'
      (at least on older Fedora CORE and RedHat).
      TOYAMA Shin-ichi <>

* New Starters:
    * Spirograph
    * Jigsaw
      Caroline Ford <>

2008.February.25 (0.9.19)
  * New Localizations:
    * Australian English
      Chris Goerner, Canonical Ltd, and Rosetta Contributors
      via Caroline Ford <>

    * Azerbaijani
      Jamil Farzana <>

    * Canadian English
      Matthew Lange, Canonical Ltd, and Rosetta Contributors
      via Caroline Ford <>

    * Khmer
      Khoem Sokhem <>

    * Macedonian
      Kliment Simoncev and fleka, Canonical Ltd, and Rosetta Contributors
      via Caroline Ford <>

    * Occitan
      Yannig MARCHEGAY (Kokoyaya), Canonical Ltd, and Rosetta Contributors
      via Caroline Ford <>

    * Zapoteco
      Rodrigo Perez Ramirez and Indigenas Sin Fronteras <>

  * Localization Updates:
    * British English translation
      Caroline Ford <>

    * Chinese (Simplified) README and FAQ documentation
      HackerGene <>

    * Danish translation
      Joe Hansen <>
      Gruppen for Lokalisering af Frit Programmel til Dansk

    * Esperanto translation
      Edmund GRIMLEY EVANS <>

    * Faroese translation
      Lis G�the � J�kupsstovu <>

    * Finnish translation
      Jorma Karvonen <>

    * French translation
      Jacques Chion <>

    * Gujarati translation
      Kartik Mistry <>

    * Russian translation
      Sergei Popov <>

    * Attempted to add a vertical nudge value for tool button labels, based
      on locale.  (Specifically, to prevent Khmer text from overlapping icons.)
      Locale-related code needs some bugfixing before this works right, though.

  * System-Related Improvements:
    * Added "--allowscreensaver" option, which prevents Tux Paint from disabling
      the screensaver or monitor power management while running.
      (Requires SDL 1.2.12; can also be done by setting the
      SDL_VIDEO_ALLOW_SCREENSAVER environment variable to '1' before running
      Tux Paint.)

    * Removed unfinished, unused record and playback code.

    * Added authorization code to permit Fontconfig files to be installed
      on first launch from a non-admin account on Mac OS X.
      Martin Fuhrer <>

    * Fixed possible lockups in fullscreen mode when attempting to print on
      Mac OS X.
      Martin Fuhrer <>

    * Skipping "AppleMyungjo.ttf" when loading fonts on Mac OS X to avoid
      TTF lib. crash.
      Martin Fuhrer <>

  * Documentation Improvements:
    * Brought documentation on Tux Paint canvas size up-to-date, for
      importing photos/etc.

  * Build System Improvements
    * Brought BeOS building up-to-date.
      Begasus <>

    * Sugar (One Laptop per Child XO-1) improvements.
      Albert Cahalan <>

    * Magic plug-ins built with "-fpic" by default.

    * Mac OS X XCode project brought up to date.
      Martin Fuhrer <>
      With assistance from:
      Carlo Gandolfi <>
      Douglas Barbieri <>

  * Other improvements:
    * Recreated "Tux Paint" title art using Inkscape (traced original bitmap).

    * Larger "Tux Paint" title art displayed on larger screens.

  * Bug Fixes
    * Added authorization code to permit Fontconfig files
      to be installed on first launch from a non-admin account on Mac OS X.
      Martin Fuhrer <>

    * Fixed possible lockups in fullscreen mode when attempting to print
      on Mac OS X.
      Martin Fuhrer <>

    * Corrected bug where Shift and Kaleidoscope magic tools would crash
      when sound was disabled.

    * Corrected issues that prevented building Tux Paint without sound
      support (extraneous SDL_mixer library calls).

    * Preventing crash when starter images could not be loaded
      (when trying to flip or mirror them).
      John Popplewell <>

    * Fixed bug on Windows that caused image's metadata file to become corrupt
      after 40 flips or mirrors, which in turn caused a crash on startup.
      John Popplewell <>

    * Fixed bug that prevented rendering of some locales on Mac OS X
      (e.g. Arabic)
      Martin Fuhrer <>

2007.November.17 (0.9.18)
  * Interface Improvements:
    * Improved 'New' and 'Open' interface:
      + 'Open' dialog no longer includes 'Starter' images
      + 'New' now brings up a selection dialog showing 'Starter' images
        and color choices
      + New images can be given solid background colors
        (which the 'Eraser' tool erases to)

    * Sped up prompt animations, and made them 'fly' from their sources
      (e.g., quit confirmation flies from Quit button), when possible.

    * Center image of directional brushes shown.
      ( Bug #1658697)

    * Windows shows printer configuration dialog even when in fullscreen mode.
      If no 'print.cfg' file is found, the dialog is shown.
      Clicking "Cancel" in the printer config. dialog cancels Tux Paint's
      print attempt.
      John Popplewell <>

  * Tool Improvements:
    * Added a 'color picker' entry to the color palette; allows choosing
      from over 50,000 colors.  Used by drawing and Magic tools, as well
      as the new 'New' dialog.

    * Added an Octagon shape to the 'Shapes' tool.

    * Stamps can now be pre-flipped and/or pre-mirrored-and-flipped now
      (in addition to pre-mirrored).
      Use "_flip.png"/"_flip.svg" and "_mirror_flip.png"/"_mirror_flip.png",

    * Any current text being written in the Text tool is applied to the
      picture if 'Print' is clicked.
      (Useful if kids are told to add their name to a picture when they're
      done, right before printing, but they forget to hit [Enter].)

    * All stamps can be forced to start at a particular size
      (on a scale of 0-10, corresponding to their minimum and maximum size,
      which depends on the size of the stamp, and the size of the canvas).
      Use the "--stampsize=..." command-line option or "stampsize=..." config.
      file setting.  Use "default" to allow Tux Paint to decide (its standard

  * Documentation Improvements:
    * Improved --usage output.

    * Added support for "--papersize help" to list papersizes available
      via libpaper.

  * System-Related Improvements:
    * Added an API for developing Magic tools as plug-ins.
      ('.so' shared objects under Linux, '.dll' libraries under Windows, etc.)
      Plugins must provide a number of functions that Tux Paint calls,
      and Tux Paint provides a structure ("magic_api") that includes info.
      (e.g., the running Tux Paint's version number) and pointers to
      useful functions (e.g., getpixel(), putpixel(), etc.)

    * Magic plugin development can be done outside of Tux Paint base
      source-code by using new "tp-magic-config" shell script to query
      for C compiler flags (which points to where "tp_magic_api.h" header
      file is installed) and directories Tux Paint uses (where plugin '.so'
      files should be stored, and where Tux Paint's global data files and
      documentation go).

    * Magic plugin development docs created.  On Linux/Unix, installed into
      /usr/[local/]share/docs/tuxpaint-dev/ by default.  (HTML and plaintext.)

    * tp-magic-config man page created.

    * Ported existing magic tools to the new Magic tool plug-in system:
      (Blur, Fill, Lighten, Darken, Mirror, Flip, Rainbow, Blocks, Chalk,
      Grass, Negative, Tint, Smudge, Drip, Cartoon, Brick (large & small))

    * Some Magic tools that apply an affect once per click-and-drag no
      longer recalculate the effect on pixels that have already been
      affected (until mouse button is released and clicked again).
      Improves performance, especially where heavy math is used.

    * Magic tool documentation now split into separate files, and referenced
      (as a directory) from README, so that users can find docs to any
      additional tools (ones not included by default with Tux Paint) that are

    * Began adding support for using SDL_Pango, a wrapper to Pango,
      a library for layout and rendering of text, with an emphasis on
      internationalization.  (The hope is to improve support for languages
      that SDL_ttf doesn't support well; e.g., Arabic and Telegu.)

      TTF_Font structs and some functions were replaced by a new
      TuxPaint_Font struct and function, which wraps around either TTF_Font
      or both a TTF_Font and a SDLPango_Context, depending on whether
      SDL_Pango is being used, and how the font was loaded.

      Can be disabled (will use older SDL_ttf-based code only) by building with
      "make nopango".  Note: A modified SDL_Pango.h header file is included
      with Tux Paint, to work around a compile issue with SDL_Pango 0.1.2's.

    * Print configuration is now saved between Tux Paint sessions on Mac OS X.
      Martin Fuhrer <>

    * Saved-files directory and data directory (brushes, starters, etc.) can
      now be different.  Use "--datadir" option to override default data
      directory, similar to "--savedir" has been for overriding save directory.

    * Windows installation (Innosetup .iss file) more silent, to help it
      work with WPKG software deployment tool.  [SourceForge Bug #1787000]

    * Lockfile can be disabled via options file ("nolockfile=yes") now, too.

  * New Brushes
    * Sparkles (based on old Magic Tool)

  * New Starters:
    * Canada map
      Ed Monty <>

    * Japan map
      Ed Monty <>

  * New Magic tools:
    * Calligraphy
    * Distortion
    * Emboss
    * Flower
    * Foam
    * Glass Tile
    * Kaleidoscope
    * Light
    * Metal Paint
    * Ripples
    * Shift
    * Waves
    (Flower and Calligraphy utilize Bezier curve example code from
    (Glass Tile, Emboss, Flower, Light and Ripples sounds based on sounds
    from KDE 3.5.7; )
    (Metal Paint sound based on sound from Engima; )
    (Waves sound based on sound from Super Tux; )
    (Kaleidoscope sound based on water in a bathtub, by
    Caroline Ford <>, GFDL)
    (Shift sound based on London Underground train, by
    Caroline Ford <>, GFDL)

  * New Localizations:
    * Esperanto translation
      Edmund GRIMLEY EVANS <>

    * Traditional Chinese input method
      Song Huang <>

    * Ojibway translation
      Ed Montgomery <>

    * Thai input method
      Ed Montgomery <>

    * Wolof translation
      Haby Diallo <>

  * Localization Updates:
    * Afrikaans translation
      Petri Jooste <>

    * Brazilian Portuguese
      Frederico Goncalves Guimaraes <>

    * British English translation
      Caroline Ford <>
      Karl Ove Hufthammer <>

    * Catalan translation
      Pere Pujal i Carabantes <>

    * Chinese (Simplified) README documentation
      HackerGene <>

    * Chinese (Traditional) README documentation
      Song Huang <>

    * Chinese (Traditional) OPTIONS documentation
      Song Huang <>

    * Dutch translation
      Freek de Kruijf <>

    * French translation
      Jacques Chion <>

    * German translation
      Burkhard L�ck <>

    * Gujarati translation
      Kartik Mistry <>

    * Hungarian
      Gabor Kelemen <>

    * Italian translation
      Flavio "Iron Bishop" Pastore <>

    * Japanese translation
      TOYAMA Shin-ichi <>

    * Mexican Spanish translation
      Ignacio Tike <>

    * Norwegian Nynorsk translation
      Karl Ove Hufthammer <>

    * Norwegian Bokm�l translation
      Karl Ove Hufthammer <>

    * Polish translation
      Andrzej M. Krzysztofowicz <>

    * Russian EXTENDING, INSTALL, PNG and FAQ documentation
      Sergei Popov <>

    * South African English translation
      Caroline Ford <>

    * Slovenian translation
      Matej Urban <>

    * Spanish translation
      Gabriel Gazzan <>

    * Swedish
      Robin Rosenberg <>

    * Vietnamese translation
      Clytie Siddall <>

    * Walloon translation
      Pablo Saratxaga <>

    * Improved comments near gettext() calls in the source code, to provide
      useful descriptions of each string in the POT (translation template).

  * Build System Improvements
    * Removed old Microsoft Visual Studio C++ files (in 'visualc')

    * Created a new "win32" folder with things from 'visualc' that are still
      being used ('libdocs', 'resource.h', 'resources.rc' and 'tuxpaint.iss')

    * Windows build updates for building Tux Paint with Pango-support.
      John Popplewell <>

    * Created a separate "win9x" target (for Windows95, Windows98 & WindowsME)
      which will have reduced functionality compared to more modern Windowses.
      John Popplewell <>

  * Bug Fixes
    * PostScript scale and translation values were being localized
      (so, e.g., "N.M" would be "N,M") due to use of printf().  Fixed.

    * Windows printing now attempts to use default printer if
      a "print.cfg" file does not exist.  (Fixes bug where Tux Paint would
      not print until after you've issued an [Alt]+'Print' at least once.
      SourceForge Bug #1748705.)

    * Fixed the scaling problem when printing on Windows.
      The image is scaled to fit whilst preserving the aspect ratio.
      It is centered horizontally and vertically aligned at the top of the page.
        (On Win9x/ME I'm getting a slight problem with the left and right
        margins when printing to our samba/cups shared printer which is making
        the Epson Stylus Color 860 emulate a post-script printer (I think).
        If I print to a file and use the HP LaserJet 6P/6MP PostScript driver
        it looks OK. I'm hoping it is a driver problem on my system.)
      John Popplewell <>

    * Prevented crash when clicking 'Open' or 'Erase' button in Open dialog
      after clicking an empty file slot.
      (SourceForge Bug #1787005)
      Thanks to Tomasz Gloc for reporting and investigating this one.

    * Fixed installer 'groupname' bug and missing icon on 'Tux Paint on
      the web' shortcut (on Windows XP).
      John Popplewell <>

2007.July.1 (0.9.17)

  * Interface Improvements:
    * Mouse cursor can be hidden (e.g., using "--hidecursor"), useful on
      touchscreen devices like tablet PCs or the Nokia Mameo devices.
      (Addresses SourceForge RFE #1673344)

    * Added an "autosave" option that assumes you wish to save the current
      picture during Quit.  (Additionally, after saving during Quit or Open,
      it no longer shows 'success' pop-up that must be dismissed.)
      (Addresses SourceForge RFE #1680500)

    * Screen size can be rotated using the "--orient=portrait" command-line
      option or "orient=portait" configuration file setting.  This swaps
      the width and height values used for window or screen size.
      (e.g., "tuxpaint --fullscreen --1024x786 --orient=portrait" will
      run Tux Paint in 768x1024 mode.)  Useful for tablet PCs.
      Note: override previously-set option with "--orient=landscape" or

    * Stamp sound effects and stamp descriptive sounds can be re-played
      using small buttons that appear over Tux, at the lower lefthand corner.
      (They disappear/reappear when sound is muted/unmuted via [Alt]+[S].)

    * "Open" dialog lists saved drawings first, then local starter images,
      then system-wide starter images, rather than the other way around.
      (Since there are now so many more starters.)

    * All compile-time options now listed in version output, using a new
      "--verbose-version" (or "-vv") command-line argument.

  * Tool Improvements:
    * Input Method Framework, with implementations of Korean (Hangul 2-Bul)
      and Japanese (Romanized Hiragana and Romanized Katakana) input methods.
      (Should be extensible to other languages.)
      (Addresses SourceForge Bug #1070414)
      Mark K. Kim <>

    * Stamps now supports SVG vector-based graphics!
      (Only SVG versions of stamps are loaded, when both PNG and SVG
      variations are found.)

      * By default, uses librsvg-2 and libcairo2 (requires glib & much more).
      * Use "make oldsvg" to build with libsvg and libcairo1 (older libs).
      * Use "make nosvg" to completely disable SVG support.

    * Stamps now shown in groups.  Use previous & next buttons to
      cycle through stamp categories.
      (Addresses SourceForge Feature Request #1070394)

    * Bilinear interpolation (smoothing) is done to small bitmap (PNG)
      stamps when they are scaled up.
      (Based on example code by Christian Graus: )

    * New Brushes:
      Caroline Ford <>
      + Blob
      + Chisle
      + Cut-out square in diamond
      + Cut-out star in circle
      + Diamond
      + Five-petal flower (large and small)
      + Six-petal flower (large and small)
      + Heart
      + Hexagon
      + Lozenge
      + Oval
      + Pentagon
      + Sphere
      + Spiral
      + Splat
      + Star
      + Triangle (up and down)
      + Arrows (directional)
      + Triangles (directional)

    * New Starter Images:
      + 10x10 grid
      + 20x20 grid

      From Wikipedia, prepared for Tux Paint by:
      Caroline Ford <>
      + World maps
      + United States of America map
      + Maps from Wikipedia

      + Caracassone, France
        Pere Pujal i Carabantes <>

  * System-related improvements:
    * When running in fullscreen mode, you may now ask Tux Paint to display
      at the screen's (more precisely, the operating system's) current
      resolution.  Either use both "fullscreen=yes" and "native=yes" in the
      config file, or "--fullscreen --native" on the command-line.

    * Split PostScript printing code (for Linux/Unix/etc.) into its own
      source file.  (Mac OS X, Windows and BeOS all had their own.)

    * PostScript printing code rewritten, based on NetPBM's 'pnmtops' tool
      by Jef Poskanzer.

    * PostScript printing now uses libprint to determine papersize, and
      scale and position image accordingly.  (No longer depending on printer
      to figure out its own paper size; not the recommended method.)
      Thanks to Henry House <>

    * "--papersize" option added to allow PostScript printing code to
      use a different size than libpaper reports as the user's or system's

  * Documentation Improvements:
    * Discussed SVG Stamps in "Extending Tux Paint."

    * Created an "SVG.txt" document, covering SVG software.
      Caroline Ford <>

    * Mentioned descriptive sounds (e.g., "stamp_desc_ll.ogg") in "Extending..."

    * Listing new website URL.

    * Expanded MinGW/MSYS GCC compilation instructions for building Win32.

    * Example tuxpaint.conf has been updated to include newer options.

    * Briefly documented translation (gettext PO catalogs) in "Extending..."

    * Briefly documented alternative input methods (IM character map files)
      in "Extending..."

    * Cleaned up FAQ a little.  Added info on "Where are my pictures?"
  * Bug Fixes:
    * Tux the Penguin sound effects were not working; fixed.

    * Text tool's text would be applied to canvas when clicking any tool
      buttons.  Fixed so that it is not applied when tool changes aren't
      happening (e.g., Print, Quit, Open, Save).

    * Text tool's text would disappear until you click or type,
      after a dialog has been dismissed.  Fixed.
      (Addresses Bug #1698855)

    * No longer disabling screensaver (if the system's libSDL supports
      it via "SDL_ALLOWSCREENSAVER" environment variable).

    * "use_print_config" option defaults to 'yes' on Windows, again.
      John Popplewell <>

    * Reordered font-loading to happen after locale switch occurs, to
      pick up font-organizing string translations (e.g., "Aa", "qx", etc.).
      Attempting to help address issue of Latin-only fonts being available
      in non-Latin locales -- seemed to help with Norwegian.

    * Fixed inability to type into Mac OS X print dialog.
      Martin Fuhrer <>

    * Fixed Mac OS X endian issue that caused Intel-based Macs to print
      with the wrong colors.
      Martin Fuhrer <>

    * Added automatic scaling and orientation of images when printing on
      Mac OS X.
      Martin Fuhrer <>

    * Added "New", "Open", "Save", "Print", "Page Setup", "Undo" and "Redo"
      items to Tux Paint menu on Mac OS X.
      Martin Fuhrer <>

    * Using standard Mac OS X arrow cursor, rather than custom Tux Paint
      cursor (for UI consistency on OS X).
      Martin Fuhrer <>

  * Compiling, porting and packaging updates:
    * Tweaks to allow it to run on the One Laptop Per Child (OLPC) "XO".
      Albert Cahalan <>

    * Updates for improved Nokia 770 and N800 (Maemo) Internet tablet support
      (added icon to task manager when Home button is pressed,
      hid on-screen mouse cursor, disabled Print and Text tools)
      Alessandro Pasotti <>

    * Added more Nokia Maemo-specific files to the "hildon" folder
      (DEBIAN package files, updated .desktop and Tux Paint configuration
      files, D-BUS service file), to make packaging a Tux Paint .deb for
      Nokia 770 and N800 devices easier.  (Note: Makefile needs updating
      and/or a compile-and-package script needs to be created.)
      Alessandro Pasotti <>

    * Lockfile (that prevents multiple launches) is now stored
      in the user's local temporary directory on Windows
      (usually 'C:\Documents and Settings\{username}\Local Settings\Temp').
      This allows multiple users on different desktops to use a shared
      save directory on a network drive, without having to disable the
      lockfile feature, or wait for the lockfile to expire.
      (Addresses SourceForge Feature Request #1681125)
      John Popplewell <>

    * Localization build, install and uninstall targets moved into
      a separate "Makefile-i18n", to reduce clutter in main Makefile.

  * New Translations:
    * Latvian
      Raivis Strogonovs <>

    * Telugu -- includes "te.ttf" font
      Pavithran Shakamuri <>

    * Twi
      Joana Portia Antwi-Danso <>
      Samuel Sarpong <>

  * Translation Updates:
    * Arabic
      Khaled Hosny <>

    * Basque
      Juan Irigoien <>

    * Brazilian Portuguese
      Adorilson Bezerra de Araujo <>
    * British English
      Caroline Ford <>

    * Bulgarian
      Yavor Doganov <>

    * Chinese (Traditional)
      Wei-Lun Chao <>

    * Czech
      tropikhajma <>
      Vaclav Cermak <>

    * Danish
      Mikkel Kirkgaard Nielsen <>

    * Dutch
      Freek de Kruijf <>

    * Faroese
      Lis G�the � J�kupsstovu <>

    * Gujarati
      Kartik Mistry <>

    * Irish Gaelic
      Kevin Patrick Scannell <>
    * Japanese
      TOYAMA Shin-ichi <>

    * Lithuanian
      Gintaras Gostautas <>

    * Portuguese
      Helder Correia <>

    * Polish
      Andrzej M. Krzysztofowicz <>
      Michal Terbert <>

    * Russian
      Sergei Popov <>

    * Russian README & OPTIONS documentation
      Sergei Popov <>

    * Spanish
      Gabriel Gazzan <>

    * Swedish
      Daniel Nylander <>

    * Thai
      Ouychai Chaita <>

    * Vietnamese
      Clytie Siddall <>

2006.October.19 (0.9.16)

  * Interface improvements:
    * New slideshow tool! ("Slides", available in "Open" dialog.)
      Select each image to play, in the order you want them, and use the
      sliding scale to adjust speed, then click "Play" to begin the show.

      + The "Next" button and [Space], [Enter] and [Right Arrow] keys
        advance to the next slide manually.  (Clicking anywhere in the image
        advances, as well.)
      + The [Left Arrow] key goes to the previous slide.
      + The "Back" button and [Escape] ends playback.

      Note: Use slowest (leftmost) speed setting to disable automatic
      slide advancement.

    * Modified "Text" tool so that it correctly handles the 16-bit unicode
      characters that SDL sends.
      (The text buffer is held internally as an array of wchar_t, and
      makes uses of various wide-character functions.  It is converted
      back into 16-bit unicode characters to satisfy SDL_ttf.  Tested on
      Windows and Linux.)
      John Popplewell <>

    * tuxpaint-import shell script now examines Tux Paint's configuration
      file (first in /usr/local/etc/tuxpaint, then /etc/tuxpaint, then $HOME)
      for the window size settings and saved-file directory options
      (rather than assuming a 640x480 screen and images saved in

      Discovered (or assumed) window size and directory settings are shown
      when tuxpaint-import is first run (even with no arguments).

    * "startblank" option added, to cause Tux Paint to always start with
      a blank canvas (rather than loading the most-recently-edited image).

    * In windowed mode, Tux Paint tries to open its window in the center
      of the screen (if supported by the OS or window manager).

    * Improved some dialog text, including labels for "Yes/No" buttons.
      (Thanks to Vashti for suggestions.)

    * Sound effects take advantage of stereo.  (e.g., paint brush sounds come
      more from the left speaker when painting on the left.)

    * Stamp sound effects may be in either OGG or WAV format.

    * Stamps may now include a second sound effect, used as a spoken
      (stampname_desc.ogg or .wav and localized stampname_desc_ll.ogg or .wav)

    * The color palette may now be overridden by creating a text file
      containing color descriptions, and using the "colorfile" option.

    * Default colors are duplicated, as an example, in docs/default_colors.txt.

  * Tool improvements:
    * Magic Sparkles can now be different colors.

    * Magic Negative, Fade, Darken, Tint and Cartoon all now apply with a
      circular shape, rather than a square.

    * Magic Grass has a sound effect.
    * Round erasers added.

    * Brushes may be animated.  (Implements RFE #1522694)
      (Create an image (W*N) x H in size (where N is number of frames),
      then create a ".dat" file for the brush, containing the line "frames=N".

    * Animated brushes can be randomized.  Use "random" in its ".dat" file.

    * Brushes can include directional variations.  (Implements RFE #1522694)
      (Create an image (W*3) x (H*3) in size, then create a ".dat" file
      for the brush, containing the line: "directional".  Each of the 9
      sectors corresponds to 8 different directions, and center.)

    * Brushes can include spacing information.
      (Create a ".dat" file for the brush, containing the line "spacing=N".

  * New Brushes:
    * Vines (animated)

    * Angle Lines (directional)

    * Squirrel (animated, directional)
    * Kuro Neko ("Black Cat") (animated, directional)
      (Based on the cat from 'xneko' by Masayuki Koba)

  * New Starter Images:
    * Shipwreck
      Jim Trice <>

    * Tux the farmer
      Jim Trice <>

    * Street
      Pere Pujal Carabantes <>

    * Chess board
      (From XBoard: )

    * Nagasaki
      Jim Trice <>

  * New Translations:
    * Arabic -- includes "ar.ttf" font
      Khalid Al Holan <>

    * Faroese
      Lis G�the � J�kupsstovu <>

    * Gujarati -- includes "gu.ttf" font
      Kartik Mistry <>

    * Ndebele
      Vincent Mahlangu <>

    * Scottish Gaelic
      Niall Tracey <>

    * South African English

    * Tagalog
      Technical assistance by Ed Montgomery <>

    * Tibetan -- includes "bo.ttf" font
      Dawa Dolma
      Technical assistance by Ed Montgomery <>

    * Venda
      Shumani Mercy Nehulaudzi <>

    * Xhosa
      Dwayne Bailey <>

  * Translation Updates:
    * Using DejaVu Sans Condensed as default UI font now.

    * Making sure default UI font is used for untranslated strings.
      (Hindi font, for example, didn't seem to have roman characters.)

    * Brazilian Portuguese
      Fred Ulisses Maranhao <>
    * Catalan
      Pere Pujal Carabantes <>

    * Chinese (Traditional)
      Wei-Lun Chao <>

    * Finnish
      Niko Lewman <>
    * French
      Jacques Chion <>
    * Galician
      Leandro Regueiro <>

    * German
      Burkhard L�ck <>

    * Greek
      Sokratis Sofianopoulos <>

    * Hungarian
      Gabor Kelemen <>

    * Italian
      Flavio "Iron Bishop" Pastore <>

    * Italian AUTHORS and INSTALL documentation updates
      Flavio "Iron Bishop" Pastore <>

    * Japanese
      TOYAMA Shin-ichi <>

    * Japanese font shipped in Tux Paint now includes common educational Kanji

    * Korean
      Mark K. Kim <>

    * Polish documentation
      Pawel Polak <>

    * Serbian
      Aleksandar Jelenak <>

    * Swedish
      Daniel Nylander <>
      Robin Rosenberg <>

    * Spanish
      Pablo Pita <>
      Gabriel Gazz�n <>

    * Thai
      Ouychai Chaita <>

    * Turkish
      Doruk Fisek <>

    * Vietnamese
      Clytie Siddall <>

    * Replaced old Vietnamese font (questionable license)
      with Bitstream Vera-based "Verajja" font, by Bhikku Pesala.

    * Including a scaled down version of the Japanese TrueType font (ja.ttf),
      that includes only the characters uses by Tux Paint.
      For info, see: fonts/locale/ja_docs/
      TOYAMA Shin-ichi <>

  * Documentation Improvements:
    * Moved "Extending Tux Paint" into its own separate document.

    * Created an Advanced Stamps HOWTO (documenting how to create
      stamp PNGs that scale well without edge fringing).
      Albert Cahalan <>

  * Compiling, porting and packaging updates:
    * Ran source code through "indent -nbfda -npcs -npsl -bli0".

    * "DESTDIR" patch is no longer needed.
      TOYAMA Shin-ichi <>
    * Split parts of "tuxpaint.c" into separate source files:
      + "compiler.h": Compiler-version-specific definitions.
      + "cursor.c/h": XBM bitmap cursor #includes and functions.
      + "debug.h": Defines whether debugging printf() calls should be enabled.
      + "dirwalk.c/h": Callback functions for recursive directory traversal.
      + "fonts.c/h": Font loading/grouping/discarding variables and functions.
      + "floodfill.c/h": 'Fill' tool's flood-fill routine.
      + "get_fname.c/h": Functions for constructing preferred file paths.
      + "i18n.c/h": Language-related variables, enums, arrays and functions.
      + "pixles.c/h": 'getpixel' and 'putpixel' functions & function pointers.
      + "playsound.c/h": Sound-playing function.
      + "progressbar.c/h": Animated progress bar function.
      + "rgblinear.c/h": RGB-to-linear float and binary data, and functions.

    * Made sure GPL notice was included in all other source files.

    * Added script to create "locale" during Build process in Xcode on
      Mac OS X.

    * Made some Xcode project settings work better with 'default, out of
      the box' OS X 10.4, Fink and XCode 2.1.

    * Factor out general CFLAGS to facilitate packaging.  Compress man page -9.
      Ben Armstrong <>

    * Building with "-ffloat-store" in CFLAGS (instead of "-ffast-math")
      to allow stamp tinting code to work properly.
      Thanks to: Albert Cahalan <>

    * Silencing any errors when running kde- or gnome-config during install.

    * Implemented strcasestr() for systems which don't have it.

  * Bug Fixes:
    * Was not looking in personal folder for starters
      (e.g., "~/.tuxpaint/starters/" on Linux).  Fixed.  Adds a new boolean
      to the save image's ".dat" file, denoting whether the starter is from
      the personal folder (1) or not (0, or no data, as in prev. version).

    * Tux Paint's scalable icon (tuxpaint-icon.svg) caused Gnome panel to
      go wild (due to "libarts" bug?).  Changed a vector value which apparently
      fixes it (and caused no noticable changes to the icon).
    * Added GetSystemFontDir() and amended WIN32 code so that the system fonts
      option work correctly on Windows.

    * Properly handles a variety of PNG formats when loading Starter images
      and turning them into thumbnails.  (Tested with indexed PNGs, and
      PNGs where RGB colors were stored, even where pixels were
      fully transparent.)

    * Clicking between the rightmost color and the edge of Tux Paint's display
      would crash Tux Paint.  (Fixes DBTS #352556)

    * Bottom of grass would initially be clipped due to incorrect canvas
      updating.  Fixed.

    * Improved handling of scroll button state to prevent it from getting
      into an infinite loop.  (Fixes bug #1396706)

    * Spaces in filenames were not working in ''.
      (Fixes bug #1527884)
      James Le Cuirot

    * Was always using the first brush when drawing shapes.
      Now forcing it to always use "round_03.png", since brushes are
      sorted alphabetically, and some new brushes appear before round ones!

2005.November.26 (0.9.15b)

  * Bug Workaround:
    * Japanese TrueType Font did not like being rendered at 16pt, so
      reverted to larger, 18pt size.
      (Other fonts were fine.  I suspect it is a SDL_ttf or FreeType bug.)

  * Documentation update:
    * "Thick" and "Thin" magic tools were removed, so removed mention
      of them from README documentation.

    * Source files and documentation files tagged with CVS Id tags
      for easier version tracking.
      Mark K. Kim <>

  * Locale update:
    * Georgian font is only ~50KB, so added to main Tux Paint archive.

2005.November.25 (0.9.15)

  * Speed improvements:
    * Splash screen appears earlier, along with the version info and cursor.
      Albert Cahalan <>

    * Normal start-up time greatly reduced by splitting out font loading
      into a separate process. You only wait if you want the text tool.
      Albert Cahalan <>

    * added eat_startup_events in an attempt to make early escape possible
      (perhaps the user started Tux Paint by mistake, or the system is
      swapping itself to death) TODO: use do_quit if fully started
      Albert Cahalan <>

    * Normal start-up time greatly reduced by avoiding most stamp work.
      Stamp data is loaded as needed. (TODO: add pre-fetch process)
      Albert Cahalan <>

    * Memory usage down by not keeping stamps in memory. Tux Paint's
      size dropped by about 100 MB. :-)
      Albert Cahalan <>

  * Stamp tool improvements:
    * Greatly improved stamp outlining (to avoid empty rows or columns
      and other artifacts) by using a thick stippled pattern.
      Albert Cahalan <>

    * Stamp tinting code changed.  Stamp ".dat" files may include
      "tinter=anyhue", "tinter=narrow", "tinter=normal" or "tinter=vector",
      describing how the contents of the stamp should be tinted. (See README)
      Albert Cahalan <>

    * Added "scale" keyword (in stamp ".dat" files) for high-resolution stamp
      images.  (Allows stamps to be made larger without losing quality.)
      Albert Cahalan <>

    * More range for stamp sizes. Can't hang off edge in both dimensions.
      Albert Cahalan <>
  * New Magic tools:
    * "Smudge" (pushes the colors around like wet paint)
    * "Grass" (makes grass, the painless way)
    * "Bricks" (makes bricks, the painless way)
      Albert Cahalan <>
    * "Darken" (opposite of "Fade"),
    * "Tint" (changes colors of parts of the picture), and
    * "Cartoon" (makes parts of the picture look like a cartoon or comic)
      Bill Kendrick <>
  * Magic tool improvements:
    * Magic blur effect now gamma-aware, circular, and modifying all points
      within the brush instead of just 25% of them.
      Albert Cahalan <>
    * Magic blocks effect now gamma-aware and using all 16 (not just 4)
      source pixels.
      Albert Cahalan <>

  * Text tool improvements:
    * Attempts to pick up the system's fonts, too!
      (Disable loading system fonts with "--nosysfonts" or "nosysfonts=yes".)
      Albert Cahalan <>

    * Italic, bold and sizes are now controlled with separate buttons
      (similar to flip, mirror and sizes for Stamps).
      Albert Cahalan <>

    * [Tab] key can be used to begin a new text entry to the right of the
      current one (e.g., for writing a sentence with each word in a different

    * A typewriter-style bell rings when the text gets close to the edge of
      the canvas.

  * Improved support for varying image sizes:
    * Somewhat better treatment of wrong-sized images when loading them.
      It works well for typical kid drawings, as long as objects don't
      touch the edge of the screen. (the earth and sky -- and anything
      else at the edge -- get extended to fill the space) This could be
      better done with wavelets I think, or some vector-based notion of
      what lies at the edge of the screen. Starters, as usual, need work.
      Albert Cahalan <>

    * Fixed display corruption in 'Open' dialog when saved images are
      from a larger display size.
      Albert Cahalan <>

  * System-related improvements:
    * Added larger screen size support:
      1024x768, 1280x1024, 1400x1050, 1600x1200
      TOYAMA Shin-ichi <>

    * Arbitrary window sizes allowed (--XXXXxYYYY); useful for more modern
      displays (e.g., Mac monitors)
      Albert Cahalan <>
    * Now defaults to 800x600 screen size.  Welcome to the future. ;^)

    * Switched from using 16bpp display surfaces to 32bpp, to reduce
      discoloration. ("#define" options exist at the top of src/tuxpaint.c
      to choose which you want.)
      Albert Cahalan <>

    * Now uses "AUDIO_S16SYS" when initializing audio system
      (on Linux/Mac/BeOS); helps sound under Linux on Mac hardware.
      Albert Cahalan <>

    * Made sure user directory existed before trying to create lockfile
      (it might not be there the very first time we run Tux Paint).
  * Interface improvements:
    * Made UI fonts a little smaller.  Adjusted position of icons and text
      in tool buttons.

    * Stamp scaling is now controlled by a set of mini "slider"-like buttons.
      The "Shrink" and "Grow" buttons didn't give any feedback as to what
      the current size was.

    * "New" always available.
      (Prepping for when "New" will give options for background colors, etc.)

    * Middle and right mouse buttons no longer do anything.
      (No reason to teach kids that all the buttons do the same thing!)

      Note: This can be disabled (resulting in the old-style support for
      all three buttons meaning the same thing) by setting the
      "--nobuttondistinction" option.

    * If middle or right mouse buttons are clicked too much, a pop-up
      appears explaining to click the left button, and includes a small
      picture of a mouse with the left button being 'clicked.'

    * Thumbnail of selected image now shown on "Erase this image?"
      confirmation pop-up.

    * Printer icons on "Print now?" and "You can't print yet" pop-ups.

    * Icons shown in "Save Over?" and "Save [before opening]" pop-ups.

    * Improved 'rubber band line' and stamp outline colors ("XOR" code)
      to make such lines easier to see on certain colors.
    * The "noquit" option now prevents the [Escape] key from quitting
      Tux Paint.  ([Alt]+[F4] and the window close button still work.)

    * Tux Paint can now be quit with [Shift]+[Control]+[Escape], as well.
      (Useful for when "noquit" and "fullscreen" are set, and the
      [Alt]+[F4] combination is not possible.)

    * Gave Tux the Penguin a voice (e.g., during prompts)
      Voice: Daniel 'TuxthePenguin' Alston <>

    * Sound effects can be muted/unmuted while the program is running
      by pressing the [Alt]+[S] keys.  (Note: does not enable sounds if
      "nosound" is set in configuration file or via command-line.)

    * Scroll wheel can be used to scroll through thumbnails in Open dialog.

  * Printing improvements:
    * Now printing directly via Postscript.
      (So print command can change from "pngtopnm | pnmtops | lpr" to
      simply "lpr").
      Albert Cahalan <>
    * Holding [Alt] while clicking 'Print' on Unix/Linux can now bring up
      a print dialog. (Defaults to KDE's 'kprinter'.)  Can be altered
      via 'altprintcommand' in ~/.tuxpaintrc.

    * Printer dialog (and 'altprintcommand') can be forced to come up
      all the time (not just when [Alt] is held) via a new
      "--altprintalways" command-line option (and "altprint=always" config.
      file option).

    * Similarly, printer dialog can be prevented ([Alt] key has no effect)
      via a new "--altprintnever" option (and "altprint=never").
      (Default (where [Alt] must be held to show dialog) is "altprintmod".)

  * New Starter Images:
    * Rocket

  * Other improvements:
    * Added beige and tan colors.  Changed "Lime" to "Neon Green."
      Renamed "Fuschia" to "Magenta."  Tweaked some color values.
      Moved grey/silver next to black/white.
      Albert Cahalan <>
    * getpixel function now considers edges as extending to infinity
      (to improve Magic tools like 'Blur')
      Albert Cahalan <>

    * getpixel and putpixel functions split into four, one for each
      color depth (1, 2, 3 or 4 bytes per pixel), to reduce BPP tests
      when reading or drawing pixels.

    * drawtext_callback() prototype forces useless arg.; voided it
      Albert Cahalan <>

    * Simplified strip_trailing_whitespace() function; now O(n)
      Albert Cahalan <>

    * Increased maximum number of stamps that can be loaded at once from
      256 to 512.
      Albert Cahalan <>

    * Splash screen scales to different window sizes.

  * Bug fixes:
    * tuxpaint-import shell script created temporary files with predictable
      names in "/tmp", leaving it open to symlink attacks.  Now creating
      temp. files in Tux Paint's default save directory.
      Ben Armstrong <>

    * Untranslated text in right-to-left languages (e.g., Hebrew) are no
      longer displayed backwards.

    * [Alt] to bring up print dialog had to be held while hitting 'Ok' to
      confirm print.  This was a bug!  Fixed!

    * Lockfile now cleared upon exit, allowing Tux Paint to be re-launched
    * Hotspot for 'tiny' crosshair mouse pointer shape is now
      correct in 16x16 size (used on Mac OS X).

    * Delete thumbnails from ".thumbs" subdirectory.
      Marcin 'Shard' Konicki <shard at>

    * now uses single brackets when testing for "--help".
      (Apparently, the "[[...]]" version didn't work some places.)
      Jeff Smith <>

    * Failed to install default locale fonts.  Fixed.
      kyjo44 <>

    * Scroll wheel motion was being perceived as clicks in Open dialog. Fixed.

    * Thumbnail cursor could fall of screen when scrolling in Open dialog.

  * Compiling, porting and packaging updates:
    * Added support for system and user configuration files on Windows.
      (The system 'tuxpaint.cfg' file is in the same directory as the
      executable, the user 'tuxpaint.cfg' file is in the 'savedir'
      location, e.g. 'C:\Documents and Settings\username\Application
      John Popplewell <>

    * There's no longer a need to remove CVS-related things in 'tuxpaint.spec'.
      TOYAMA Shin-ichi <>

    * Added "" shell script, which can be used in Makefile
      for basic compiler option tests
      (e.g., is "-Wdeclaration-after-statement" available?)
      TOYAMA Shin-ichi <>

    * Created 'release' Makefile target, which generates a .tar.gz
      (sans CVS-related files) based on the clean source directory.

    * Moved "VER_VERSION" to Makefile (where 'release' can pick it up),
      and made "VER_DATE" a dynamically-generated Makefile variable.

    * Added additional Windows-only search paths for stamps, fonts and brushes.
      John Popplewell <>

    * Created Makefile to convert HTML documentation into plaintext using Links
      (I can never remember the precise options!)

    * *_PREFIX variables in Makefile no longer need trailing '/'.

    * Added "Categories" to the 'tuxpaint.desktop' file
      ("Education," "RasterGraphics," "Graphics" and "Art").
    * Added 'win32' target to Makefile, for use on Windows with MinGW/MSYS.
      John Popplewell <>

    * Now links with 'shlwapi.dll' so that it works on Windows 98.
      John Popplewell <>

    * Added GetDefaultSaveDir(suffix) which fetches the default
      "Application Data" path for the current user from the Windows registry,
      appends the suffix, creates the subdirectory if it doesn't exist,
      then returns a string from the heap.  This path is the new default
      "savedir" location on Windows. Tested on 98/2K/XP.
      John Popplewell <>

    * Switching from NSIS to InnoSetup 5 installer generator for Windows.
      John Popplewell <>

    * Added a Windows registry entry 'Install_Dir' in either
      HKCU\Software\TuxPaint or HKLM... depending on whether the user is
      restricted (or doing a current user-only install) or is installing
      for all users.
      John Popplewell <>

    * Added ability to detect previous install directory entries in the
      Windows registry.  Searches for entry in HKLM and HKCU sections.
      John Popplewell <>
    * BeOS code updates.
      Marcin 'Shard' Konicki <shard at>

    * Updated BeOS Makefile.
      Marcin 'Shard' Konicki <shard at>

    * Added BeOS resource file (src/tuxpaint.rsrc)
      Marcin 'Shard' Konicki <shard at>
    * Replaced all instances of absolute paths with macro counterparts in
      "tuxpaint.spec" file.
      Richard June <rjune[AT]>
    * Reset buildroot in "tuxpaint.spec" to incorporate username of the
      Richard June <rjune[AT]>
    * Added "PKG_ROOT" variable to Makefile, and "tuxpaint.spec" file,
      for Tux Paint RPM building ease.
      TOYAMA Shin-ichi <>

    * Fixed to compile on old GLIBC system (such as RedHat-6.2)
      TOYAMA Shin-ichi <>

    * Fixes to RPM spec file
      TOYAMA Shin-ichi <>
    * Enabled more compiler warnings, and updated code to prevent them.
      Albert Cahalan <>
      Bill Kendrick <>

    * Gave up on 'HQ4X' scaler and scanline polygon filling, for the
      time being.  (i.e., removed unused code.)

  * Documentation updates:
    * Removed TODO.txt file and moved all bugs
      and feature requests to the SourceForge

    * Converted Frequently Asked Questions (FAQ) to HTML.

    * Mentioned Tux Paint Config. tool in FAQ.

    * French documentation created.
      J�r�me Chantreau <>

  * New translations:
    * Albanian
      Ilir Rugova <>
      Laurent Dhima <>

    * Estonian
      Henrik Pihl <>

    * Gaelic
      Kevin Patrick Scannell <scannell@SLU.EDU>

    * Galician
      Leandro Regueiro <>

    * Gronings
      J.F.M. Lange <>

    * Kinyarwanda
      Steve Murphy <>

      (Initial rough translation based on translations from the following:
      Philibert Ndandali <>, 2005.
      Viateur MUGENZI <>, 2005.
      Noëlla Mupole <>, 2005.
      Carole Karema <>, 2005.
      Augustin KIBERWA <>, 2005.
      Donatien NSENGIYUMVA <>, 2005.
      Antoine Bigirimana <>, 2005.)

    * Mexican Spanish
      Ignacio Tike <>
      Daniel Illingworth <>
      Luis C. Su�rez M. <>

    * Swahili
      Martin Benjamin <>
      Alberto Escudero-Pascual <>
      Kamusi Project at Yale University
      Open Swahili Localization Project at the University of Dar es Salaam

    * Thai
      Ouychai Chaita <>

    * Ukranian
      Serhij Dubyk <>

  * Translation updates:
    * Afrikaans
      Petri Jooste <>

    * Bulgarian
      Yavor Doganov <>

    * Chinese (Traditional) documentation
      Song Huang <>

    * Czech
      Lucie Burianova <>

    * Dutch
      Geert Stams <>
      Michael de Rooij <>
    * French
      Jacques Chion <>
    * German
      Patrick <nc-spechtpa3 [At] netcologne DOT de>
      Burkhard L�ck <>

    * Greek
      The Greek Linux i18n Team <>
    * Hebrew
      Dovix <>
      Leor Bleier <>
    * Indonesian
      Tedi Heriyanto <>
    * Japanese
      TOYAMA Shin-ichi <>

    * Korean
      Mark K. Kim <>

    * Lithuanian
      Gintaras Go?tautas <>

    * Norwegian Bokmal
      Klaus Ade Johnstad <>

    * Polish documentation
      Tomasz 'karave' Tarach <>

    * Portuguese (Portugal)
      Ricardo Cruz <>
      Helder Correia <>

    * Russian
      Eugene Zelenko <>

    * Spanish and Spanish documentation.
      Gabriel Gazz�n <>
    * Swedish
      Magnus Dahl <>
      Tomas Sk�re <>
    * Vietnamese
      Clytie Siddall <>

    * Added "" help script to "src/po/", for easier
      regeneration of "tuxpaint.pot" (gettext catalog template)

    * Created Python script to generate a scaled down version of the
      Chinese (Traditional) TrueType font (zh_tw.ttf), that includes only
      the characters uses by Tux Paint.  (Reduces TTF file size from ~13MB
      to ~600KB!)  For info, see: fonts/locale/zh_tw_docs/
      First draft: Edward Lee <>
      Song Huang <>

2004.September.28 (0.9.14)
  * New Features:
    * Added support for immutable "starter" images, which are installed
      globally with Tux Paint, and provide a starting canvas for images.

      A PNG file with alpha is continuously drawn over whatever changes are
      made to the current drawing.  For example, a black outline of a cartoon
      character could be made, to simulate a coloring book.
      (See 'jetplane.png')

      A second PNG file can be supplied which will be drawn on the normal
      part of the canvas (where a new picture would normally be all-white),
      allowing for simulated depth.  Drawing and magic tools all mutilate the
      background, as it's part of the normal canvas.  However, when editing
      a picture based on a 'starter' with a background layer, the eraser will
      bring back the background image.  In a sense, it's like having a photo
      on the bottom, a clear sheet to draw on in the middle, and a clear sheet
      with some more photo (which you can't draw on) on top.
      (See 'reef.png' and 'reef-back.jpg')
    * Added lockfile support, to prevent Tux Paint from being launched more
      than once every 30 seconds.  (Disable with "--nolockfile" command-line
      argument.)  Thanks to Darci Lindgren for suggestion the feature, and
      Mark K. Kim for suggesting it be time-based.
      (Lockfile is "lockfile.dat" in "~/.tuxpaint/" on Linux/Unix, and
      "userdata\" on Windows.)

    * Added "--nosave" option (suggested by Adam Moore).

  * Updated Features:
    * Added some more brushes.
      Jeremie Zimmermann <>

    * Multiple sizes of erasers are present.
      (Compile-time #defines can be used to determine how many sizes are
      available, and their minimum and (approx.) maximum sizes.)
      Note: Erasers are still square.  Sorry!

    * Fixed tinting of low-saturation stamps.
      Addded 'notintgray' option.
      Karl Ove Hufthammer <>

    * Made sure shape tool never made a tiny shape.
      (Should hint users that they should click-and-drag.)

    * Made some colors more unique, so that they affected stamps better.
      (e.g., purple and magenta used to look the same when used to tint a stamp)
      Karl Ove Hufthammer <>

    * Made current image the selected image on Open screen, if applicable.

    * Now prompts to confirm before printing.

  * New translations:
    * Afrikaans translation created.
      Petri Jooste <>

    * Belarusian translation created.
      Eugene Zelenko <>

    * Breton translation created.
      Korvigellou An Drouizig (Philippe) <>

    * Bulgarian translation created.
      Martin Zhekov <>

    * Croatian translation created.
      Nedjeljko Jedvaj <>

    * Georgian translation created.
      Gia Shervashidze <>

    * Hindi translation created.
      Ankit Malik <>

    * Italian documentation translation.
      Flavio Pastor <>

    * Klingon (Romanized) translation started.
      Bill Kendrick <>

    * Korean README.txt documentation added, in both EUC-KR and UTF-8 formats.
      Mark K. Kim <>

    * Serbian translation created.
      Aleksandar Jelenak <>

    * Slovenian translation created.
      Urska Colner <>,
      Ines Kovacevic <>,
      Matej Urban <>

    * Traditional Chinese translation created.
      Song Huang <>

    * Vietnamese translation created.  (Simple version)
      Le Quang Phan <>

    * Welsh translation created.
      Kevin Donnelly <>

  * Updated translations:
    * Updated Basque translation.
      Juan Irigoien <>

    * Updated Brazilian Portuguese translation.
      Daniel Jose Viana <>
      Silvio Faria <>
    * Updated Breton translation.
      Korvigellou An Drouizig (Philippe) <>
    * Updated British English translation.
      Gareth Owen <>

    * Updated Catalan translation.
      Pere Pujal Carabantes <>
    * Updated Danish translation.
      Mogens J�ger <>

    * Updated Dutch translation.
      Geert Stams <>

    * Updated Finnish translation.
      Tarmo Toikkanen <>

    * Updated French translation.
      Jacques Chion <>

    * Updated German translation.
      Roland Illig <>

    * Updated Hungarian translation.
      T�r�k G�bor <>

    * Updated Icelandic translation.
      Pjetur G. Hjaltason <>

    * Updated Indonesian translation.
      Tedi Heriyanto <>
    * Updated Italian translation.
      Flavio Pastor <>

    * Updated Japanese translation.
      TOYAMA Shin-ichi <>

    * Updated Korean translation.
      Mark K. Kim <>

    * Updated Malay translation.
      Muhammad Najmi Ahmad Zabidi <>

    * Updated Norwegian Bokmal translation.
      Karl Ove Hufthammer <>

    * Updated Norwegian Nynorsk translation.
      Karl Ove Hufthammer <>

    * Updated Portuguese (Portugal) translation.
      Ricardo Cruz <>

    * Updated Simplified Chinese translation.
      Wang Jian <>

    * Updated Slovakian translation.
      Andrej Kacian <>
    * Updated Spanish translation.
      Gabriel Gazz�n <>

    * Updated Tamil translation.
      Muguntharaj <>

    * Updated Turkish translation.
      Doruk Fisek <>

    * Updated Walloon language translation.
      Pablo Saratxaga <>

  * Localization clean-ups:
    * Removed all non-UTF-8 related character handling code,
      including HTML character entity reference support.
      (All stamps are now in UTF-8, with scripts to convert
      to and from PO files.)
      Karl Ove Hufthammer <>
    * Updated punctuation in many text strings.
      Karl Ove Hufthammer <>

    * Added "--lang simplified-chinese" option (same as "--lang chinese").
      Simplified also now looks for "zh_cn.ttf" font, as "zh.ttf"
      was too ambiguous.  (For backwards-compatibility, it checks for
      "zh.ttf" if "zh_cn.ttf" is missing, though.)
      Bill Kendrick <>,
      John Popplewell <>

    * Cleaned up translation and font code. 
      Karl Ove Hufthammer <>
    * Language option now sets "LANGUAGE" environment variable
      (along with LC_ALL and LANG).

    * Initial work to get proper uppercase support in languages other
      than English.

    * Added reference to "--lang help" to documentation.

  * Documentation updates:
    * README (docs/html/README.html and docs/README.txt) has been pared down
      and made more friendly.  Mention of other doc. files are now hyperlinked.

    * Documentation regarding configuration file and command-line options
      have been moved into a separate OPTIONS document (docs/html/OPTIONS.html
      and docs/OPTIONS.txt), since Tux Paint Config. now exists to simplify
      changing settings.

  * Porting and packaging updates:
    * Added startup display mode and resolution options to the Windows 
      John Popplewell <>

    * Visual Studio build system included in CVS and source release
      ('visualc' folder)
      John Popplewell <>

    * Updated Makefile for easier install.
      Mark K. Kim <>

    * Cleaned up desktop entry file.
      Karl Ove Hufthammer <>

    * Made sure KDE icon directories exist before trying to copy files to them.

    * Created 16x16 mouse pointer shapes; use "MOUSEDIR" and "CURSOR_SHAPES"
      Makefile variables to use them.

  * Application icon updates:
    * SVG (Scalable Vector Graphics) icon created.
      Karl Ove Hufthammer <>

    * Added 22x22, 64x64, 96x96, 128x128 and 192x192 icons, based on SVG icon.
      Karl Ove Hufthammer <>

    * Improved Windows icon, based on SVG icon.
      Karl Ove Hufthammer <>

  * Bug fixes:
    * Fixed "--noprint=yes" not working under Windows and BeOS.
      Thanks to Adam Moore for pointing out this bug!
      Bill Kendrick & Mark K. Kim

    * Fixed crash bug when translated text ends in a space.
      Mark K. Kim & John Popplewell
    * Fixed security issue with permissions to Tux Paint docs directory.
      Mark K. Kim <>

    * Fixed 'savedir' bug.  (Was dropping filenames)

    * Removed redundant '--wheelmouse...' listing from "--usage" output.

    * Fixed crash bug when switching from different tools with scrolling
      collections, and then scrolling.
      Thanks to Kevin Jarrett for the report, and John Popplewell for a
      replicable way of crashing it.

  * Misc. Updates:
    * Keywords ("Title" and "Software") now written into PNGs.

    * Changed default UI font to "FreeSans.ttf"

2003.Dec.23 (0.9.13)
  * Translated into Basque (eu_ES)
    Juan Irigoien <>

  * Translated into Norwegian Bokmal (nb_NO)
    Dag H. Loras <>

  * Translated into Tamil (ta_IN)  [buggy]
    Mugunth <>

  * Updated Icelandic translation.
    Pjetur G. Hjaltason <>

  * Made sure options were in the same order in various places in man page
    and documentation.  Made sure all options and languages were listed.

  * Added stamp controls to mirror, flip and resize stamps before placing
    them.  Some stamps can be set to not be mirror-, flip- or resize-able.
    (Place "noflip" and/or "nomirror" in the stamps' ".dat"
    option files.)  Stamps can have alternative mirror-images (e.g., to
    show a shape the opposite direction, but not have backwards text on it).
    Create "filename_mirror.png" image files.

  * Incorproated high quality filtering code from HiEnd3D,
    by Maxim Stepin <>

  * Added "--nostampcontrols", "--mirrorstamps" and their opposite options,
    to disable stamp controls, and default to mirrored stamp shapes,
    (or not), respectively.

  * Fixed incorrect tag in HTML documentation.  (Bad results in IE)

  * Fixed typo regarding "savedir" in README.

  * 'printcfg' options not displayed in usage, except on Win32.

  * Moved available language listing to its own usage, shown when
    "--lang" called incorrectly, or as "--lang list" or "--lang help".
    (Suggested by Ben Armstrong)

  * Reorganized usage display
    (Suggested by Ben Armstrong)

  * If the top-left-most file is deleted in the Open screen, it now
    scrolls up one line (so that the cursor isn't off the top of the

  * Cleaned up font aliasing blurriness and JPEG noise in title image.

  * Updated copyright date in title image.
  * Cursor doesn't change to 'hand' shape over color buttons when colors
    aren't available (e.g., Magic tool, most Stamps, etc.)

  * Cursor doesn't change to 'hand' shape over selector buttons when
    they aren't available.

  * Added "--noshortcuts" option, to disable keyboard shortcuts
    (e.g., [Ctrl]+[S] for Save, etc.)

  * Created missing locale-specific documentation directories.
    (Unfortunately, most are still empty!)

  * Added more copies of the GPL: Swedish, Romanian, Polish, Lithuanean,
    Korean, Japanese, Indonesian, Hebrew, Greek, Danish, Czech, Chinese
    and Catalan.

  * Fixed locale typos in source ("cs" not "cz" for Czech, and "sv" not "se"
    for Swedish).

  * Updated default configuration file to include examples of some newer

  * White/grey in tintable stamps don't get tinted now.

  * Stamps in homedir are now loaded before system-wide stamps.
  * "--lang=XXX" can be used on the command-line, along with "--lang XXX"

  * Moved Tux penguin stamps from Stamps package to core Tux Paint package,
    so that Stamp tool works out-of-the-box.

2003.Aug.18 (0.9.12)
  * Replaced "efont-serif" fonts with those from the 'ttf-freefont' package,
    for better support of ISO8859-13 symbols (e.g., for Lithuanian).
    Fonts copyright the Free Software Foundation.
    Thanks to Mantas Kriauciunas <> for the tip.

  * Made main event loop ignore motion events if the loop has spun too long.
    (Fixes problems where shape or stamp tools take forver to 'catch up' with
    the mouse; especially noticable on slow machines over remote X display.)

  * Walloon translation.
    Pablo Saratxaga <>
  * Translated to Russian
    Dmitriy Ivanov <>

  * Translated to Malay
    Muhammad Najmi Ahmad Zabidi <>

  * French translation update.
    Jacques Chion <>

  * Chinese translation update.
    Wang Jian <>
  * If gnome-config is not found, it doesn't necessarily mean Gnome isn't being
    used!  Makefile will now fall-back and assume $GNOME_PREFIX should be /usr,
    so that the launcher icon gets installed into the Gnome menu.
  * Added some "#error" directives to give verbose output regarding missing
    library header files.  (Typical cause of this symptom is forgetting to
    install dev. packages; e.g., installed "SDL.rpm", but not "SDL-dev.rpm")

  * Fixed Mac OS X #include typo.
    Darrell Walisser <>

  * Fixed bug where non-translated stamp description text would get drawn
    right-to-left after the kudos text (e.g., "Great!") goes away.
    Thanks to Itai <>
  * Added call to close iconv when quitting.
    John Popplewell <>
    Darrell Walisser <>

  * Removed static "MAX_FILES" limit; now mallocs space for file info.
    structures.  (Should fix large stack crash on OS X, which is good.)

  * Fixed bug where translated text would revert to English in 'uppercase' mode.

  * Fixed UTF-8 related bug where Lithuanian wouldn't display if using
    'TTF_RenderText...', but Spanish wouldn't display if using
    'TTF_RenderUTF8...'.  Thanks to Mantas Kriauciunas, Robert Glowczynski,
    John Popplewell and Karl Ove Hufthammer.

  * Simplified CFLAGS variable in Makefile.
    Ben Armstrong <>

  * Fixed bug where ".thumbs" dir wouldn't get generated if it wasn't there
    and you went to the 'Open' dialog.
  * Fixed prompt bug for larger window sizes
    TOYAMA Shin-ichi <>

2003.Jun.17 (0.9.11)
  * Windows bugfixes.
    John Popplewell <>

  * Mac OS X print update.  Get to a print dialog by holding Alt/Option when
    clicking "Print."  (Similar to how Windows handles it.)
    Darrell Walisser <>

  * Hebrew translation!
    Dovix <>
    Koby <>

  * Right-to-left language support (for Hebrew, for example).

  * Updated Korean translations.
    Mark K. Kim <>

  * UTF-8 support in the Text Tool!
    Robert Glowczynski <>,
    Mantas Kriauciunas <>

  * Added 'The Gimp' to docs/PNG.txt
    Mantas Kriauciunas <>

  * Set $OUTPUT_CHARSET for Japanese locale, to fix Win32 issue.
    TOYAMA Shin-ichi <>

  * Lithuanian translation.
    Mantas Kriauciunas <>,
    Rita Verbauskaite <>

  * Fixed bug that would cause some translated stamp sounds to not load.
    John Popplewell <>

  * Added Dutch translation of (older version of) HTML documentation.
    (docs/html/README-nl.html; docs/nl/README.txt)
    Geert Stams <>

  * Updated Polish translations.
    Robert Glowczynski <>

  * Added Polish version of manpage.
    Robert Glowczynski <>

  * Restructured manpage sources (created "src/manpage/")

  * Fixed a few typos in the manpage.
    Robert Glowczynski <>

  * Fixed UTF-8 word-wrapping bug when there were no spaces
    (e.g., in some Japanese strings)
  * When a locale requiring its own font can't be used because the font
    is missing, Tux Paint STILL didn't work right.  Fixed.  (Set $LC_ALL=C)

  * Added a set of square brushes (similar to the various round ones).

  * Added "--nostamps" option to disable stamp tool.
    (When it's not needed, they just take time to load, and RAM to store.)

  * Added missing "--nosysconfig" to "--help" usage output.

  * Increased MAX_FILES from 256 to 2048.  Users with more than 128 images
    saved were unable to load the newest images!  (Hopefully 1024 saved
    files is sufficient.)

  * Thumbnails now saved to a ".thumbs" subdirectory under "saved".
    (Old thumbnails will still be loaded, if found.  Currently, the old
    thumbnails will still be saved in the old location, not under .thumbs)
    Ben Armstrong's suggestion.

  * Updated tuxpaint-import to create .thumbs subdirectory, and put new
    thumbnails there.

  * Moved "tuxpaint-import.1" from src/ to src/manpage/.

  * "Thick" and "Thin" Magic Tools made 'stronger.'

2003.February.22 (0.9.10)
  * UTF-8 stamp descriptions word-wrap around spaces.

  * Portuguese (from Portugal) translation.
    Ricardo Cruz <>

  * Support for more HTML escape codes in description files.
    [ Not yet working ]

  * Czech .po file renamed to the correct "cs.po".
  * ALT+F4 accepted as alternative to [Escape] (to quit)
    by Tux Paint's main loop.  Windows wasn't rending a 'Close Window'
    event on that key combo, like it should (I think).
    John Popplewell <>

  * Windows printing changes:
    + Now uses a default printer configuration.
    + No pop-up dialog appears unless [ALT] is held while hitting "Print"
      button in the toolbox.
    + Can be told to save any changes to printer configuration (so it's
      used as default configuration from now on) by sending the
      "--printcfg" command-line option.
    John Popplewell <>

  * Fancy cursors automatically disabled when in fullscreen mode in Windows.
    (A bug in SDL causes the larger cursors to leave trails on the screen.)

  * BeOS version will chdir to where Tux Paint is, if launched from a GUI
    (e.g., OpenTracker)
    Marcin 'Shard' Konicki <shard at>

  * Included new "src/Makefile.beos"
    Marcin 'Shard' Konicki <shard at>

2003.February.1 (0.9.9)
  * Translated into Slovak!
    Milan Plzik <>

  * Updated Norwegian Nynorsk translation.
    Karl Ove Hufthammer <>

  * Added Japanese translation to Tux Paint icon (tuxpaint.desktop)
    TOYAMA Shin-ichi <>

  * Moved Makefile.beos into src/, to keep root directory less cluttered.

  * Incorporated "tuxpaint.nsi" in src/
    (A configuration file for creating an installer program for
    Windows, using Nullsoft's Scriptable Install System
    John Popplewell <>

  * Alphabetized locale generation/installation in Makefile
    (partly for nicer looking output during compilation, but mostly for
    easier maintenance)

  * When a locale requiring its own font can't be used because the font
    is missing, Tux Paint now CORRECTLY switches back to default
    ($LANG=C, which for Tux Paint is 'American English')

  * Removed some debugging output that shouldn't have been kept in.

  * Locale-detection code made more robust.  (Check LC_MESSAGES, not LC_ALL)
    TOYAMA Shin-ichi <>

  * Added support for some useful HTML escape sequences in stamp descriptions
    (e.g., "&acute;" for "�" ("a" with "'" over it))
    Append ".esc" to the locale code (e.g., "fr.esc=...") in the ".txt"
    description files.

  * Wrote "docs/ESCAPES.txt", which covers valid escape sequences.

  * Made 800x600 mode available at runtime, rather than just at compile-time
    (available "--800x600" command-line option and "800x600=yes" in conf. file;
    overridden by "--640x480" option, or "800x600=no" or "640x480=yes" in conf.)
    NOTE: STILL EXPERIMENTAL!  640x480 mode is still default!
  * Fixed 'Magic Tool' selector redraw bug in 800x600 mode.

2003.January.27 (0.9.8)
  * Updated Makefile to include "beos" and "beos-install" targets.
    (Apparently doesn't work yet.)
    Based on BeOS Makefile by Marcin 'Shard' Konicki <shard at>

  * Included Makefile.beos for BeOS.
    (Needs updating to match newer upstream Makefile)
    Marcin 'Shard' Konicki <shard at>

  * Added some translations to Tux Paint's icon's comment in tuxpaint.desktop.

  * Updated default tuxpaint.conf to mention all of the newest options.

  * Fixed tuxpaint.desktop's icon so that it works right under Gnome.

  * Fixed crash that could happen when picking an unavailable spot in the
    selector on the right.

  * Fixed Japanese locale detection.
    TOYAMA Shin-ichi <>

  * Stamp description translations can be encoded using UTF-8.
    Append ".utf8" to the locale code (e.g., "fr.utf8=...")

  * Removed stamp descriptions from Japanese translation file
    (src/po/ja.po).  (Will be placed as UTF-8 encoded text in next
    Tux Paint stamps package release.)

2003.January.26 (0.9.7)
  * Translated to Japanese!
    TOYAMA Shin-ichi <>

  * Fixed translation bugs with some save-related prompts.

  * Polish available as "--lang polski" as well.

  * Disabled fancy cursors by default in BeOS.  (Support is buggy in SDL.)
    Marcin 'Shard' Konicki <shard at>

  * BeOS updates.
    Marcin 'Shard' Konicki <shard at>

2003.January.22 (0.9.6)
  * Save directory can be specified ("--savedir")
    John Popplewell <>

  * BeOS printing support!  (Makefile needs updating)
    Marcin 'Shard' Konicki <shard at>

  * tuxpaint-import now creates the '~/.tuxpaint/saved' directory,
    if it doesn't exist

  * Initial support for arbitrary window sizes.  (#define SVGA for 800x600)
    TOYAMA Shin-ichi <>

  * Added a few new colors, renamed some old ones.
    TOYAMA Shin-ichi <>

  * Fixed text tool bug when hitting [Enter]/[Return] past bottom of canvas

  * Gnome and KDE install targets won't kill make process

  * Indonesian available as "--lang bahasa-indonesia" as well.

2003.January.13 (0.9.5)
  * Romanian translation!
    Laurentiu Buzdugan <>
  * Greek translation!
    The Greek Linux i18n Team <>

  * Polish translation!
    Arkadiusz Lipiec <>

  * French translation update.
    Jacques Chion <>

  * Cleaned up Makefile some.
    Made output less verbose during compile & install.

2003.January.8  (0.9.4)
  * Indonesian translation!
    Tedi Heriyanto <>

  * Changed sparkles so they look less like blobs.
    (Thanks to Dave Nelson for the suggestion.)

  * Added a mode that uses XORs ("rubber-band lines") much less:  --nooutlines
    It should help for very slow machines and using Tux Paint remotely
    over a networked X display.

  * The 'Circle' shape no longer switches into rotation mode
    (since it never affected the shape!)

2003.January.6  (0.9.3)
  * Chinese translation!
    Wang Jian <>

  * Fixed bug when testing for printer availability under Windows.
    John Popplewell <>

  * Screen now refreshes when switching back to fullscreen Tux Paint.
    John Popplewell <>

  * Spanish translation update.
    Gabriel Gazzan <>

  * Lots of Spanish documentation updates.
    Gabriel Gazzan <>

  * FAQ categorized

2002.December.10  (0.9.2)
  * Translated INSTALL.txt, FAQ.txt and PNG.txt documentation to Dutch.
    Geert Stams <>

  * Updated AUTHORS.txt

  * Updated Norwegian documentation (docs/nn/INSTALLERING.txt)
    Karl Ove Hufthammer <>
  * Added initial attempt at keyboard control support
    (for mouseless environments): "--keyboard"

  * UTF-8 support working.

  * Korean translation completed!
    Mark K. Kim <>

  * Fixed errors in 'uninstall' target in Makefile

2002.November.16  (0.9.1)
  * Updated man page.

  * Translated to Catalan.
    Pere Pujal Carabantes <>

  * Added some missing "gettext_noop()" wrappers to some strings.
  * Stamp sound effects played when clicked, even if stamp is already selected.

  * Added more translated documentation directories, with dummy docs.

  * Simplified documentation installation target in Makefile
    (and fixed permissions to something more sensible).

2002.November.12  (0.9.0)
  * Fixed endian issue which caused stamp icons and saved-file thumbnails to
    have messed up colors!  (Tested on Mac laptop running Mac OS X.)

  * Added FAQ item regarding fullscreen not being in 640x480 under Linux.
    (Partially based on libSDL's Linux FAQ: )

  * Added notice about downloading libraries and '-dev' packages under
    compiling/Linux section of INSTALL.txt.

  * Rearranged INSTALL.txt some.

  * Converted titlescreen image from JPEG to PNG
    (so libJPEG would no longer be required).

  * Updated PNG software list (PNG.txt)

  * Added version number and release date to title screen.

  * Fixed strange undo/redo access bug (redo available after open).

  * Uses "Library/Preferences/tuxpaint" instead of hidden ".tuxpaint"
    directory under Mac OS X.
    Darrell Walisser <>

  * HTML documentation cleaned up (no warnings or errors from HTML Tidy!)

  * Updated Norwegian translation of INSTALL.txt (INSTALLERING.txt)
    Karl Ove Hufthammer <>

  * Translated to Hungarian.
    T�r�k G�bor <>

  * Partly translated to Korean.  PO file in an unusable charset, though...
    Mark K. Kim <>

  * Supports locale-specific fonts for languages that need Unicode.
    e.g., Korean will use "ko.ttf", if found, for translated strings.

  * Updated Spanish translation.
    Gabriel Gazzan <>

  * Updated French translation.
    Jacques Chion <>

  * Updated German translation.
    Fabian Franz <>

  * Updated Brazilian Portuguese translation.
    Daniel Jose Viana <>

  * Updated Icelandic translation.
    Pjetur G. Hjaltason <>

  * Updated French translation.
    Jacques Chion <>

  * Translated to Czech.
    Peter Sterba <>
    Martin <>

  * Fixed KDE_ICON_PREFIX setting (needed '--expandvars' arg. to kde-config)
    Pjetur G. Hjaltason <>

  * Updated KDE launcher install to place .desktop file where kde-config says to.

  * Updated Gnome launcher install to use `gnome-config --prefix`

  * Now using Links (instead of Lynx) to convert HTML README to text.

  * Updated INSTALL.txt documentation.

  * Updated README.txt documentation.

  * Created HTML version of README documentation, with screenshots!

  * Updated Icelandic translations.
    Pjetur G. Hjaltason <>

  * Updated Norwegian translations.
    Karl Ove Hufthammer <>

  * Installs pt_br documentation now.

  * Created British English (en_GB) translation.  (i.e., "color" is "colour")

  * Windows printing updates (src/win_print.c):
    - Correct aspect ratio (e.g., circles are now circular). 
    - Image now centered on the page horizontally
    - Printouts work in high-quality mode
    - Looks good on John's Epson Stylus Color 860
    - Fixes for possible crashing bugs
    John Popplewell <>

  * Updated Norwegian translations.
    Karl Ove Hufthammer <>

  * Made toolbox, color selector, and object selector titles translatable.

  * Replaced SGML man pages with hand-written nroff.

  * Extensive man page updates.

  * Windows printing support!
    John Popplewell <>

  * Updated Shape tool's tips.
    (Thanks to Tarmo for pointing this out.)

  * Fixed 'Great!' sayings (src/great.h) to be wrapped in gettext_noop()
    Fabian Franz <>
  * Fixed forgotten endian issue with stamps (seen on Sparq & PowerPC)
    Thanks to Fabian's keen eyes.

  * Finnish updates.
    Tarmo Toikkanen <>

  * Updated Brazilian Portuguese translation.
    Daniel Jose Viana <>

  * Updated Norwegian translations.
    Karl Ove Hufthammer <>

  * Updated Icelandic translations.
    Pjetur G. Hjaltason <>

  * Updated Spanish translation.
    Gabriel Gazzan <>
  * Updated / added more Brazilian Portuguese documentation.
    Daniel Jose Viana <>

  * Removed 'Rubber Stamps' section from 'docs/AUTHORS.txt'
    (since Stamps package has its own 'docs/CONTRIBUTORS.txt' document now)

  * Dealt with warning with call to TTF_SizeUNICODE

  * Updated Norwegian documentation.
    Karl Ove Hufthammer <>

  * Updated German translation.
    Fabian Franz <>

  * Fixed problem where some locales wouldn't get translated stamps.
    Fabian Franz <>

  * Various sayings can be used instead of just 'Great!'.  See 'src/great.h'

  * Fixes for Win32
    John Popplewell <>

  * Text tool checks width of character in font, rather than relying on
    'isprint()' - this SHOULD help unicode characters work in the Text tool.
    Thanks to Jon Atkins <>

  * Updated Spanish translation.
    Gabriel Gazzan <>

  * Increased scrollbar repeat speed.

  * Translated to Brazilian Portuguese ('pt_BR').
    (Get with "--lang brazilian", "--lang brazilian-portuguese" or
    "--lang portugues-brazilian")
    Daniel Jose Viana <>

  * Fixed 'get_fname()' so that it won't return a directory name with
    a trailing slash (if no filename was given).  Some 'mkdir()'s don't
    like trailing slashes.
    Thomas Klausner <>

  * "lang=" setting is now recognized in configuration files.

  * Default configuration file now exists (Unix/Linux).
    Installed as /etc/tuxpaint/tuxpaint.conf.
    (Unless 'PREFIX' is not '/usr' or '/usr/local', then it's
    installed into $(PREFIX)/etc/tuxpaint/tuxpaint.conf.
    Overridable by setting CONFDIR Makefile variable)
    Read before "~/.tuxpaintrc".
    Reading it can be disabled with "--nosysconfig" on command-line.

  * Added support for "OPTION=no" in config file, as well as
    "UNOPTION=yes" (like command-line args. use), so that "~/.tuxpaintrc"
    can override any settings in new system config.
    (e.g., "noprint=no" or "print=yes" will override a "noprint=yes")

  * Updated INSTALL.txt and README.txt for Windows users.
    John Popplewell <>

  * Updated Spanish documentation.
    Gabriel Gazzan <>

  * Added warnings about untranslated strings ("NOTRANS: ...") to
    debugging output.  ("#define DEBUG")  (Useful for translators.)

  * Added option to disable 'fancy' mouse pointers:  --nofancycursors
    (since fullscreen under Windows and non-X-Window targets under Linux
    currently have problems due to an SDL library bug)

  * Changed 'tuxpaint-import's usage message to reflect that it can import
    multiple files at a time, and that it has a "--help" option.

  * Updated 'tuxpaint-import's help message to describe what the program does.

  * Translated to Danish.
    Rasmus Erik Voel Jensen <>

  * Norwegian updates.
    Karl Ove Hufthammer <>

  * Updated Karl's e-mail address in docs.

  * Norwegian translation of INSTALL.txt
    Karl Ove Hufthammer <>

  * Updated Icelandic translations.
    Pjetur G. Hjaltason <>

  * Fixed bug where German translation of stamps wouldn't be used.
    Fabian Franz <>

  * 'Great!' text appears when you use stamps, etc., again.
    Replaced with the old tip text (e.g., stamp description, 
    instructions, etc.) after a moment.
    Fabian Franz <>

  * Prompt and label font is smaller when in "--uppercase" mode.

  * "Open", "Erase" and "Back" buttons in 'Open' dialog are now translatable.
    (Still need to translate selector titles (e.g., "Tools", "Colors", etc.))

  * Replaced key-repeat code with simple SDL-based key repeat.
    Fabian Franz <>

  * Fixed toolbar bug when using 'Save' via [Ctrl]-[S] shortcut.
    Fabian Franz <>

  * Shortcut keys for "Yes" and "No" prompts are now based on the
    first character of the translated versions of those words.
    (e.g., in Spanish, [S] for "Si", and [N] for "No".
    In German, [J] for "Ja", and [N] for "Nein".)
    Fabian Franz <>

  * Added URLs to Windows and Mac software in PNG.txt.

  * README updated.

  * Some documentation translated to German.  (See "docs/de/")
    (Using Language Tools)

  * Placeholders created for some other translated documentation.

  * Translated documentation gets installed now.

  * 'Print' tool disabled when picture is blank
    (Simply mimicks 'New' tool)
    Fabian Franz <>

  * Mouse wheel now scrolls selector (e.g., list of stamps, brushes, etc.)
    (Non-wheel mouse users can try it with mouse buttons 2 and 3 under
    X-Window by running:   xmodmap -e "pointer = 1 4 5"  )
    Fabian Franz <>

  * Mouse wheel can be disabled with "nowheelmouse=yes" in config., or
    "--nowheelmouse" on commandline.

  * Updated Spanish documentation.  (Added translation of PNG.txt)
    Gabriel Gazzan <>

  * Updated Norwegian translations.
    Karl Ove Hufthammer <>

  * Free mouse pointer shapes on exit.
    John Popplewell <>

  * Ignore $HOME env. variable under Windows (not used there normally,
    but could be - e.g., if the user happens to use CVS)
    John Popplewell <>

  * Selector scroll buttons 'repeat' if mouse is held down on them.
    Fabian Franz <>

  * Rotate mode of shape tool has its own mouse pointer shape.

  * Rotate mode of shape tool warps mouse to '0 degree' rotation spot.

  * Increased threshold of Magic 'Fill' tool.

  * Created "tuxpaint-import" shell script which will take an arbitrary
    image file (JPEG, GIF, PNG, etc.) and make a copy available to Tux Paint
    (by converting it to an appropriately-sized and -shaped PNG file and
    placing it in "~/.tuxpaint/saved/").  Only works under Linux and Unix...

  * Fixed bug where trying to type a Control character in the 'Text' tool
    would crash Tux Paint.

  * Some updates to man page (tuxpaint.sgml).  Ugh!  Help me!

  * Rearranged and reprioritized TODO.txt some more.

  * Blinking cursor in text tool moves right now.

  * Keys repeat in text tool.

  * Fixed bug where 'Fill' could recurse infinitely and crash Tux Paint.

  * Updated AUTHORS.txt

  * Updated README.txt (regarding brushes, stamps, fonts).

  * Added a flood fill ("bucket fill") Magic tool.
    Based on
    by Damian Yerrick -

  * Flood fill can be faster and lower quality.
    #define LOW_QUALITY_FLOOD_FILL, and only exact pixel matches will be
    checked for.

  * Thumbnails in 'Open' dialog can be double-clicked to open them.

  * Brushes, stamps and fonts can be stored in the user's
    tuxpaint directory.  ("~/.tuxpaint/" under Linux and Unix,
    "userdata" under Windows.)  They go under "brushes", "stamps" and "fonts"
    subdirectories, respectively.

  * Updated Spanish documentation.
    Gabriel Gazzan <>

  * Updated INSTALL.txt with steps that Installer EXE goes through.

  * Icelandic translation.
    Pjetur G. Hjaltason <>

  * Color selector and current tool's selector greyed out in 'Open' dialog.
    (Good solution for now...)

  * Font and color changes while typing text are reflected by the preview.
  * Background of text preview is dark grey if the rendered text color is light.

  * [Enter] key moves text cursor down one line and starts a new line of text.

  * Undo/Redo works better with text tool.

  * Text tool rendering is clipped to canvas area (no more overwriting
    Tux Paint's widgets)

  * Text tool cursor height corresponds to current font's general height.

  * Clicking a new position while entering text moves the current text,
    rather than rendering it and starting a new line.

  * Text tool allows broader range of characters
    (e.g., uppercase, punctuation, etc.) thanks to
    'event.key.keysym.unicode' values.

  * "Save over the older version...?" prompt can be disabled.
    "--saveover" (or "saveover=yes") will always save over the existing file.
    "--saveovernew" (or "saveover=new") will always save a new file.
    "--saveoverask" (or "saveover=ask") will prompt (the old, and default mode)
    (Karl Ove Hufthammer's suggestion)
  * Added option to have Tux Paint grab all keyboard and mouse input.
    This should keep the mouse inside Tux Paint's window and override
    things like [Alt]-[Tab] window cycling and [Alt]-[Enter] fullscreen

  * Context-sensitive mouse pointer shapes!

  * Fixed some indentation anomolies in tuxpaint.c

  * Increased audio buffer even more (2Kbytes) under Windows, for better sound.
    John Popplewell <>

  * Cleaned up memory leaks from 'uppercase()' calls.
    John Popplewell <>

  * Cleaned up loaded fonts when quitting.
    John Popplewell <>

  * Mouse buttons 2 and 3 supported again.  (Wheel still not used.)
    Partly because kids may get frustrated using 2- and 3-button mice.
    Partly due to a lefthand/righthand bug in SDL for Windows in fullscreen.
    (Thanks to John Popplewell.)

  * Fixed bug where tool tip would revert to English.
    (Thanks to Karl Ove Hufthammer and John Popplewell)

  * Fixed README.txt regarding Norwegian.

  * Update Spanish translation.
    Gabriel Gazzan <>

  * Stamp description no longer replaced with "Great!" when stamp drawn.
    (Thanks to Karl Ove Hufthammer for the suggestion.)

  * "Your picture has been saved" prompt when saving-on-quit is now
    translated properly.

  * Added "--uppercase" option, which renders all text strings entirely
    in uppercase (for children who haven't learned lowercase letters yet).
    (Or use "uppercase=yes" in config. file.  "--mixedcase" to override config.)

  * Created an Frequently Asked Questions document: FAQ.txt.

  * More compile-time options reported (if set) in "--version" output.

  * Only mouse button 1 (left-click) is used now.  All other buttons ignored.
    (Avoids problems with mouse wheels causing 'hyper clicking.')
    (Perhaps it should be buttons 1 through 3?)

  * Translated to Swedish.
    Daniel Andersson <>

  * More work on the text tool.
    (Now activated by default, but still not perfect; see TODO.txt)

  * Fonts loaded from 'data/fonts/' directory.  Font selector added!

  * Updated Spanish translations.
    Gabriel Gazzan <>
  * Updated Norwegian translations.
    Karl Ove Hufthammer <>

  * Fixed horrible sounding audio in Win32.
    John Popplewell <>
    Thanks to: Gabriel Gazzan <>

  * Removed "Loading" image.

  * Fixed bug where "New" tool would be disabled if 'Open' was cancelled.

  * Ctrl-N does the same as pushing the 'New' button.

  * Added keyboard shortcuts to README.txt.

  * Reorganized and (kinda) prioritized TODO.txt.

  * Created 16x16, 32x32 and 48x48 icons for KDE.  Install them into
    wherever "kde-config --install icon" says is good, if 'kde-config' exists.

  * Started working on text tool.  (#define ENABLE_TEXT_TOOL to try it out.
    Warning: It's unusable!)

  * Fixed bug in Win32 'opendir'
    John Popplewell <>

  * "docbook-to-man" is now optional.  (Without it, man page won't be built.)
    Thanks to Mike Simons for bash tips.

  * Updated Norwegian translations.
    Karl Ove Hufthammer <>

  * Moved list of stamp ideas from TODO.txt into stamp package's own to-do list.

  * Print tool enabled!  (Linux/Unix only; requires NetPBM tools)
  * Print tool can be disabled with "--noprint" on command-line, or
    "noprint=yes" in config. file (can be re-enabled with "--print" on
    command line).

  * Printing can be restricted to only one print every N seconds, with
    "--printdelay=SECONDS" on command-line, or "printdelay=SECONDS" in
    config. file.  ("--printdelay=0" will disable the restriction).
    Thanks to Koyote on #ucd for the idea.

  * Print command can be set (default is "lpr") with "printcommand=COMMAND"
    in config. file.

  * 'fopen' opens PNG for write in binary mode ("wb"; for Win32)

  * Thumbnails are now saved (making Open dialog much faster!)
    (Existing saved images without thumbnails are given thumbnails the first
    time 'Open' is clicked, too!)

  * Files in 'Open' dialog are sorted by filename (aka time/date created).
    This gets around new files ending up in 'holes' in the directory structure
    where files had been deleted.

  * Added an alpha-blended shadow behind pop-up prompts.
    (Can be disabled by #define'ing "NO_PROMPT_SHADOWS" in src/tuxpaint.c)

  * Increased number of files Tux Paint can deal with from 128 to 256.

  * Approx. doubled number of undo buffers.

  * Added progress bar to Save operation.

  * Fixed translation problems in Makefile (installed italian into dutch,
    didn't uninstall some of the new ones)
    (Thanks to Ben Armstrong)

  * Updated Dutch translation (after testing on some children).
    Herman Bruyninckx <>

  * Updated Norwegian translation (for some new strings).
    Karl Ove Hufthammer <>

  * Fixed misspelling of "occurred" in errors and warnings.
    (Thanks to Andries Brouwer for noticing)

  * Reset tool tip after Open dialog goes away.

  * do_save() returns whether there was success, so now if there wasn't,
    Tux Paint doesn't think the picture was saved, and won't quit if
    you save-on-quit and it failed.

  * A prompt shows up confirming save-on-quit.

  * Fixed problem with CTRL commands not being noticed.

  * Attempted installation skeleton for Japanese translation.
    (Nothing translated yet)

  * Changed default font to a Sans Serif font.
    From the Free UCS Outline Fonts:

  * Removed all rubber-stamps.  They're now available as a separate download.

  * 'loadarbitrary()' won't abort if it can't find any stamps.

  * Brushes tested to make sure they aren't larger than 40x40.

  * Support for SDL's upcoming "WMCLASS" support.

  * Italian translation (it_IT@euro)
    Marco Milanesi <>

  * Dutch translation (nl_BE@euro)
    Herman Bruyninckx <>

  * Added missing Norwegian trans. install (Makefile) and docs. (README.txt)

  * Norwegian available with "--lang norsk" as well.

  * More and updated German translations (especially stamp translations).
    Ingo Blechschmidt <>

  * Fixed nickel stamp (was 'colorable', so came out a solid circle).

  * Renamed US Coin stamps so that they're ordered by value.

  * Added Italian, Turkish and Dutch versions of the GPL.

  * Made cursor in 'Open' dialog look nicer.

  * Made a few of the flower stamps tintable.

  * Support for legacy saved files (BMP format).
    (Only issue is when you 'Save over', it actually makes a new file,
    since it will be ".png", not ".bmp")

  * Added details on "*PREFIX" variables in Makefile to "INSTALL.txt"
    (Spanish version of that file currently has this section in English.)

  * Added animated progress bar ('candy cane' or 'barbershop pole', since
    determining percentage of progress is quite difficult!).  Displayed
    when first starting up, as well as when creating thumbnails for the
    'Open' screen...

  * Translated into Norwegian Nynorsk ("NN")
    Karl Ove Hufthammer <>

  * Finnish translation updated.
    Tarmo Toikkanen <>

  * Updated German translation of some planet stamps.
    Ingo Blechschmidt <>

  * Now saves in PNG format, instead of BMP.  (Huge disk space savings!)
    (Uses libPNG to save.  Note: Previously-saved BMPs can't be loaded.
    Sorry!  They must be converted to PNG.)

  * If 'current' image didn't exist, it won't ask if you wish to replace it
    when you go to save.
  * Added US coins, flowers and flags to rubber stamps.
    (c) Justin Zeigler 2002 Administered by The Project Impresarios of GOVIA.

  * Tool buttons disabled when 'Open' dialog is displayed.
    Fabian Franz <>

  * Stamps can be colored using the color picker.
    (Certain stamps can have this enabled.  For example, right now, the
    mathematical and musical stamps do.)  The stamp really becomes a kind
    of limited brush.  Create a "STAMP.dat" file for the stamp, and stick
    the word "colorable" in it.)
    (Thanks to Fabian Franz for the suggestion.)

  * Stamps can be tinted using the color picker.
    (Certain stamps can have this enabled.)  The stamp's brightness and
    saturation are kept, but the hue of the currently-picked color is used.
    Create a "STAMP.dat" file for the stamp, and stick the word
    "tintable" in it.)

  * LOCALE_PREFIX, the location where translation files (".mo") should be
    installed, is now based on PREFIX in Makefile.  Source has been
    updated with a 'bindtextdomain()' (which was used under Win32),
    which lets 'gettext()' find the translations, regardless of where
    they are.  (e.g., you can install as a non-root user now)

  * Updated Spanish translations of stamp descriptions.
    Gabriel Gazzan <>

  * Selector sound effect doesn't get played when a stamp is selected
    which has its own sound effect.

  * Removed rainbow magic tool's ending sound effect altogether.

  * Rubber stamp outlines now based on shape of the stamp.
    (Simple rectangle outlines available by #define'ing
    "LOW_QUALITY_STAMP_OUTLINE" at the top of src/tuxpaint.c)
    (Thanks to Ben Armstrong for the idea.)

  * Rubber stamps can have their own sound effects (STAMP.wav)
    (.e.g, "pict.wav" is the sound for the stamp "pict.png")

  * Rubber stamps can have localized sound effects (STAMP_LOCALE.wav)
    (e.g., "pict_fr.wav" and "pict_es.wav")

  * Rubber stamps directory moved out of "data/images/" and into just "data/"

  * Brush directory moved out of "data/images" and into just "data/"

  * Moved "Rainbow" and "Sparkles" magic tool buttons to the top of the
    list, since they actually DRAW things.  (So if a child goes to the
    "Magic" tool while the picture is still blank, they can at least draw
    without having to pick a specific magic tool.)

  * Fixed bug where tall and narrow stamps' thumbnails would be aligned wrong
    in their buttons on the selector.

  * Surface locking and unlocking moved to outside loops/etc.,
    rather than being WITHIN putpixel() and getpixel() functions!
    (i.e., locking occurs far less frequently, so some things, like XOR lines,
    should be sped up a little)

  * Animated filled shapes.  (On slower machines, it takes quite a while,
    so you can't tell if it's doing anything!)

  * Added Turkish translation.  (Buggy - charset needs fixing.)
    Doruk Fisek <>

  * Resampled and trimmed some sound files (to make them smaller).

  * Translated button labels to German.
    Fabian Franz <>

  * Translated button labels to Spanish.
    Gabriel Gazzan <>

  * Translated button labels to French.
    Jacques Chion <>

  * Button label font size larger, and scaled horizontally (may squish
    aspect ratio!) to fit within the buttons. (Makes things more readable.)

  * Check LANG env. variable if LC_ALL contains "LC_MESSAGES"
    Fabian Franz <>

  * Disabled warnings about description-less stamp images.
    Fabian Franz <>

  * Translated documentation directories created (docs/es, docs/fr, etc.)

  * Documentation (AUTHORS.txt, INSTALL.txt) translated to Spanish.
    Gabriel Gazzan <>

  * Spanish, French and German versions of GPL (COPYING.txt) included.

  * Stamp images divded into "photo" and "cartoon" subdirectories,
    reorganized some.

  * More space images added (from NASA and NSSDC public domain photo
    gallery).  Planets renamed #_name.png, so that they sort in the
    correct order.

  * List of stamp ideas added to TODO.txt

  * Previous tool re-selected if you go to Quit and then decide not to.

  * Fixed bug where Redo and Undo wouldn't make Save available if you've
    just saved...

  * Fixed bug opening tuxpaint.cfg under Windows.
    John Popplewell <>

  * Fixed minor font opening/closing bugs
    John Popplewell <>

  * Disabled sound effect wait when finishing a rainbow magic tool draw.
    (Should interrupt now, instead?)
    John Popplewell <>

  * Translated more stamp descriptions into German, French and Spanish
    (Using's language tool.)

  * Added mathematic stamps (numbers, operators)

  * Added musical stamps (clefs, notes, rests, keys)

  * Added "Thick" and "Thin" magical effects.

  * Reorganized some magical effects in the selector menu.

  * Text removed from button icons, and can now be translated using gettext!

  * Filled shapes enabled.  (Using lame radius-based fill, rather than
    scanline fill.  Couldn't get scanline fill to work yet, though.)

  * Renamed 'slash' brushes so they sort more nicely in the brush selector.

  * Gave magical effects their own sound effects.

  * Used a better 'harp' intro sound effect.

  * Fixed command-line argument parsing bug.
    Ben Armstrong <>

  * Fixed broken Spanish translation .po file.
    Gabriel Gazzan <>

  * Made "wait_for_sfx()" less CPU-intensive and hopefully better on Win32(?)
    John Popplewell <>

  * Made sure "LC_MESSAGES" dirs created by "install" in Makefile
    Ben Armstrong <>

  * Added "uninstall" target to Makefile

  * Changed font to "efont.ttf", a completely free, GPL'd font.

  * Added info to INSTALL.txt on making a TuxPaint shortcut under Windows,
    and using it to alter command-line options.
    John Popplewell <>

  * Added info to README.txt on ways to change language settings under
    John Popplewell <>

  * Win32 updates for LOCALE-related stuff.
    John Popplewell <>

  * Reduced font size (some text was overlapping or going off the screen).
    (Needs more testing)

  * Updated AUTHORS.txt some.

  * Fixed memory deallocation bug in "Open" dialog function.

  * Translated to Finnish
    Tarmo Toikkanen <>

  * Update Spanish translation
    Gabriel Gazzan <>

  * Switched from using #define'd strings for translations to using "gettext"
    and ".po" files (see src/po/)
    Fabian Franz <>
    (Thanks to Andreas Best <> for help getting locales working)

  * Added "--locale" option to override current locale at runtime
    (e.g. "--locale de_DE@euro")

  * Added "--lang" option to override current locale at runtime,
    using human-readable language names.
    (e.g. "--locale german" or "--locale deutsch")

  * Stamp descriptions now support multiple languages.
    (Each description MUST be on one line - multiple lines no longer supported!)

    Lines beginning with "xx=" (where "xx" is a locale abbreviation,
    e.g. "de" for German or "es" for Spanish) provide text for their
    respective locales.

  * Added details about stamp multilingual support to "README.txt".

  * Added more requirements to the "INSTALL.txt" documentation.

  * Supports a "~/.tuxpaintrc" file which contains default options
    (e.g. "fullscreen=yes")

  * Command-line options to disable some options
    (e.g., "--windowed" to override a "fullscreen=yes" in .tuxpaintrc)

  * Fixed a bug where Ctrl-Z and Ctrl-R would do Undo and Redo even if you
    shouldn't be able to.

  * Undo and Redo disable shape tool if it's active.
    (Really, Undo should only become available AFTER the shape has been
    rotated and drawn...)

  * Added more (and updated some) French translations.
    Jacques Chion <>

  * Added first German translations
    Fabian Franz <>

  * Fixed word-wrap issue with prompt button labels.

  * Multiple lines now read properly in stamp description (.txt) files.

  * Makefile changes (PREFIX and icon/launcher pathes)
    to suit the Filesystem Heirarchy Standard
    ( )
    Ben Armstrong <>

  * Installs man page into /usr/share/man by default now.

  * Man page now gzipped when installed.

  * No longer installs "INSTALL.txt" when installing documents.

  * Install target split up (install-bin, install-data, etc.) in Makefile
    Ben Armstrong <>

  * Added initial help display ("--help")

  * Installs PNG icon (for use by GNOME, KDE, etc.)
    Installs into /usr/share/pixmaps/

  * Installs launcher into GNOME and KDE menus (under "Graphics")

  * Created 32x32, 24 color (based on "cmap.xpm") XPM icon.
    Installs into /usr/X11R6/include/X11/pixmaps/

  * Added descriptive comments to Makefile

  * Fixed SDL surface manipulation calls (now locks/unlocks, etc.)
    John Popplewell <>

  * Added option for simple Shape tool (no rotation mode)

  * Version info. shows whether or not
    and NOSOUND ("make nosound") were set at compile-time.
    (Along with version number, version date, and LANG setting.)

  * Title/credits screen now dismisses itself after 5 seconds.

  * Added Sparkle and Fade "Magic" tools.

  * Added accelerator keys:  Ctrl-Z and Ctrl-R for Undo and Redo.
    Ctrl-S and Ctrl-O for Save and Open.

  * Fixed "Open" dialog cursor movement bug when scrolling up.

  * Added key controls for "Open" dialog:  Arrows to move.
    Space or Enter to open.  Escape to go back.  Ctrl-D to Delete.

  * Added key controls for pop-up prompts.  Y or Enter to accept.
    N or Escape to cancel.

  * Replaced perror() with internal win32_perror() under WIN32.
    John Popplewell <>

  * Chalk doesn't grab black around the edges.
    John Popplewell <>

  * Added version, usage, and copying displays (--version, --usage, --copying)
    John Popplewell <>

  * Added fullscreen and quiet modes (--fullscreen, --nosound)
    John Popplewell <>

  * Chalk and Blur don't grab black from the edges anymore.
    John Popplewell <>

  * Added option to disable "Quit" button (--noquit)

  * Man page updated.

  * Man page now gets installed.

  * Added Flip, Mirror, Rainbow and Chalk "Magic" tools.

  * Shape's and Magic's tools' tips now appear when they are selected.

  * "New" tool wasn't available after opening a saved picture.  Fixed.

  * Animated prompt window's appearance and dismissal.

  * Now prompts to save a changed image before opening.

  * Save's "camera shutter" sound effect now plays completely before quitting.

  * "Open" screen now has a cursor (select image, then click "Open" to load)

  * "Open" screen can now delete pictures (select image, then click "Erase")

  * Changes to "clean" Makefile target
    Ben Armstrong <>

  * Initial man page (docbook SGML, from Debian package of Tux Paint)
    Ben Armstrong <>

  * More memory freeing cleanups.
    John Popplewell <>

  * Added the shape tool and began work on filled shapes. (Currently disabled)
    (Fill algo. based on text in "Computer Graphics: C Version,"
    (c) Prentice Hall 1997 by Donald Hearn and M. Pauline Baker)

  * Added Save command.

  * Added Open command.

  * "Current" image (opened on launch) now referred-to by ID
    (current_id.txt), not saved as its own image (current.bmp).

  * More memory freeing cleanups.
    John Popplewell <>

  * Added French language support  (#define LANG_FR)
    Most translation by:  Charles Vidal <>
    Some thanks to Babelfish.

  * Added Spanish language suppirt  (#define LANG_ES)
    Translation thanks to Babelfish.

  * Changed UI font to "chicago.ttf", since it supports international chars.

  * Now strips (converts to spaces) newlines in rubber stamp .txt files
    (mainly to avoid the "end of line" glyph in the new Chicago font).

  * Explicitly free up memory at exit
    John Popplewell <>

  * Fixed bug in get_fname() under Windows.
    John Popplewell <>

  * Moved word-wrap text code from draw_tux_text() into its own
    function: wordwrap_text()

  * Added Yes/No prompt function: do_prompt()

  * Prompts before "New" (erase current image) and "Quit" actions.

  * Incorporated 32x32 icon for Win32.
    John Popplewell <>

  * Added "nosound" Makefile target (to build without sound or SDL_mixer)

  * Auto-saves current image (to "$HOME/.tuxpaint/current.bmp") when you
    quit.  Auto-loads it when you start back up (if it's available).
    (Creates "$HOME/.tuxpaint/" directory if it doesn't exist.)
    (Under Windows, it is simply in the "userdata/" folder in Tux Paint's

  * Data file installation moved to /usr/local/lib/tuxpaint/ by default.
    (Mike Simons)

  * Documentation now installed into /usr/local/share/doc/tuxpaint/.

  * Created first "Magic" tools: "Blur," "Blocks" and "Negative."

  * Color-picker disabled when not applicable.

2002.June.27 [unreleased]
  * Moved source into src/, documentation into docs/ and object files to obj/

  * Added "Copyright" to documentation and source files.

  * Added True Type font (TTF) support, using SDL_ttf library.

  * Added word-wrap support to the "Tip text"

  * Incorporated stuff for Windows builds (win_dirent.c/h, some #defines).
    John Popplewell <>

  * Cast surface->pixels more in get/putpixel() calls
    John Popplewell <>

  * Created "INSTALL.txt" documentation on compiling and installing

  * Created "PNG.txt" documentation on creating PNG images

  * Extensive updates and fleshing-out of README.txt

  * Made new title screen.  (Better picture, plus credits.)

  * Title screen says "Loading" while loading data.

  * Title screen remains until keypress or mouse click.

  * Created "install" target in Makefile

  * Created "AUTHORS.txt"

  * Included "COPYING.txt" (GNU GPL v.2), as the software is GPL.

  * Lightened grey around outside of selected (dark) tool/selector buttons.

  * Selector has a different sound, now.  (No longer same as toolbar buttons)

  * Made see-through brush more transparent.

  * Replaced most calls to SDL_Flip() with calls to SDL_UpdateRect().

  * Thumbnails rendering made high-quality.  (Can be disabled by

  * Stamp and brush files are sorted alphabetically by filename now.

  * Color selector buttons look like other interface buttons.
    (Can be made simple again by #define LOW_QUALITY_COLOR_SELECTOR)

  * "Tip text" and cartoon tux added for tools, colors and, if available,
    stamps.  (Store respective ".txt" files in data/images/stamps/)

  * Initial release.
    Supports brushes, stamps, lines, eraser, sound effects.