Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gromit-mpx for openSUSE:Factory 
checked in at 2026-08-21 22:17:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gromit-mpx (Old)
 and      /work/SRC/openSUSE:Factory/.gromit-mpx.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gromit-mpx"

Fri Aug 21 22:17:31 2026 rev:3 rq:1372901 version:1.9.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/gromit-mpx/gromit-mpx.changes    2026-02-23 
16:15:11.107854193 +0100
+++ /work/SRC/openSUSE:Factory/.gromit-mpx.new.1258/gromit-mpx.changes  
2026-08-21 22:17:37.483590671 +0200
@@ -1,0 +2,8 @@
+Thu Aug 20 11:38:05 UTC 2026 - Dominique Leuenberger <[email protected]>
+
+- Update to version 1.9.0:
+  + Added functionality to show a length label when drawing lines
+  + Fixed a minimal memleak in the client program
+  + Updated translations
+
+-------------------------------------------------------------------

Old:
----
  gromit-mpx-1.8.0.tar.gz

New:
----
  _scmsync.obsinfo
  build.specials.obscpio
  gromit-mpx-1.9.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gromit-mpx.spec ++++++
--- /var/tmp/diff_new_pack.iq8F4J/_old  2026-08-21 22:17:38.563629244 +0200
+++ /var/tmp/diff_new_pack.iq8F4J/_new  2026-08-21 22:17:38.564629280 +0200
@@ -18,7 +18,7 @@
 
 
 Name:           gromit-mpx
-Version:        1.8.0
+Version:        1.9.0
 Release:        0
 Summary:        A desktop annotation tool
 License:        GPL-2.0-or-later

++++++ _scmsync.obsinfo ++++++
mtime: 1787225970
commit: afa6b240b366dc2447abfd4ff83b29f37adfa96576a97a6946464bf254bafef9
url: https://src.opensuse.org/GNOME/gromit-mpx
revision: afa6b240b366dc2447abfd4ff83b29f37adfa96576a97a6946464bf254bafef9
projectscmsync: https://src.opensuse.org/GNOME/_ObsPrj

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-08-20 13:39:30.000000000 +0200
@@ -0,0 +1,4 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild

++++++ gromit-mpx-1.8.0.tar.gz -> gromit-mpx-1.9.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/AUTHORS new/gromit-mpx-1.9.0/AUTHORS
--- old/gromit-mpx-1.8.0/AUTHORS        2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/AUTHORS        2026-03-18 20:01:01.000000000 +0100
@@ -29,4 +29,5 @@
 Leonardo Taccari <[email protected]>
 Andrew Marshall <[email protected]>
 gavine99 <[email protected]>
-Marcin Orlowski <[email protected]>
\ No newline at end of file
+Marcin Orlowski <[email protected]>
+markovka <[email protected]>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/CMakeLists.txt 
new/gromit-mpx-1.9.0/CMakeLists.txt
--- old/gromit-mpx-1.8.0/CMakeLists.txt 2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/CMakeLists.txt 2026-03-18 20:01:01.000000000 +0100
@@ -1,9 +1,9 @@
 cmake_minimum_required(VERSION 3.0...3.10)
-project(gromit-mpx LANGUAGES C)
+project(gromit-mpx VERSION 1.9.0 LANGUAGES C)
 include(GNUInstallDirs)
+include(CPack)
 
 set(target_name gromit-mpx)
-set(version 1.8.0)
 set(LOCALE_DOMAIN ${CMAKE_PROJECT_NAME})
 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 if(CMAKE_GENERATOR MATCHES "Unix Makefiles|Ninja")
@@ -82,6 +82,7 @@
 GETTEXT_PROCESS_PO_FILES(fa ALL PO_FILES po/fa.po)
 GETTEXT_PROCESS_PO_FILES(he ALL PO_FILES po/he.po)
 GETTEXT_PROCESS_PO_FILES(it ALL PO_FILES po/it.po)
+GETTEXT_PROCESS_PO_FILES(ka ALL PO_FILES po/ka.po)
 GETTEXT_PROCESS_PO_FILES(pt_BR ALL PO_FILES po/pt_BR.po)
 GETTEXT_PROCESS_PO_FILES(zh_CN ALL PO_FILES po/zh_CN.po)
 GETTEXT_PROCESS_PO_FILES(zh_TW ALL PO_FILES po/zh_TW.po)
