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 sourcelocale/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)
- Select the text tool (
Ctrl+T), draw a text box, type some text (e.g. in blue) - Press
Ctrl+Pto switch to the drawing tool - Change color (e.g. to orange)
- 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
