Version 0.3 Release Notes

Command Bar Improvements
  • Simple auto-complete
  • You can now cycle through the arguments of a command with the tab key. Use Shift+Tab to cycle in reverse.
  • The "find", "replace" and "replace-all" shortcuts have been improved so that they are pre-filled with the currently selected text.
Favourite Files
You can now add and remove files from a simple list of favourites which be accessed from the File menu.
Miscellaneous Improvements and Bug Fixes
  • Improved painting performance.
  • Improved the "goto" command so that it scrolls to the line if it's out of view.
  • Improved the saving process to prevent breaking hard links on Linux.
  • Removed some flickering when opening a file.
  • The "bind" command will now update the shortcut string on relevant menu items.
  • Changed the default shortcut for "replace-all" to "CTRL+H".
  • Add support for portable mode. Enable this with the "portable" command line switch. When enabled, config and log files will be loaded and saved relative to the executable rather than the user directory.
  • Fixed a bug where the "find" command would not deselect previous selections.
  • Fixed a crash when double clicking on an empty text document.
  • Fixed a bug where the tab key would not work on a blank file.
  • Fixed a crash when performing an undo/redo operation on the command bar.
  • Fixed a bug where menu item events were not getting handled correctly.
  • Fixed the "goto" command when used with word wrap enabled. Issue #2.
  • Fixed a bug with block indenting.
  • Fixed some bugs with word deletion (CTRL+Backspace/Delete).
  • Fixed some erros with word selection.
  • Fixed a bug when selecting historic commands on the command bar with the up and down arrow keys.
  • Fixed a bug where it was possible for the main window to load out of view.
  • Fixed a graphics bug where an empty tab bar was being drawn when no files are open.
  • C++ compilation fixes.
  • Very early support for OSX. This has not been thoroughly tested.
  • ... and much more!
Windows Only
  • The Windows build no longer requires linking to ole32.lib, comctl32.lib or msimg32.lib.
Linux and GTK Only
  • Popup menus are now positioned correctly.
  • Improved memory usage.
  • Improved text quality.
  • Improved compatibility with older versions of GTK.
  • Removed dependency on librt.
Source Code Improvements
Version 0.3 introduces a new toolkit called DTK (dred toolkit) which is designed for light weight, traditional desktop applications. Benefits of this toolkit include:
  • Small a light weight.
  • Easy to compile. The entire source code for DTK is compiled as a single translation unit (dtk.c) and requires linking to only necessary platform-specific libraries such as GTK.
  • Written entirely in C.
  • Improved control/widget and event handling infrastructure.
    • Windows are treated just like any other control and are no longer special entities.
    • Events are now handled through a central event queue rather than callbacks.
  • Improved painting performance.
    • Controls can be redrawn immediately or scheduled for later. Scheduling redraws improves performance because it gives the toolkit an opportunity batch drawing.
    • Painting on GTK has been improved. Previously, painting was done to an intermediary surface and then copied onto the window. The toolkit will now draw directly to the window. This also saves on a bit of memory.
Many more features and improvements are in the pipline for DTK, including common controls, better high DPI support, drag-and-drop, and much more.
Copyright © 2019 David Reid
Developed by David Reid - davidreidsoftware@gmail.com