@@ -100,6 +101,7 @@
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/de.gmo DESTINATION 
${CMAKE_INSTALL_DATADIR}/locale/de/LC_MESSAGES/ RENAME ${LOCALE_DOMAIN}.mo)
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/es.gmo DESTINATION 
${CMAKE_INSTALL_DATADIR}/locale/es/LC_MESSAGES/ RENAME ${LOCALE_DOMAIN}.mo)
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/it.gmo DESTINATION 
${CMAKE_INSTALL_DATADIR}/locale/it/LC_MESSAGES/ RENAME ${LOCALE_DOMAIN}.mo)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ka.gmo DESTINATION 
${CMAKE_INSTALL_DATADIR}/locale/ka/LC_MESSAGES/ RENAME ${LOCALE_DOMAIN}.mo)
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/fa.gmo DESTINATION 
${CMAKE_INSTALL_DATADIR}/locale/fa/LC_MESSAGES/ RENAME ${LOCALE_DOMAIN}.mo)
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/he.gmo DESTINATION 
${CMAKE_INSTALL_DATADIR}/locale/he/LC_MESSAGES/ RENAME ${LOCALE_DOMAIN}.mo)
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pt_BR.gmo DESTINATION 
${CMAKE_INSTALL_DATADIR}/locale/pt_BR/LC_MESSAGES/ RENAME ${LOCALE_DOMAIN}.mo)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/ChangeLog 
new/gromit-mpx-1.9.0/ChangeLog
--- old/gromit-mpx-1.8.0/ChangeLog      2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/ChangeLog      2026-03-18 20:01:01.000000000 +0100
@@ -1,3 +1,117 @@
+commit 9992e30b2c184375dae4688f3f9b9a37ee45279f
+Author: Christian Beier <[email protected]>
+Date:   Wed Mar 18 19:59:55 2026 +0100
+
+    AppStream: add v1.9.0 release notes
+
+commit 934fd9a2f4407f5429ae8391539cb7ab108ab1ed
+Author: Christian Beier <[email protected]>
+Date:   Wed Mar 18 19:59:14 2026 +0100
+
+    NEWS: update for v1.9.0
+
+commit a35c250a20ee73a2dd3e149a79165b1f265e8102
+Author: Christian Beier <[email protected]>
+Date:   Wed Mar 18 19:55:08 2026 +0100
+
+    CMake: bump minor version
+
+commit f58e99b01e0f034a84c9ca12017431541f97c8a0
+Author: Christian Beier <[email protected]>
+Date:   Wed Mar 18 19:53:43 2026 +0100
+
+    AUTHORS: update
+
+commit 193d91568c82dcf8f6549687d7e2d00db5e6372f
+Author: Christian Beier <[email protected]>
+Date:   Wed Mar 18 19:52:51 2026 +0100
+
+    callbacks: update Authors
+
+commit 9a4c98a57afa45b428424bfade94ef34826d2d21
+Author: Christian Beier <[email protected]>
+Date:   Wed Mar 18 19:52:02 2026 +0100
+
+    callbacks: update Copyright year
+
+commit 26b88f91d03df32b3587b050ddefa7ff1e4e4802
+Author: markovka <[email protected]>
+Date:   Wed Mar 18 18:04:21 2026 +0100
+
+    Add functionality to show length label for LINE tool
+    
+    * drawing: add text label showing line length in pixels
+    
+    When applied, this commit will add a text label displaying the line length 
in pixels at the midpoint of lines.
+    
+    * config: add text size parameter
+    
+    Adds textsize tool config options for line length label. Can be set in 
gromit-mpx.cfg, e.g. LINE (color="red" textsize=16). Default is textsize=14.
+    
+    * config: add euclidean distance calculation parameter
+    
+    Add distance tool config options for line length calculation. Can be set 
in gromit-mpx.cfg, e.g. LINE (color="red" distance="euclidean").
+    
+    * config: add separate axis distance calculation option
+    
+    e.g. LINE (color="red" distance="axis").
+    Also adds an option for calculating both euclidean and axis distance 
(distance="both").
+    
+    * config: change distance param to showlength and remove axis option
+    
+    e.g. LINE (color="red" showlength).
+    
+    * README: add showlength documentation
+    
+    * README: update showlength documentation
+    
+    Closes #251
+
+commit 4b439f8e195441a3f53a50221af73e79d0a142e5
+Author: Christian Beier <[email protected]>
+Date:   Thu Mar 5 08:01:41 2026 +0100
+
+    CMake: include CPack
+
+commit e3a227ff99d9e03d7a63ea01334b1e954ca3022d
+Author: Christian Beier <[email protected]>
+Date:   Thu Mar 5 07:59:02 2026 +0100
+
+    CMake: use CMake's 'PROJECT_VERSION' instead of custom 'version'
+
+commit b54838c0b15a840aa3131b9ea8f8148c82480c85
+Author: Christian Beier <[email protected]>
+Date:   Tue Feb 24 16:34:26 2026 +0100
+
+    main: plug minimal memleak in client program
+    
+    This would be reclaimed by the OS anyway since as a client we're super
+    short-lived, but do it for code quality anyway.
+    
+    Closes #206
+
+commit 23c6c685a29e84b3cc8c45a6fc490dd7b3a9c119
+Author: Ekaterine Papava <[email protected]>
+Date:   Tue Feb 24 19:20:07 2026 +0400
+
+    po: Add Georgian translation
+
+commit 8e4d666f9f01a6068809f1290cbdeda4f61b96ac
+Author: Christian Beier <[email protected]>
+Date:   Thu Dec 4 20:36:35 2025 +0100
+
+    callbacks,main: set subpixel antialiasing
+    
+    ...instead of the default one. Might yield some quality improvements.
+    
+    Closes #245
+
+commit 2ebc0cb435eaa4fb7995e36e7cf4b84c35c64b3d
+Author: Christian Beier <[email protected]>
+Date:   Tue Nov 11 22:19:23 2025 +0100
+
+    ChangeLog: update
+
 commit 5d4939221746867915928db26599f0781d39bc30
 Author: Christian Beier <[email protected]>
 Date:   Tue Nov 11 22:18:04 2025 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/NEWS.md new/gromit-mpx-1.9.0/NEWS.md
