Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package foot for openSUSE:Factory checked in 
at 2025-01-18 13:58:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/foot (Old)
 and      /work/SRC/openSUSE:Factory/.foot.new.5589 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "foot"

Sat Jan 18 13:58:40 2025 rev:39 rq:1238660 version:1.20.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/foot/foot.changes        2025-01-05 
15:29:54.766446521 +0100
+++ /work/SRC/openSUSE:Factory/.foot.new.5589/foot.changes      2025-01-18 
13:58:40.953961472 +0100
@@ -1,0 +2,23 @@
+Sat Jan 18 10:10:43 UTC 2025 - Arnav Singh <opens...@arnavion.dev>
+
+- Update to v1.20.2:
+  * foot.ini options:
+    * colors.flash-alpha can be set to 1.0 (fully opaque) again.
+      The issue where this would cause window to be stuck in flash state
+      has been fixed separately.
+  * "Report window title" (CSI 21 t) and "Report app-id" (OSC 176 ?)
+    are now ignored. This relates to CVEs reported in some other terminals
+    where a malicious program / ssh remote can trick the user into running
+    arbitrary commands by using these sequences to fill
+    the shell input buffer.
+  * Fixed a crash on startup if the compositor sent a keyboard enter event
+    before the window was mapped.
+  * See https://codeberg.org/dnkl/foot/releases/tag/1.20.2 for more details.
+
+-------------------------------------------------------------------
+Fri Jan 17 10:25:58 UTC 2025 - Thorsten Kukuk <ku...@suse.com>
+
+- Disable libutempter, it doesn't work anymore with the switch
+  from utmp to systemd-logind
+
+-------------------------------------------------------------------

Old:
----
  foot-1.20.1.tar.gz
  foot-1.20.1.tar.gz.sig

New:
----
  foot-1.20.2.tar.gz
  foot-1.20.2.tar.gz.sig

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

Other differences:
------------------
++++++ foot.spec ++++++
--- /var/tmp/diff_new_pack.86SZFU/_old  2025-01-18 13:58:41.801996426 +0100
+++ /var/tmp/diff_new_pack.86SZFU/_new  2025-01-18 13:58:41.805996592 +0100
@@ -20,7 +20,7 @@
 %define _distconfdir %{_sysconfdir}
 %endif
 Name:           foot
-Version:        1.20.1
+Version:        1.20.2
 Release:        0
 Summary:        A Wayland terminal emulator
 License:        MIT
@@ -30,7 +30,9 @@
 # 
https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xb19964fbba09664cc81027ed5bbd4992c116573f
 Source2:        %{name}.keyring
 Requires:       terminfo
+%if 0%{?suse_version} < 1600
 Requires:       utempter
+%endif
 BuildRequires:  meson >= 0.59
 BuildRequires:  pkgconfig
 BuildRequires:  python3
@@ -86,8 +88,12 @@
        -Dterminfo=enabled \
        -Dterminfo-base-name=foot-extra \
        -Dthemes=true \
+%if 0%{?suse_version} < 1600
        -Dutmp-backend=libutempter \
        -Dutmp-default-helper-path=%{_libexecdir}/utempter/utempter
+%else
+       -Dutmp-backend=none
+%endif
 %meson_build
 
 %install

