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). + + + + "length Line" = LINE (color = "red" showlength textsize=20); + A `RECT`-tool draws rectangles.  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
