Skip to content

VERSION 11.1 - Minor Release

Got some fixes and new features. These are included in the main repo and are being released on GitHub as 11.1. However, they won't be available on GNOME (E.G.O.) until we release version 12 (when GNOME 51 comes out).

Polish Translation Added

Summary

Added Polish (pl_PL) translation contributed by Albert Bartoszko (gicural7). The translation covers menus, OSD notifications, keyboard shortcut descriptions, preferences, and schema strings.

Notes

  • Color palette display names (e.g. "White", "HotPink") remain in English — these are user-defined labels stored in GSettings, not translatable strings
  • A small number of strings related to the arrow type feature are included in the translation file but will be dormant until that feature is implemented in a future version
  • Tested on GNOME 50 (Manjaro) with system locale set to Polski (pl_PL)

Files Added

  • po/pl_PL/LC_MESSAGES/draw-on-gnome.po — translation source
  • locale/pl_PL/LC_MESSAGES/draw-on-gnome.mo — compiled binary

Credit

Translation by Albert Bartoszko (gicural7) — contributed via PR #49.

Bug Fix: Text Tool Color Bleed

Summary

Fixed a bug where changing the drawing color after using the text tool would retroactively change the color of the last typed text.

Steps to Reproduce (before fix)

  1. Select the text tool (Ctrl+T), draw a text box, type some text (e.g. in blue)
  2. Press Ctrl+P to switch to the drawing tool
  3. Change color (e.g. to orange)
  4. The previously typed text changes to orange

Root Cause

When switching tools via keyboard shortcut, selectTool() in area.js was called directly without first checking whether the text tool was still active and writing. This left this.currentElement pointing at the finished text element rather than setting it to null.

When selectColor() subsequently ran, it found a non-null currentElement and updated its color — hitting the already-committed text element directly.

Button-click tool changes were unaffected because _onButtonPressed() already had a guard:

if (this.currentElement && this.currentElement.shape == Shape.TEXT && this.isWriting)
    this._stopWriting();

But selectTool() had no equivalent check.

Fix

One guard added to selectTool() in area.js:

Before:

selectTool(tool) {
    this.currentTool = tool;
    this.emit('show-osd', this._extension.FILES.ICONS[`TOOL_${Tool.getNameOf(tool)}`] || null, DisplayStrings.Tool[tool], "", -1, false);
    this.updatePointerCursor();
}

After:

selectTool(tool) {
    if (this.isWriting)
        this._stopWriting();
    this.currentTool = tool;
    this.emit('show-osd', this._extension.FILES.ICONS[`TOOL_${Tool.getNameOf(tool)}`] || null, DisplayStrings.Tool[tool], "", -1, false);
    this.updatePointerCursor();
}

When _stopWriting() is called, it pushes the completed text element into this.elements and sets this.currentElement = null. Subsequent color changes then find no active element to modify.

Files Changed

  • area.js — selectTool() method

That's it! ENJOY! 😀