++++++ foot-1.20.1.tar.gz -> foot-1.20.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/.builds/alpine-x64.yml 
new/foot-1.20.2/.builds/alpine-x64.yml
--- old/foot-1.20.1/.builds/alpine-x64.yml      2025-01-03 08:01:35.000000000 
+0100
+++ new/foot-1.20.2/.builds/alpine-x64.yml      1970-01-01 01:00:00.000000000 
+0100
@@ -1,55 +0,0 @@
-image: alpine/edge
-packages:
-  - musl-dev
-  - eudev-libs
-  - eudev-dev
-  - linux-headers
-  - meson
-  - ninja
-  - gcc
-  - scdoc
-  - wayland-dev
-  - wayland-protocols
-  - freetype-dev
-  - fontconfig-dev
-  - harfbuzz-dev
-  - utf8proc-dev
-  - pixman-dev
-  - libxkbcommon-dev
-  - ncurses
-  - python3
-  - py3-pip
-  - check-dev
-  - ttf-hack
-  - font-noto-emoji
-
-sources:
-  - https://git.sr.ht/~dnkl/foot
-
-# triggers:
-#   - action: email
-#     condition: failure
-#     to: <committer>
-
-tasks:
-  - fcft: |
-      cd foot/subprojects
-      git clone https://codeberg.org/dnkl/fcft.git
-      cd ../..
-  - debug: |
-      mkdir -p bld/debug
-      meson --buildtype=debug -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled  
-Dfcft:test-text-shaping=true foot bld/debug
-      ninja -C bld/debug -k0
-      meson test -C bld/debug --print-errorlogs
-  - release: |
-      mkdir -p bld/release
-      meson --buildtype=minsize -Db_pgo=generate -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled  
-Dfcft:test-text-shaping=true foot bld/release
-      ninja -C bld/release -k0
-      meson test -C bld/release --print-errorlogs
-  - codespell: |
-      python3 -m venv codespell-venv
-      source codespell-venv/bin/activate
-      pip install codespell
-      cd foot
-      ~/.local/bin/codespell -Lser,doas,zar README.md INSTALL.md CHANGELOG.md 
*.c *.h doc/*.scd
-      deactivate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/.builds/alpine-x64.yml.disabled 
new/foot-1.20.2/.builds/alpine-x64.yml.disabled
--- old/foot-1.20.1/.builds/alpine-x64.yml.disabled     1970-01-01 
01:00:00.000000000 +0100
+++ new/foot-1.20.2/.builds/alpine-x64.yml.disabled     2025-01-18 
09:31:05.000000000 +0100
@@ -0,0 +1,55 @@
+image: alpine/edge
+packages:
+  - musl-dev
+  - eudev-libs
+  - eudev-dev
+  - linux-headers
+  - meson
+  - ninja
+  - gcc
+  - scdoc
+  - wayland-dev
+  - wayland-protocols
+  - freetype-dev
+  - fontconfig-dev
+  - harfbuzz-dev
+  - utf8proc-dev
+  - pixman-dev
+  - libxkbcommon-dev
+  - ncurses
+  - python3
+  - py3-pip
+  - check-dev
+  - ttf-hack
+  - font-noto-emoji
+
+sources:
+  - https://git.sr.ht/~dnkl/foot
+
+# triggers:
+#   - action: email
+#     condition: failure
+#     to: <committer>
+
+tasks:
+  - fcft: |
+      cd foot/subprojects
+      git clone https://codeberg.org/dnkl/fcft.git
+      cd ../..
+  - debug: |
+      mkdir -p bld/debug
+      meson --buildtype=debug -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled  
-Dfcft:test-text-shaping=true foot bld/debug
+      ninja -C bld/debug -k0
+      meson test -C bld/debug --print-errorlogs
+  - release: |
+      mkdir -p bld/release
+      meson --buildtype=minsize -Db_pgo=generate -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled  
-Dfcft:test-text-shaping=true foot bld/release
+      ninja -C bld/release -k0
+      meson test -C bld/release --print-errorlogs
+  - codespell: |
+      python3 -m venv codespell-venv
+      source codespell-venv/bin/activate
+      pip install codespell
+      cd foot
+      ~/.local/bin/codespell -Lser,doas,zar README.md INSTALL.md CHANGELOG.md 
*.c *.h doc/*.scd
+      deactivate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/.builds/freebsd-x64.yml 
new/foot-1.20.2/.builds/freebsd-x64.yml
--- old/foot-1.20.1/.builds/freebsd-x64.yml     2025-01-03 08:01:35.000000000 
+0100
+++ new/foot-1.20.2/.builds/freebsd-x64.yml     2025-01-18 09:31:05.000000000 
+0100
@@ -19,7 +19,7 @@
   - noto-emoji
 
 sources:
-  - https://git.sr.ht/~dnkl/foot
+  - https://codeberg.org/dnkl/foot.git
 
 # triggers:
 #   - action: email
@@ -29,11 +29,12 @@
 tasks:
   - fcft: |
       cd foot/subprojects
+      git clone https://codeberg.org/dnkl/tllist.git
       git clone https://codeberg.org/dnkl/fcft.git
       cd ../..
   - debug: |
       mkdir -p bld/debug
-      meson --buildtype=debug -Dterminfo=disabled 
-Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled 
-Dfcft:run-shaping=enabled -Dfcft:test-text-shaping=true foot bld/debug
+      meson setup --buildtype=debug -Dterminfo=disabled 
-Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled 
-Dfcft:run-shaping=enabled -Dfcft:test-text-shaping=true foot bld/debug
       ninja -C bld/debug -k0
       meson test -C bld/debug --print-errorlogs
       bld/debug/foot --version
@@ -41,7 +42,7 @@
 
   - release: |
       mkdir -p bld/release
-      meson --buildtype=minsize -Db_pgo=generate -Dterminfo=disabled 
-Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled 
-Dfcft:run-shaping=enabled  -Dfcft:test-text-shaping=true foot bld/release
+      meson setup --buildtype=minsize -Db_pgo=generate -Dterminfo=disabled 
-Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled 
-Dfcft:run-shaping=enabled  -Dfcft:test-text-shaping=true foot bld/release
       ninja -C bld/release -k0
       meson test -C bld/release --print-errorlogs
       bld/release/foot --version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/foot-1.20.1/.forgejo/issue_template/issue_template.yml 
new/foot-1.20.2/.forgejo/issue_template/issue_template.yml
--- old/foot-1.20.1/.forgejo/issue_template/issue_template.yml  2025-01-03 
08:01:35.000000000 +0100
+++ new/foot-1.20.2/.forgejo/issue_template/issue_template.yml  2025-01-18 
09:31:05.000000000 +0100
@@ -34,6 +34,21 @@
       placeholder: "sway version 1.9"
     validations:
       required: true
+  - type: input
+    id: distro
+    attributes:
+      label: Distribution
+      description: "The name of the Linux distribution, or BSD flavor, you are 
running"
+      placeholder: "Arch Linux"
+    validations:
+      required: true
+  - type: textarea
+    id: config
+    attributes:
+      label: Foot config
+      description: Paste your entire `foot.ini` here
+    validations:
+      required: true
   - type: textarea
     id: repro
     attributes:
@@ -59,8 +74,8 @@
         other terminal multiplexer?  Does the bug happen in a plain
         foot instance?
 
-        **IME** do you use an IME? Which one? Does the bug happen if
-        you disable the IME?
+        **IME** do you use an IME (e.g. fcitx5, ibus etc)? Which one?
+        Does the bug happen if you disable the IME?
 
         Obtaining logs and stacktraces
         ------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/.woodpecker.yaml 
new/foot-1.20.2/.woodpecker.yaml
--- old/foot-1.20.1/.woodpecker.yaml    2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/.woodpecker.yaml    2025-01-18 09:31:05.000000000 +0100
@@ -49,7 +49,7 @@
       # Debug
       - mkdir -p bld/debug-x64
       - cd bld/debug-x64
-      - meson --buildtype=debug -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled 
-Dfcft:test-text-shaping=true ../..
+      - meson setup --buildtype=debug -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled 
-Dfcft:test-text-shaping=true ../..
       - ninja -v -k0
       - ninja -v test
       - ./foot --version
@@ -59,7 +59,7 @@
       # Release (gcc)
       - mkdir -p bld/release-x64
       - cd bld/release-x64
-      - meson --buildtype=release -Db_pgo=generate 
-Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled 
-Dfcft:run-shaping=enabled  -Dfcft:test-text-shaping=true ../..
+      - meson setup --buildtype=release -Db_pgo=generate 
-Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled 
-Dfcft:run-shaping=enabled  -Dfcft:test-text-shaping=true ../..
       - ninja -v -k0
       - ninja -v test
       - ./foot --version
@@ -69,7 +69,7 @@
       # Release (clang)
       - mkdir -p bld/release-x64-clang
       - cd bld/release-x64-clang
-      - CC=clang meson --buildtype=release -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled  
-Dfcft:test-text-shaping=true ../..
+      - CC=clang meson setup --buildtype=release -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled  
-Dfcft:test-text-shaping=true ../..
       - ninja -v -k0
       - ninja -v test
       - ./foot --version
@@ -80,7 +80,7 @@
       - apk del harfbuzz harfbuzz-dev utf8proc utf8proc-dev
       - mkdir -p bld/debug
       - cd bld/debug
-      - meson --buildtype=debug -Dgrapheme-clustering=disabled 
-Dfcft:grapheme-shaping=disabled -Dfcft:run-shaping=disabled 
-Dfcft:test-text-shaping=false ../..
+      - meson setup --buildtype=debug -Dgrapheme-clustering=disabled 
-Dfcft:grapheme-shaping=disabled -Dfcft:run-shaping=disabled 
-Dfcft:test-text-shaping=false ../..
       - ninja -v -k0
       - ninja -v test
       - ./foot --version
@@ -106,7 +106,7 @@
       # Debug
       - mkdir -p bld/debug-x86
       - cd bld/debug-x86
-      - meson --buildtype=debug -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled 
-Dfcft:test-text-shaping=true ../..
+      - meson setup --buildtype=debug -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled 
-Dfcft:test-text-shaping=true ../..
       - ninja -v -k0
       - ninja -v test
       - ./foot --version
@@ -116,7 +116,7 @@
       # Release (gcc)
       - mkdir -p bld/release-x86
       - cd bld/release-x86
-      - meson --buildtype=release -Db_pgo=generate 
-Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled 
-Dfcft:run-shaping=enabled -Dfcft:test-text-shaping=true ../..
+      - meson setup --buildtype=release -Db_pgo=generate 
-Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled 
-Dfcft:run-shaping=enabled -Dfcft:test-text-shaping=true ../..
       - ninja -v -k0
       - ninja -v test
       - ./foot --version
@@ -126,7 +126,7 @@
       # Release (clang)
       - mkdir -p bld/release-x86-clang
       - cd bld/release-x86-clang
-      - CC=clang meson --buildtype=release -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled 
-Dfcft:test-text-shaping=true ../..
+      - CC=clang meson setup --buildtype=release -Dgrapheme-clustering=enabled 
-Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled 
-Dfcft:test-text-shaping=true ../..
       - ninja -v -k0
       - ninja -v test
       - ./foot --version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/CHANGELOG.md new/foot-1.20.2/CHANGELOG.md
--- old/foot-1.20.1/CHANGELOG.md        2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/CHANGELOG.md        2025-01-18 09:31:05.000000000 +0100
@@ -1,5 +1,6 @@
 # Changelog
 
+* [1.20.2](#1-20-2)
 * [1.20.1](#1-20-1)
 * [1.20.0](#1-20-0)
 * [1.19.0](#1-19-0)
@@ -56,6 +57,35 @@
 * [1.2.0](#1-2-0)
 
 
+## 1.20.2
+
+### Changed
+
+* The `CSI 21 t` (report window title) and `OSC 176 ?` (report app-id)
+  escape sequences are now ignored ([#1894][1894]).
+
+[1894]: https://codeberg.org/dnkl/foot/issues/1894
+
+
+### Fixed
+
+* 'flash' overlay (triggered by either `tput flash`, or enabling
+  `bell.visual` and then sending `BEL` to the terminal) stuck when
+  `colors.flash-alpha=1.0`.
+* Crash when compositor sends a keyboard enter event before the foot
+  window has been mapped ([#1910][1910]).
+* Build failures (`utf8proc.h` not found) on at least FreeBSD, but
+  most likely other BSDs, as well as some Linuxes ([#1903][1903]).
+
+[1910]: https://codeberg.org/dnkl/foot/issues/1910
+[1903]: https://codeberg.org/dnkl/foot/issues/1903
+
+
+### Contributors
+
+* Alexander Orzechowski
+
+
 ## 1.20.1
 
 ### Changed
@@ -72,7 +102,7 @@
 ### Fixed
 
 * Regression: trying to print a Unicode _"Legacy Computing symbol"_,
-  in the range U+1FB00 - U+1FB9B would crash foot ([#][]).
+  in the range U+1FB00 - U+1FB9B would crash foot ([#1901][1901]).
 
 [1901]: https://codeberg.org/dnkl/foot/issues/1901
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/config.c new/foot-1.20.2/config.c
--- old/foot-1.20.1/config.c    2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/config.c    2025-01-18 09:31:05.000000000 +0100
@@ -1445,8 +1445,8 @@
         if (!value_to_float(ctx, &alpha))
             return false;
 
-        if (alpha < 0. || alpha >= 1.) {
-            LOG_CONTEXTUAL_ERR("not in range 0.0-0.999");
+        if (alpha < 0. || alpha > 1.) {
+            LOG_CONTEXTUAL_ERR("not in range 0.0-1.0");
             return false;
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/csi.c new/foot-1.20.2/csi.c
--- old/foot-1.20.1/csi.c       2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/csi.c       2025-01-18 09:31:05.000000000 +0100
@@ -1354,10 +1354,14 @@
             }
 
             case 21: {
+#if 0  /* Disabled for now, see #1894 */
                 char reply[3 + strlen(term->window_title) + 2 + 1];
                 int chars = xsnprintf(
                     reply, sizeof(reply), "\033]l%s\033\\", 
term->window_title);
                 term_to_slave(term, reply, chars);
