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).
Added Polish (pl_PL) translation contributed by Albert Bartoszko (gicural7).
The translation covers menus, OSD notifications, keyboard shortcut descriptions,
preferences, and schema strings.
- 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)
po/pl_PL/LC_MESSAGES/draw-on-gnome.po — translation source
locale/pl_PL/LC_MESSAGES/draw-on-gnome.mo — compiled binary
Translation by Albert Bartoszko (gicural7) — contributed via
PR #49.
Fixed a bug where changing the drawing color after using the text tool would
retroactively change the color of the last typed text.
- Select the text tool (
Ctrl+T), draw a text box, type some text (e.g. in blue)
- Press
Ctrl+P to switch to the drawing tool
- Change color (e.g. to orange)
- The previously typed text changes to orange
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.
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.
area.js — selectTool() method