--- old/gromit-mpx-1.8.0/NEWS.md        2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/NEWS.md        2026-03-18 20:01:01.000000000 +0100
@@ -1,3 +1,14 @@
+# Gromit-MPX 1.9.0 - 2026-03-18
+
+## ๐ŸŒ… New Features
+
+* Added Georgian translation ๐Ÿ‡ฌ๐Ÿ‡ช.
+* Added functionality to show a length label when drawing lines.
+
+## ๐Ÿ›   Fixes
+
+* Fixed a minimal memleak in the client program.
+
 # Gromit-MPX 1.8.0 - 2025-11-11
 
 ## ๐ŸŒ… New Features
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/README.md 
new/gromit-mpx-1.9.0/README.md
--- old/gromit-mpx-1.8.0/README.md      2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/README.md      2026-03-18 20:01:01.000000000 +0100
@@ -206,6 +206,14 @@
 
     "green Line" = LINE (color = "green");
 
+
+Add `showlength` to the `LINE` to display its length (px) at the midpoint.
+You can specify `textsize` (default: 14).
+
+![showlength tool](data/tool-length.webp)
+
+    "length Line" = LINE (color = "red" showlength textsize=20);
+
 A `RECT`-tool draws rectangles.
 
 ![RECT tool](data/tool-rect.webp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/build-config.h_cmake_in 
new/gromit-mpx-1.9.0/build-config.h_cmake_in
--- old/gromit-mpx-1.8.0/build-config.h_cmake_in        2025-11-11 
22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/build-config.h_cmake_in        2026-03-18 
20:01:01.000000000 +0100
@@ -8,7 +8,7 @@
 #define PACKAGE_URL "https://github.com/bk138/gromit-mpx";
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "${version}"
+#define PACKAGE_VERSION "${PROJECT_VERSION}"
 
 /* The package's locale domain. */
 #define PACKAGE_LOCALE_DOMAIN "${LOCALE_DOMAIN}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gromit-mpx-1.8.0/data/net.christianbeier.Gromit-MPX.appdata.xml 
new/gromit-mpx-1.9.0/data/net.christianbeier.Gromit-MPX.appdata.xml
--- old/gromit-mpx-1.8.0/data/net.christianbeier.Gromit-MPX.appdata.xml 
2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/data/net.christianbeier.Gromit-MPX.appdata.xml 
2026-03-18 20:01:01.000000000 +0100
@@ -62,6 +62,16 @@
   </screenshots>
 
   <releases>
+   <release version="1.9.0" date="2026-03-18">
+      <description>
+       <ul>
+          <li>Added Georgian translation ๐Ÿ‡ฌ๐Ÿ‡ช.</li>
+          <li>Added functionality to show a length label when drawing 
lines.</li>
+          <li>Fixed a minimal memleak in the client program.</li>
+       </ul>
+      </description>
+    </release>
+
     <release version="1.8.0" date="2025-11-11">
       <description>
        <p>
Binary files old/gromit-mpx-1.8.0/data/tool-length.webp and 
new/gromit-mpx-1.9.0/data/tool-length.webp differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/po/ka.po 
new/gromit-mpx-1.9.0/po/ka.po
--- old/gromit-mpx-1.8.0/po/ka.po       1970-01-01 01:00:00.000000000 +0100
+++ new/gromit-mpx-1.9.0/po/ka.po       2026-03-18 20:01:01.000000000 +0100
@@ -0,0 +1,211 @@
+# Georgian translation for Gromit-MPX.
+# Copyright (C) 2026 Gromit-MPX's authors.
+# This file is distributed under the same license as the Gromit-MPX package.
+# Ekaterine Papava <[email protected]>, 2026.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Gromit-MPX\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-12-04 20:36+0100\n"
+"PO-Revision-Date: 2026-02-24 14:15+0100\n"
+"Last-Translator: Ekaterine Papava <[email protected]>\n"
+"Language-Team: Georgian <(nothing)>\n"
+"Language: ka\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 3.8\n"
+
+#: ../src/callbacks.c:867
+msgid "About Gromit-MPX"
+msgstr "Gromit-MPX-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘"
+
+#: ../src/main.c:918
+msgid "Bigger Opacity"
+msgstr "แƒฃแƒคแƒ แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ’แƒแƒฃแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒแƒ‘แƒ"
+
+#: ../src/main.c:912
+#, c-format
+msgid "Clear Screen (SHIFT-%s)"
+msgstr "แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒ’แƒแƒกแƒฃแƒคแƒแƒ—แƒแƒ•แƒ”แƒ‘แƒ (SHIFT-%s)"
+
+#: ../src/callbacks.c:933
+msgid ""
+"Do you want to show this introduction again on the next start of Gromit-"
+"MPX?\n"
+"You can always access it again via the sys tray menu.\n"
+msgstr ""
+"แƒ’แƒœแƒ”แƒ‘แƒแƒ•แƒ— แƒฌแƒแƒ แƒ“แƒ’แƒ”แƒœแƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒชแƒ Gromit-MPX-แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฏแƒ”แƒ แƒ–แƒ” "
+"แƒ’แƒแƒฃแƒกแƒ•แƒ”แƒ‘แƒ—?\n"
+"แƒ›แƒแƒกแƒ—แƒแƒœ แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ  แƒกแƒแƒแƒ—แƒ—แƒแƒœ แƒฎแƒแƒขแƒฃแƒšแƒแƒก แƒ›แƒ”แƒœแƒ˜แƒฃแƒ“แƒแƒœ.\n"
+
+#: ../src/config.c:585
+#, c-format
+msgid "Failed parsing config file %s, falling back to default tools."
+msgstr ""
+"แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก %s แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒฉแƒแƒ•แƒแƒ แƒ“แƒ. แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ• "
+"แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ–แƒ”."
+
+#: ../src/callbacks.c:868
+msgid ""
+"Gromit-MPX (GRaphics Over MIscellaneous Things - Multi-Pointer-EXtension) is "
+"an on-screen annotation tool that works with any Unix desktop environment "
+"under X11 as well as Wayland."
+msgstr ""
+"Gromit-MPX (GRaphics Over MIscellaneous Things - Multi-Pointer-EXtension) "
+"แƒ”แƒ™แƒ แƒแƒœแƒ–แƒ” แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช Unix-แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก "
+"แƒ แƒแƒ’แƒแƒ แƒช X11-แƒ–แƒ”, แƒ˜แƒกแƒ” Wayland-แƒ–แƒ”."
+
+#: ../src/callbacks.c:893
+msgid ""
+"Gromit-MPX (GRaphics Over MIscellaneous Things) is a small tool to make\n"
+"annotations on the screen.\n"
+"\n"
+"Its main use is for making presentations of some application. Normally,\n"
+"you would have to move the mouse pointer around the point of interest\n"
+"until hopefully everybody noticed it.  With Gromit-MPX, you can draw\n"
+"everywhere onto the screen, highlighting some button or area.\n"
+"\n"
+"If you happen to enjoy using Gromit-MPX, please consider supporting\n"
+"its development by using one of the donation options on the project's\n"
+"website or directly via the support options available from the tray menu.\n"
+msgstr ""
+"Gromit-MPX (GRaphics Over MIscellaneous Things) แƒžแƒแƒขแƒแƒ แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒ\n"
+"แƒ”แƒ™แƒ แƒแƒœแƒ–แƒ” แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“.\n"
+"\n"
+"แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ.\n"
+"แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ›แƒแƒซแƒ แƒแƒ•แƒ”แƒ‘แƒ— แƒ—แƒแƒ’แƒฃแƒœแƒแƒก แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒก แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜แƒก "
+"แƒ’แƒแƒ แƒจแƒ”แƒ›แƒ,\n"
+"แƒกแƒแƒœแƒแƒ› แƒ›แƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒแƒ  แƒจแƒ”แƒแƒ›แƒฉแƒœแƒ”แƒ•แƒก.  Gromit-MPX-แƒ˜แƒ— แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ—, แƒ“แƒแƒฎแƒแƒขแƒแƒ—\n"
+"แƒ”แƒ™แƒ แƒแƒœแƒ–แƒ” แƒกแƒแƒ“แƒแƒช แƒ’แƒœแƒ”แƒ‘แƒแƒ•แƒ— แƒ“แƒ แƒ’แƒแƒ›แƒแƒ™แƒ•แƒ”แƒ—แƒแƒ— แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒแƒœ แƒแƒ แƒ”.\n"
+"\n"
+"แƒ—แƒฃ Gromit-MPX แƒ›แƒแƒ’แƒฌแƒแƒœแƒ—, แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก\n"
+"แƒ“แƒแƒคแƒ˜แƒœแƒแƒœแƒกแƒ”แƒ‘แƒแƒ–แƒ” แƒงแƒ•แƒ”แƒšแƒ แƒ’แƒ–แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ˜แƒ“แƒแƒœ,\n"
+"แƒแƒœ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ  แƒกแƒแƒแƒ—แƒ—แƒแƒœ แƒฎแƒแƒขแƒฃแƒšแƒแƒก แƒ›แƒ”แƒœแƒ˜แƒฃแƒ“แƒแƒœแƒแƒ "
+"แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜.\n"
+
+#: ../src/callbacks.c:927
+msgid "Gromit-MPX - How to use it"
+msgstr "Gromit-MPX - แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ"
+
+#: ../src/callbacks.c:903
+msgid "Gromit-MPX - What is it?"
+msgstr "Gromit-MPX - แƒ แƒ แƒแƒ แƒ˜แƒก แƒ”แƒก?"
+
+#: ../src/main.c:919
+msgid "Lesser Opacity"
+msgstr "แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ แƒ’แƒแƒฃแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒแƒ‘แƒ"
+
+#: ../src/config.c:199
+msgid "No usable config file found, falling back to default tools."
+msgstr ""
+"แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ“แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ˜แƒšแƒ˜ แƒแƒ แƒแƒ. แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ• "
+"แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ–แƒ”."
+
+#: ../src/main.c:922
+#, c-format
+msgid "Redo (SHIFT-%s)"
+msgstr "แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ (SHIFT-%s)"
+
+#: ../src/callbacks.c:935
+msgid "Show again on startup"
+msgstr "แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก"
+
+#: ../src/main.c:916
+msgid "Thicker Lines"
+msgstr "แƒฃแƒคแƒ แƒ แƒกแƒฅแƒ”แƒšแƒ˜ แƒฎแƒแƒ–แƒ”แƒ‘แƒ˜"
+
+#: ../src/main.c:917
+msgid "Thinner Lines"
+msgstr "แƒฃแƒคแƒ แƒ แƒ—แƒฎแƒ”แƒšแƒ˜ แƒฎแƒแƒ–แƒ”แƒ‘แƒ˜"
+
+#: ../src/main.c:910
+#, c-format
+msgid "Toggle Painting (%s)"
+msgstr "แƒฎแƒแƒขแƒ•แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ (%s)"
+
+#: ../src/main.c:914
+#, c-format
+msgid "Toggle Visibility (CTRL-%s)"
+msgstr "แƒฎแƒ˜แƒšแƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ (Ctrl+%s)"
+
+#: ../src/main.c:920
+#, c-format
+msgid "Undo (%s)"
+msgstr "แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ (%s)"
+
+#: ../src/main.c:1057
+msgid "Via LiberaPay"
+msgstr "แƒจแƒ”แƒ›แƒแƒ’แƒ•แƒฌแƒ˜แƒ แƒ”แƒ— Liberapay-แƒ˜แƒ—"
+
+#: ../src/main.c:1058
+msgid "Via Patreon"
+msgstr "แƒจแƒ”แƒ›แƒแƒ’แƒ•แƒฌแƒ˜แƒ แƒ”แƒ— Patreon-แƒ–แƒ”"
+
+#: ../src/main.c:1059
+msgid "Via PayPal"
+msgstr "แƒจแƒ”แƒฌแƒ˜แƒ แƒ•แƒ PayPal-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—"
+
+#: ../src/callbacks.c:911
+#, c-format
+msgid ""
+"You can operate Gromit-MPX using its tray icon (if your desktop environment\n"
+"provides a sys tray), but since you typically want to use the program you "
+"are\n"
+"demonstrating and highlighting something is a short interruption of your\n"
+"workflow, Gromit-MPX can be toggled on and off on the fly via a hotkey:\n"
+"\n"
+"It grabs the `%s` and `%s` keys, so that no other application can use them\n"
+"and they are available to Gromit-MPX only.  The available commands are:\n"
+"\n"
+"<tt><b>   toggle painting:         %s\n"
+"   clear screen:            SHIFT-%s\n"
+"   toggle visibility:       CTRL-%s\n"
+"   quit:                    ALT-%s\n"
+"   undo last stroke:        %s\n"
+"   redo last undone stroke: SHIFT-%s</b></tt>"
+msgstr ""
+"Gromit-MPX-แƒ˜แƒ— แƒแƒžแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ  แƒกแƒแƒแƒ—แƒ—แƒแƒœ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒแƒขแƒฃแƒšแƒแƒ—แƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ—\n"
+"(แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒกแƒแƒแƒ—แƒ˜ แƒแƒฅแƒ•แƒก), แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• "
+"แƒ’แƒœแƒ”แƒ‘แƒแƒ•แƒ—,\n"
+"แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ“แƒ”แƒ›แƒแƒœแƒกแƒขแƒ แƒแƒชแƒ˜แƒแƒก แƒแƒฎแƒ“แƒ”แƒœแƒ— แƒ“แƒ แƒ แƒแƒ˜แƒ›แƒ”แƒก แƒ’แƒแƒ›แƒแƒ™แƒ•แƒ”แƒ—แƒ "
+"แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜\n"
+"แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒ“แƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒฌแƒงแƒ•แƒ”แƒขแƒแƒ, Gromit-MPX แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ แƒ—แƒแƒ—, แƒแƒœ แƒฉแƒแƒ แƒ—แƒแƒ— "
+"แƒ›แƒแƒšแƒกแƒแƒฎแƒ›แƒแƒ‘แƒ˜แƒ—:\n"
+"\n"
+"แƒ˜แƒก แƒ˜แƒญแƒ”แƒ แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ”แƒ‘แƒก '%s' แƒ“แƒ '%s', แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒแƒ— แƒกแƒฎแƒ•แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ•แƒ”แƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก "
+"แƒ“แƒ แƒ˜แƒกแƒ˜แƒœแƒ˜, แƒ›แƒฎแƒแƒšแƒแƒ“,\n"
+"Gromit-MPX-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜.  แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ:\n"
+"\n"
+"<tt><b>   แƒฎแƒแƒขแƒ•แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ:          %s\n"
+"   แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒ’แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒ          Shift+%s\n"
+"   แƒฎแƒ˜แƒšแƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ       Ctrl+%s\n"
+"   แƒ’แƒแƒกแƒ•แƒšแƒ:                                   Alt+%s\n"
+"   แƒ‘แƒแƒšแƒ แƒ’แƒแƒกแƒ›แƒ˜แƒก แƒ’แƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒ:            %s\n"
+"   แƒ‘แƒแƒšแƒ แƒ’แƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒกแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ: Shift+%s</b><tt>"
+
+#: ../src/main.c:930
+msgid "_About"
+msgstr "_แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘"
+
+#: ../src/main.c:927
+msgid "_Edit Config"
+msgstr "แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒฉแƒแƒกแƒฌแƒแƒ _แƒ”แƒ‘แƒ"
+
+#: ../src/main.c:926
+msgid "_Introduction"
+msgstr "แƒจแƒ”แƒกแƒแƒ•แƒแƒš_แƒ˜"
+
+#: ../src/main.c:933
+#, c-format
+msgid "_Quit (ALT-%s)"
+msgstr "_แƒ’แƒแƒกแƒ•แƒšแƒ (ALT-%s)"
+
+#: ../src/main.c:928
+msgid "_Report Bug / Request Feature"
+msgstr "แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒแƒœแƒ’แƒ_แƒ แƒ˜แƒจแƒ˜ / แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ"
+
+#: ../src/main.c:929
+msgid "_Support Gromit-MPX"
+msgstr "Gromit-MPX-แƒ˜แƒก แƒ›_แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/src/callbacks.c 
new/gromit-mpx-1.9.0/src/callbacks.c
--- old/gromit-mpx-1.8.0/src/callbacks.c        2025-11-11 22:19:23.000000000 
+0100
+++ new/gromit-mpx-1.9.0/src/callbacks.c        2026-03-18 20:01:01.000000000 
+0100
@@ -187,7 +187,7 @@
   while (g_hash_table_iter_next (&it, NULL, &value)) 
     {
       GromitPaintContext *context = value;
-      cairo_set_antialias(context->paint_ctx, data->composited ? 
CAIRO_ANTIALIAS_DEFAULT : CAIRO_ANTIALIAS_NONE);
+      cairo_set_antialias(context->paint_ctx, data->composited ? 
CAIRO_ANTIALIAS_SUBPIXEL : CAIRO_ANTIALIAS_NONE);
     }
       
 
@@ -399,7 +399,9 @@
           if (type == GROMIT_LINE)
             {
               GromitArrowType atype = devdata->cur_context->arrow_type;
-             draw_line (data, ev->device, devdata->lastx, devdata->lasty, 
ev->x, ev->y);
+                 draw_line (data, ev->device, devdata->lastx, devdata->lasty, 
ev->x, ev->y);
+              if (devdata->cur_context->showlength)
+                  draw_length_label (data, ev->device, devdata->lastx, 
devdata->lasty, ev->x, ev->y);
               if (devdata->cur_context->arrowsize > 0)
                 {
                   GromitArrowType atype = devdata->cur_context->arrow_type;
@@ -860,6 +862,7 @@
                                 "Andrew Marshall 
<[email protected]>",
                                 "gavine99 
<[email protected]>",
                                 "Marcin Orlowski <[email protected]>",
+                                "markovka 
<[email protected]>",
                                NULL };
     gtk_show_about_dialog (NULL,
                           "program-name", "Gromit-MPX",
@@ -869,7 +872,7 @@
                           "version", PACKAGE_VERSION,
                           "website", PACKAGE_URL,
                           "authors", authors,
-                          "copyright", "2009-2025 Christian Beier, Copyright 
2000 Simon Budig",
+                          "copyright", "2009-2026 Christian Beier, Copyright 
2000 Simon Budig",
                           "license-type", GTK_LICENSE_GPL_2_0,
                           NULL);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/src/config.c 
new/gromit-mpx-1.9.0/src/config.c
--- old/gromit-mpx-1.8.0/src/config.c   2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/src/config.c   2026-03-18 20:01:01.000000000 +0100
@@ -125,6 +125,8 @@
   SYM_SIMPLIFY,
   SYM_SNAP,
   SYM_FILLCOLOR,
+  SYM_TEXTSIZE,
+  SYM_SHOWLENGTH,
 };
 
 /*
@@ -244,6 +246,8 @@
   g_scanner_scope_add_symbol (scanner, 2, "simplify",  (gpointer) 
SYM_SIMPLIFY);
   g_scanner_scope_add_symbol (scanner, 2, "snap",      (gpointer) SYM_SNAP);
   g_scanner_scope_add_symbol (scanner, 2, "fillcolor", (gpointer) 
SYM_FILLCOLOR);
+  g_scanner_scope_add_symbol (scanner, 2, "textsize",  (gpointer) 
SYM_TEXTSIZE);
+  g_scanner_scope_add_symbol (scanner, 2, "showlength",(gpointer) 
SYM_SHOWLENGTH);
 
   g_scanner_set_scope (scanner, 0);
   scanner->config->scope_0_fallback = 0;
@@ -289,6 +293,8 @@
           snapdist = 0;
           fill_color = NULL;
           fg_color = data->red;
+          gfloat textsize = 14.0;
+          gboolean showlength = 0;
 
           if (token == G_TOKEN_SYMBOL)
             {
@@ -314,9 +320,11 @@
                   maxangle = context_template->maxangle;
                   snapdist = context_template->snapdist;
                   minwidth = context_template->minwidth;
-                 maxwidth = context_template->maxwidth;
+                         maxwidth = context_template->maxwidth;
                   fill_color = context_template->fill_color;
                   fg_color = context_template->paint_color;
+                  textsize = context_template->textsize;
+                  showlength = context_template->showlength;
                 }
               else
                 {
@@ -479,7 +487,19 @@
                               fill_color = NULL;
                             }
                         }
-                     else
+                      else if ((intptr_t) scanner->value.v_string == 
SYM_TEXTSIZE)
+                        {
+                          gfloat v = parse_get_float(scanner, "Missing 
textsize value (float)");
+                          if (isnan(v)) goto cleanup;
+
+                          if (v < 1) v = 1;
+                          textsize = v;
+                        }
+                      else if ((intptr_t) scanner->value.v_symbol == 
SYM_SHOWLENGTH)
+                        {
+                          showlength = 1;
+                        }
+                             else
                         {
                           g_printerr ("Unknown tool type?????\n");
                         }
@@ -509,6 +529,8 @@
                                        simplify, radius, maxangle, minlen, 
snapdist,
                                        minwidth, maxwidth);
           context->fill_color = fill_color;
+          context->textsize = textsize;
+          context->showlength = showlength;
           g_hash_table_insert (data->tool_config, name, context);
         }
       else if (token == G_TOKEN_SYMBOL &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/src/drawing.c 
new/gromit-mpx-1.9.0/src/drawing.c
--- old/gromit-mpx-1.8.0/src/drawing.c  2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/src/drawing.c  2026-03-18 20:01:01.000000000 +0100
@@ -31,7 +31,7 @@
 
       data->modified = 1;
 
-      gdk_window_invalidate_rect(gtk_widget_get_window(data->win), &rect, 0); 
+      gdk_window_invalidate_rect(gtk_widget_get_window(data->win), &rect, 0);
     }
 
   data->painted = 1;
@@ -114,7 +114,7 @@
   GdkRectangle rect;
   GromitDeviceData *devdata = g_hash_table_lookup(data->devdatatable, dev);
 
-  /* Iinvalidation rectangle */
+  /* Invalidation rectangle */
   rect.x = x - radius - data->maxwidth / 2;
   rect.y = y - radius - data->maxwidth / 2;
   rect.width = 2 * radius + data->maxwidth;
@@ -146,3 +146,67 @@
 
   data->painted = 1;
 }