+#else
+                LOG_WARN("CSI 21 t (report window title) ignored");
+#endif
                 break;
             }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/doc/foot-ctlseqs.7.scd 
new/foot-1.20.2/doc/foot-ctlseqs.7.scd
--- old/foot-1.20.1/doc/foot-ctlseqs.7.scd      2025-01-03 08:01:35.000000000 
+0100
+++ new/foot-1.20.2/doc/foot-ctlseqs.7.scd      2025-01-18 09:31:05.000000000 
+0100
@@ -391,9 +391,6 @@
 |  20
 :  -
 :  Report icon label.
-|  21
-:  -
-:  Report window title.
 |  22
 :  -
 :  Push window title+icon.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/meson.build new/foot-1.20.2/meson.build
--- old/foot-1.20.1/meson.build 2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/meson.build 2025-01-18 09:31:05.000000000 +0100
@@ -1,5 +1,5 @@
 project('foot', 'c',
-        version: '1.20.1',
+        version: '1.20.2',
         license: 'MIT',
         meson_version: '>=0.59.0',
         default_options: [
@@ -226,7 +226,8 @@
   'debug.c', 'debug.h',
   'macros.h',
   'xmalloc.c', 'xmalloc.h',
-  'xsnprintf.c', 'xsnprintf.h'
+  'xsnprintf.c', 'xsnprintf.h',
+  dependencies: [utf8proc]
 )
 
 misc = static_library(
@@ -234,7 +235,9 @@
   'hsl.c', 'hsl.h',
   'macros.h',
   'misc.c', 'misc.h',
-  'uri.c', 'uri.h'
+  'uri.c', 'uri.h',
+  dependencies: [utf8proc],
+  link_with: [common]
 )
 
 vtlib = static_library(
@@ -268,6 +271,7 @@
 tokenize = static_library(
   'tokenizelib',
   'tokenize.c',
+  dependencies: [utf8proc],
   link_with: [common],
 )
 
@@ -321,7 +325,7 @@
   'macros.h',
   'util.h',
   version,
-  dependencies: [tllist],
+  dependencies: [tllist, utf8proc],
   link_with: common,
   install: true)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/osc.c new/foot-1.20.2/osc.c
--- old/foot-1.20.1/osc.c       2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/osc.c       2025-01-18 09:31:05.000000000 +0100
@@ -1498,6 +1498,7 @@
 
     case 176:
         if (string[0] == '?' && string[1] == '\0') {
+#if 0  /* Disabled for now, see #1894 */
             const char *terminator = term->vt.osc.bel ? "\a" : "\033\\";
             char *reply = xasprintf(
                 "\033]176;%s%s",
@@ -1506,6 +1507,9 @@
 
             term_to_slave(term, reply, strlen(reply));
             free(reply);
+#else
+            LOG_WARN("OSC-176 app-id query ignored");
+#endif
             break;
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/pgo/pgo.c new/foot-1.20.2/pgo/pgo.c
--- old/foot-1.20.1/pgo/pgo.c   2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/pgo/pgo.c   2025-01-18 09:31:05.000000000 +0100
@@ -72,6 +72,8 @@
 void render_refresh_app_id(struct terminal *term) {}
 void render_refresh_icon(struct terminal *term) {}
 
+void render_overlay(struct terminal *term) {}
+
 bool
 render_xcursor_is_valid(const struct seat *seat, const char *cursor)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/render.c new/foot-1.20.2/render.c
--- old/foot-1.20.1/render.c    2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/render.c    2025-01-18 09:31:05.000000000 +0100
@@ -1862,7 +1862,7 @@
     }
 }
 
-static void
+void
 render_overlay(struct terminal *term)
 {
     struct wayl_sub_surface *overlay = &term->window->overlay;
@@ -1898,27 +1898,6 @@
         break;
 
     case OVERLAY_FLASH:
-        /*
-         * A compositor will not send a frame callback for our main
-         * window if it is fully occluded (for example, by a fully
-         * opaque overlay...). This causes the overlay to stuck.
-         *
-         * For regular buffers, it _should_ be enough to *not* hint
-         * the compositor it's opaque. But at least some compositor
-         * special cases single-pixel buffers, and actually look at
-         * their pixel value.
-         *
-         * Thus, we have two options: implement frame callback
-         * handling for the overlay sub-surface, or ensure we don't
-         * use a fully opaque surface. Since no overlays are fully
-         * opaque by default, and the flash surface is the only one
-         * that can be configured to be opaque (colors.flash-alpha),
-         * and since adding frame callback handling adds a lot of
-         * boilerplate code... let's go with the simpler solution of
-         * not allowing colors.flash-alpha to be 1.0.
-         */
-        xassert(term->conf->colors.flash_alpha != 0xffff);
-
         color = color_hex_to_pixman_with_alpha(
                 term->conf->colors.flash,
                 term->conf->colors.flash_alpha);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/render.h new/foot-1.20.2/render.h
--- old/foot-1.20.1/render.h    2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/render.h    2025-01-18 09:31:05.000000000 +0100
@@ -31,6 +31,8 @@
     struct seat *seat, struct terminal *term, enum cursor_shape shape);
 bool render_xcursor_is_valid(const struct seat *seat, const char *cursor);
 
+void render_overlay(struct terminal *term);
+
 struct render_worker_context {
     int my_id;
     struct terminal *term;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/foot-1.20.1/terminal.c new/foot-1.20.2/terminal.c
--- old/foot-1.20.1/terminal.c  2025-01-03 08:01:35.000000000 +0100
+++ new/foot-1.20.2/terminal.c  2025-01-18 09:31:05.000000000 +0100
@@ -419,7 +419,12 @@
             (unsigned long long)expiration_count);
 
     term->flash.active = false;
-    render_refresh(term);
+    render_overlay(term);
+
+    // since the overlay surface is synced with the main window surface, we 
have
+    // to commit the main surface for the compositor to acknowledge the new
+    // overlay state.
+    wl_surface_commit(term->window->surface.surf);
     return true;
 }
 
@@ -510,6 +515,9 @@
 static void
 cursor_refresh(struct terminal *term)
 {
+    if (!term->window->is_configured)
+        return;
+
     term->grid->cur_row->cells[term->grid->cursor.point.col].attrs.clean = 0;
     term->grid->cur_row->dirty = true;
     render_refresh(term);

Reply via email to