From 45e5a4b024c10cb1834366b33a8d2f04bb44c8d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 3 Jan 2025 08:03:06 +0100 Subject: [PATCH 01/24] changelog: add new 'unreleased' section --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index be32f4d6..a7e1b169 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Changelog +* [Unreleased](#unreleased) * [1.20.1](#1-20-1) * [1.20.0](#1-20-0) * [1.19.0](#1-19-0) @@ -56,6 +57,16 @@ * [1.2.0](#1-2-0) +## Unreleased +### Added +### Changed +### Deprecated +### Removed +### Fixed +### Security +### Contributors + + ## 1.20.1 ### Changed From c854f35579afa6a841fc795236f9bb2fde2b4126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 3 Jan 2025 08:08:52 +0100 Subject: [PATCH 02/24] changelog: add missing issue ref --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7e1b169..4b5e4b61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -83,7 +83,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 From fc154872c0894044f5c84bd7551529da85bbaae7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 4 Jan 2025 09:50:06 +0100 Subject: [PATCH 03/24] ci: sr.ht: disable x64 (rely on codeberg only) --- .builds/{alpine-x64.yml => alpine-x64.yml.disabled} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .builds/{alpine-x64.yml => alpine-x64.yml.disabled} (100%) diff --git a/.builds/alpine-x64.yml b/.builds/alpine-x64.yml.disabled similarity index 100% rename from .builds/alpine-x64.yml rename to .builds/alpine-x64.yml.disabled From 2784ae8793f1e4c6b533688672cc6a3b6e4e852f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 4 Jan 2025 09:50:30 +0100 Subject: [PATCH 04/24] ci: sr.ht: try to bring up to date, and pull from codeberg --- .builds/freebsd-x64.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.builds/freebsd-x64.yml b/.builds/freebsd-x64.yml index 9642f96d..497db929 100644 --- a/.builds/freebsd-x64.yml +++ b/.builds/freebsd-x64.yml @@ -19,7 +19,7 @@ packages: - noto-emoji sources: - - https://git.sr.ht/~dnkl/foot + - https://codeberg.org/dnkl/foot.git # triggers: # - action: email @@ -29,6 +29,7 @@ sources: tasks: - fcft: | cd foot/subprojects + git clone https://codeberg.org/dnkl/tllist.git git clone https://codeberg.org/dnkl/fcft.git cd ../.. - debug: | From f7031a2161fb8beafc7118f055aaf0b073807682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 4 Jan 2025 10:06:45 +0100 Subject: [PATCH 05/24] meson: fix dependencies (utf8proc missing in lots of places) --- meson.build | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index 359a8ce0..ee5af2f3 100644 --- a/meson.build +++ b/meson.build @@ -226,7 +226,8 @@ common = static_library( '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 @@ misc = static_library( '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 @@ pgolib = static_library( tokenize = static_library( 'tokenizelib', 'tokenize.c', + dependencies: [utf8proc], link_with: [common], ) @@ -321,7 +325,7 @@ executable( 'macros.h', 'util.h', version, - dependencies: [tllist], + dependencies: [tllist, utf8proc], link_with: common, install: true) From 80ef366bdeaeb2640955ee626c2fd94987df8130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 4 Jan 2025 10:33:23 +0100 Subject: [PATCH 06/24] changelog: utf8proc.h not found --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b5e4b61..f98908fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,8 +84,11 @@ * Regression: trying to print a Unicode _"Legacy Computing symbol"_, in the range U+1FB00 - U+1FB9B would crash foot ([#1901][1901]). +* Build failures (`utf8proc.h` not found) on at least FreeBSD, but + most likely other BSDs, as well as some Linuxes ([#1903][1903]). [1901]: https://codeberg.org/dnkl/foot/issues/1901 +[1903]: https://codeberg.org/dnkl/foot/issues/1903 ## 1.20.0 From 87ef8697672b6ea9eb3a4d608a2d9a0fdbd1401c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 4 Jan 2025 12:06:49 +0100 Subject: [PATCH 07/24] ci: "meson [options]" is deprecated (do "meson setup [options]" instead) --- .builds/freebsd-x64.yml | 4 ++-- .woodpecker.yaml | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.builds/freebsd-x64.yml b/.builds/freebsd-x64.yml index 497db929..77775ac3 100644 --- a/.builds/freebsd-x64.yml +++ b/.builds/freebsd-x64.yml @@ -34,7 +34,7 @@ tasks: 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 @@ -42,7 +42,7 @@ tasks: - 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 --git a/.woodpecker.yaml b/.woodpecker.yaml index 9b121f2a..340ba241 100644 --- a/.woodpecker.yaml +++ b/.woodpecker.yaml @@ -49,7 +49,7 @@ steps: # 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 @@ steps: # 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 @@ steps: # 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 @@ steps: - 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 @@ steps: # 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 @@ steps: # 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 @@ steps: # 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 From a62194caee739c9e3b60def25008c3c8447aaa8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 7 Jan 2025 12:58:44 +0100 Subject: [PATCH 08/24] csi: ignore 'CSI 21 t' - report window title It's not widely used (don't know _any_ application that uses it), and can be used to trick users to run unwanted commands. --- csi.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/csi.c b/csi.c index 35a39f82..61cbdced 100644 --- a/csi.c +++ b/csi.c @@ -1354,10 +1354,14 @@ csi_dispatch(struct terminal *term, uint8_t final) } 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; } From 354ba8dad84eaf262c90657f9020c2b482fdd6ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 7 Jan 2025 13:00:10 +0100 Subject: [PATCH 09/24] osc: ignore 'OSC 176 ?' - report app ID It's not widely used (don't know _any_ application that uses it), and can be used to trick users to run unwanted commands. --- osc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/osc.c b/osc.c index 17639c19..e335dc61 100644 --- a/osc.c +++ b/osc.c @@ -1498,6 +1498,7 @@ osc_dispatch(struct terminal *term) 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 @@ osc_dispatch(struct terminal *term) term_to_slave(term, reply, strlen(reply)); free(reply); +#else + LOG_WARN("OSC-176 app-id query ignored"); +#endif break; } From ba81480ebb61b7140aa140ef344a5a78c46a55cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 7 Jan 2025 13:00:38 +0100 Subject: [PATCH 10/24] doc: ctlseqs: remove 'CSI 21 t' --- doc/foot-ctlseqs.7.scd | 3 --- 1 file changed, 3 deletions(-) diff --git a/doc/foot-ctlseqs.7.scd b/doc/foot-ctlseqs.7.scd index 60f78d83..f8eb1222 100644 --- a/doc/foot-ctlseqs.7.scd +++ b/doc/foot-ctlseqs.7.scd @@ -391,9 +391,6 @@ manipulation sequences. The generic format is: | 20 : - : Report icon label. -| 21 -: - -: Report window title. | 22 : - : Push window title+icon. From ad1e2d7d05863269c9dfd808e6c6752b2595eff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 7 Jan 2025 13:00:50 +0100 Subject: [PATCH 11/24] changelog: 'CSI 21 t' and 'OSC 176 ?' disabled --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f98908fe..bc1d3bc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,13 @@ ## Unreleased ### Added ### 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 + + ### Deprecated ### Removed ### Fixed From 881eb28134b54b86092fdca426ef51e785a699a0 Mon Sep 17 00:00:00 2001 From: Alexander Orzechowski Date: Sat, 4 Jan 2025 22:26:00 -0500 Subject: [PATCH 12/24] render: Expose render_overlay This function updates the overlay that foot uses. It will be used to update the overlay when the flash effect ends. --- pgo/pgo.c | 2 ++ render.c | 2 +- render.h | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pgo/pgo.c b/pgo/pgo.c index aab18847..24154277 100644 --- a/pgo/pgo.c +++ b/pgo/pgo.c @@ -72,6 +72,8 @@ void render_refresh_title(struct terminal *term) {} 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 --git a/render.c b/render.c index 5a924743..020dee79 100644 --- a/render.c +++ b/render.c @@ -1862,7 +1862,7 @@ render_overlay_single_pixel(struct terminal *term, enum overlay_style style, } } -static void +void render_overlay(struct terminal *term) { struct wayl_sub_surface *overlay = &term->window->overlay; diff --git a/render.h b/render.h index 1898351c..81d2a905 100644 --- a/render.h +++ b/render.h @@ -31,6 +31,8 @@ bool render_xcursor_set( 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; From ab5a168dbffb63e17c9067133ab55c97d800ef1d Mon Sep 17 00:00:00 2001 From: Alexander Orzechowski Date: Sat, 4 Jan 2025 21:59:19 -0500 Subject: [PATCH 13/24] terminal: Refresh only overlay when flash expires If we call render_refresh, that will wait for a callback to the main surface. In the case of a flash, the main surface might not get callbacks if the compositor implements fancy culling optimizations like wlroots wlr_scene compositors such as sway version >=1.10. --- terminal.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/terminal.c b/terminal.c index 5a74631a..7b5a4d2d 100644 --- a/terminal.c +++ b/terminal.c @@ -419,7 +419,12 @@ fdm_flash(struct fdm *fdm, int fd, int events, void *data) (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; } From de3becef96f30b96f0fceddf73805c3951ccb59f Mon Sep 17 00:00:00 2001 From: Alexander Orzechowski Date: Sat, 4 Jan 2025 21:36:33 -0500 Subject: [PATCH 14/24] Revert "config: don't allow colors.flash-alpha to be 1.0" This reverts commit 56d2c3e990509d18de31e6009e0d0c6254f99b67. --- CHANGELOG.md | 3 --- config.c | 4 ++-- render.c | 21 --------------------- 3 files changed, 2 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc1d3bc3..508174b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -80,9 +80,6 @@ * Runtime changes to the app-id (OSC-176) now limits the app-id string to 2048 characters ([#1897][1897]). -* `colors.flash-alpha` can no longer be set to 1.0 (i.e. fully - opaque). This fixes an issue where the window would be stuck in the - flash state. [1897]: https://codeberg.org/dnkl/foot/issues/1897 diff --git a/config.c b/config.c index 3b8ce7e8..7f1ce055 100644 --- a/config.c +++ b/config.c @@ -1445,8 +1445,8 @@ parse_section_colors(struct context *ctx) 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 --git a/render.c b/render.c index 020dee79..b1791a90 100644 --- a/render.c +++ b/render.c @@ -1898,27 +1898,6 @@ render_overlay(struct terminal *term) 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); From 39061e0422a850ec5e76cb92cc903c4cec3b4b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Thu, 9 Jan 2025 07:56:10 +0100 Subject: [PATCH 15/24] changelog: colors.flash-alpha=1.0 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 508174b2..87694630 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -70,6 +70,12 @@ ### Deprecated ### Removed ### 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`. + + ### Security ### Contributors From c5529808c4f13c5bd30594055563b83e1db61dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Thu, 9 Jan 2025 07:49:29 +0100 Subject: [PATCH 16/24] term: cursor_refresh(): don't try to dirty the grid if we don't have one If the compositor sends a keyboard enter event before our window has been mapped, foot crashes; the enter event triggers a cursor refresh (hollow -> non-hollow block cursor), which crashes since we haven't yet allocated a grid. Fix by no-op:ing the refresh if the window hasn't been configured yet. Closes #1910 --- CHANGELOG.md | 4 ++++ terminal.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87694630..be321556 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,6 +74,10 @@ * '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]). + +[1910]: https://codeberg.org/dnkl/foot/issues/1910 ### Security diff --git a/terminal.c b/terminal.c index 7b5a4d2d..e392c36d 100644 --- a/terminal.c +++ b/terminal.c @@ -515,6 +515,9 @@ term_arm_blink_timer(struct terminal *term) 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); From b808eb5162bf89edfb548dd4a622081a0f6a8054 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 10 Jan 2025 13:05:35 +0100 Subject: [PATCH 17/24] forgejo: bugs: add required field 'distro' --- .forgejo/issue_template/issue_template.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.forgejo/issue_template/issue_template.yml b/.forgejo/issue_template/issue_template.yml index cca40dd5..fa602200 100644 --- a/.forgejo/issue_template/issue_template.yml +++ b/.forgejo/issue_template/issue_template.yml @@ -34,6 +34,14 @@ body: 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: repro attributes: From 14cd12899261fc8b3a65be1461639889074654f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 10 Jan 2025 13:13:05 +0100 Subject: [PATCH 18/24] forgejo: bugs: add required field 'config' Require all bug submitters to include their foot configs. --- .forgejo/issue_template/issue_template.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.forgejo/issue_template/issue_template.yml b/.forgejo/issue_template/issue_template.yml index fa602200..e650d8d0 100644 --- a/.forgejo/issue_template/issue_template.yml +++ b/.forgejo/issue_template/issue_template.yml @@ -42,6 +42,13 @@ body: 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: From 9361596d024dd2fb191eaef71c40256b9e86d45c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 10 Jan 2025 13:14:02 +0100 Subject: [PATCH 19/24] forgejo: bugs: config: uppercase description's first letter --- .forgejo/issue_template/issue_template.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/issue_template/issue_template.yml b/.forgejo/issue_template/issue_template.yml index e650d8d0..ca12c4a3 100644 --- a/.forgejo/issue_template/issue_template.yml +++ b/.forgejo/issue_template/issue_template.yml @@ -46,7 +46,7 @@ body: id: config attributes: label: Foot config - description: paste your entire `foot.ini` here + description: Paste your entire `foot.ini` here validations: required: true - type: textarea From 077177e8a937ce24f2127c403dcc13c6cea8d973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 10 Jan 2025 13:15:02 +0100 Subject: [PATCH 20/24] forgejo: bugs: short explanation of what an IME is --- .forgejo/issue_template/issue_template.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/issue_template/issue_template.yml b/.forgejo/issue_template/issue_template.yml index ca12c4a3..eae2e492 100644 --- a/.forgejo/issue_template/issue_template.yml +++ b/.forgejo/issue_template/issue_template.yml @@ -74,8 +74,8 @@ body: 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 ------------------------------ From 15d9b08307c370c803aedb75a2bf3e806e1cb573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 18 Jan 2025 09:25:19 +0100 Subject: [PATCH 21/24] changelog: prepare for 1.20.2 --- CHANGELOG.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be321556..c23a7445 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -* [Unreleased](#unreleased) +* [1.20.2](#1-20-2) * [1.20.1](#1-20-1) * [1.20.0](#1-20-0) * [1.19.0](#1-19-0) @@ -57,8 +57,8 @@ * [1.2.0](#1-2-0) -## Unreleased -### Added +## 1.20.2 + ### Changed * The `CSI 21 t` (report window title) and `OSC 176 ?` (report app-id) @@ -67,8 +67,6 @@ [1894]: https://codeberg.org/dnkl/foot/issues/1894 -### Deprecated -### Removed ### Fixed * 'flash' overlay (triggered by either `tput flash`, or enabling @@ -80,9 +78,10 @@ [1910]: https://codeberg.org/dnkl/foot/issues/1910 -### Security ### Contributors +* Alexander Orzechowski + ## 1.20.1 From 771af699f0dfb2b9c2564e93a5b5cc6a31e34de1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 18 Jan 2025 09:25:36 +0100 Subject: [PATCH 22/24] meson: bump version to 1.20.2 --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index ee5af2f3..0c7f5656 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('foot', 'c', - version: '1.20.1', + version: '1.20.2', license: 'MIT', meson_version: '>=0.59.0', default_options: [ From e1d9b57f832cf799a8772fd5fb5790113d7f1186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 18 Jan 2025 09:27:07 +0100 Subject: [PATCH 23/24] changelog: add back entry to 1.20.1, removed in de3becef96f30b96f0fceddf73805c3951ccb59f --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c23a7445..db11e8ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -89,6 +89,9 @@ * Runtime changes to the app-id (OSC-176) now limits the app-id string to 2048 characters ([#1897][1897]). +* `colors.flash-alpha` can no longer be set to 1.0 (i.e. fully + opaque). This fixes an issue where the window would be stuck in the + flash state. [1897]: https://codeberg.org/dnkl/foot/issues/1897 From bb6061894152d2506080bf93ca2055c5fef06ce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 18 Jan 2025 09:30:07 +0100 Subject: [PATCH 24/24] changelog: move utf8proc entry to correct release --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db11e8ea..8649e967 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,8 +74,11 @@ `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 @@ -100,11 +103,8 @@ * Regression: trying to print a Unicode _"Legacy Computing symbol"_, in the range U+1FB00 - U+1FB9B would crash foot ([#1901][1901]). -* Build failures (`utf8proc.h` not found) on at least FreeBSD, but - most likely other BSDs, as well as some Linuxes ([#1903][1903]). [1901]: https://codeberg.org/dnkl/foot/issues/1901 -[1903]: https://codeberg.org/dnkl/foot/issues/1903 ## 1.20.0