+
+void draw_length_label (GromitData *data,
+                        GdkDevice *dev,
+                        gint x1, gint y1,
+                        gint x2, gint y2)
+{
+  gdouble dx = x2 - x1;
+  gdouble dy = y2 - y1;
+  gdouble length = sqrt(dx * dx + dy * dy);
+
+  if (length == 0) return;
+
+  char label[64];
+  snprintf(label, sizeof(label), "%.0f px", length);
+
+  gdouble mx = (x1 + x2) / 2;
+  gdouble my = (y1 + y2) / 2;
+
+  draw_string_label(data, dev, mx, my, label);
+}
+
+void draw_string_label (GromitData *data, GdkDevice *dev, gint x, gint y, char 
*label)
+{
+  GromitDeviceData *devdata = g_hash_table_lookup(data->devdatatable, dev);
+  cairo_t *cr = devdata->cur_context->paint_ctx;
+
+  cairo_save(cr);
+
+  cairo_select_font_face(cr, "Sans", CAIRO_FONT_SLANT_NORMAL, 
CAIRO_FONT_WEIGHT_BOLD);
+  cairo_set_font_size(cr, devdata->cur_context->textsize);
+  cairo_text_extents_t extents;
+  cairo_text_extents(cr, label, &extents);
+
+  gdouble padding = 4.0;
+  gdouble tx = x - extents.width / 2.0;
+  gdouble ty = y - extents.height / 2.0;
+
+  cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
+  cairo_set_source_rgba(cr, 0, 0, 0, 0.5);
+  cairo_rectangle(cr,
+                  tx + extents.x_bearing - padding,
+                  ty + extents.y_bearing - padding,
+                  extents.width + 2 * padding,
+                  extents.height + 2 * padding);
+  cairo_fill(cr);
+
+  cairo_set_source_rgba(cr, 1, 1, 1, 1.0);
+  cairo_move_to(cr, tx, ty);
+  cairo_show_text(cr, label);
+
+  cairo_restore(cr);
+  gdk_cairo_set_source_rgba(cr, devdata->cur_context->paint_color);
+
+  /* Invalidation rectangle */
+  GdkRectangle rect;
+  rect.x = (int)(tx + extents.x_bearing - padding - 1);
+  rect.y = (int)(ty + extents.y_bearing - padding - 1);
+  rect.width = (int)(extents.width + 2 * padding + 3);
+  rect.height = (int)(extents.height + 2 * padding + 3);
+
+  data->modified = 1;
+
+  gdk_window_invalidate_rect(gtk_widget_get_window(data->win), &rect, 0);
+}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/src/drawing.h 
new/gromit-mpx-1.9.0/src/drawing.h
--- old/gromit-mpx-1.8.0/src/drawing.h  2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/src/drawing.h  2026-03-18 20:01:01.000000000 +0100
@@ -19,5 +19,7 @@
 void draw_line (GromitData *data, GdkDevice *dev, gint x1, gint y1, gint x2, 
gint y2);
 void draw_arrow (GromitData *data, GdkDevice *dev, gint x1, gint y1, gfloat 
width, gfloat direction);
 void draw_circle (GromitData *data, GdkDevice *dev, gint x, gint y, gfloat 
radius);
+void draw_length_label (GromitData *data, GdkDevice *dev, gint x1, gint y1, 
gint x2, gint y2);
+void draw_string_label (GromitData *data, GdkDevice *dev, gint x, gint y, char 
*string);
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/src/main.c 
new/gromit-mpx-1.9.0/src/main.c
--- old/gromit-mpx-1.8.0/src/main.c     2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/src/main.c     2026-03-18 20:01:01.000000000 +0100
@@ -64,12 +64,16 @@
   context->simplify = simplify;
   context->minlen = minlen;
   context->snapdist = snapdist;
+  context->textsize = 14.0;
+  context->showlength = 0;
 
   context->paint_ctx = cairo_create (data->backbuffer);
 
   gdk_cairo_set_source_rgba(context->paint_ctx, paint_color);
   if(!data->composited)
     cairo_set_antialias(context->paint_ctx, CAIRO_ANTIALIAS_NONE);
+  else
+    cairo_set_antialias(context->paint_ctx, CAIRO_ANTIALIAS_SUBPIXEL);
   cairo_set_line_width(context->paint_ctx, width);
   cairo_set_line_cap(context->paint_ctx, CAIRO_LINE_CAP_ROUND);
   cairo_set_line_join(context->paint_ctx, CAIRO_LINE_JOIN_ROUND);
@@ -1097,6 +1101,7 @@
    gint      i;
    gchar    *arg;
    gboolean  wrong_arg = FALSE;
+   gboolean  clientdata_allocated = FALSE;
 
    for (i=1; i < argc ; i++)
      {
@@ -1142,6 +1147,7 @@
                else
                     {
                       data->clientdata = g_strjoin(" ", argv[i+1], argv[i+2], 
argv[i+3], argv[i+4], argv[i+5], argv[i+6], NULL);
+                      clientdata_allocated = TRUE;
                     }
 
                action = GA_LINE;
@@ -1198,10 +1204,15 @@
        else if(wrong_arg)
          {
            g_printerr ("Please see the Gromit-MPX manpage for the correct 
usage\n");
+           if (clientdata_allocated)
+             g_free (data->clientdata);
            return 1;
          }
      }
 
+   /* Clean up allocated memory */
+   if (clientdata_allocated)
+     g_free (data->clientdata);
 
    return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gromit-mpx-1.8.0/src/main.h 
new/gromit-mpx-1.9.0/src/main.h
--- old/gromit-mpx-1.8.0/src/main.h     2025-11-11 22:19:23.000000000 +0100
+++ new/gromit-mpx-1.9.0/src/main.h     2026-03-18 20:01:01.000000000 +0100
@@ -97,6 +97,8 @@
   GdkRGBA         *fill_color;
   cairo_t         *paint_ctx;
   gdouble         pressure;
+  gfloat          textsize;
+  gboolean        showlength;
 } GromitPaintContext;
 
 typedef struct

Reply via email to