From: Dmitrii Kuragin via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: "Gerd Möllmann" <gerd.moellmann@gmail.com>, 57434@debbugs.gnu.org
Subject: bug#57434: 28.1.91; Terminal Emacs Mac OS flickering.
Date: Mon, 29 Aug 2022 14:08:04 -0700 [thread overview]
Message-ID: <CALqSXk5AbN9PGPK00ndMaS2sCgEz0Pcrw+eGmC63VLLyOavgQg@mail.gmail.com> (raw)
In-Reply-To: <CALqSXk4vcJEWZyhFYyX4+SzZ6Z-WahXfeJ7norA5Jdyj-_W2OA@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 3998 bytes --]
Here's the patch.
On Mon, Aug 29, 2022 at 1:44 PM Dmitrii Kuragin <kuragin@google.com> wrote:
> On my remote linux machine `line_is_del_ok` should be false where
> ```
> tty->line_ins_del_ok
> = (((tty->TS_ins_line || tty->TS_ins_multi_lines)
> && (tty->TS_del_line || tty->TS_del_multi_lines))
> || (tty->scroll_region_ok
> && tty->TS_fwd_scroll && tty->TS_rev_scroll));
> ```
> because `tput al` and `tput AL` are both false and `tput sr` and `tput sf`
> are false ("unknown terminfo capability").
>
> So, disabling `line_ins_del_ok` on mac os would lead to the same
> configuration I have on the linux. On the linux machine scroll never caused
> any troubles.
>
> So, would it be ok to disable `line_ins_del_ok` for Mac OS? I would send a
> patch if it's OK.
>
> On Mon, Aug 29, 2022 at 1:25 PM Dmitrii Kuragin <kuragin@google.com>
> wrote:
>
>> So far:
>> ```
>> :~/Desktop% tput al; echo $?
>> 0
>> :~/Desktop% tput AL; echo $?
>> 1%dL0
>> :~/Desktop% tput dl; echo $?
>> 0
>> :~/Desktop% tput DL; echo $?
>> 1%dM0
>> :~/Desktop% tput sf; echo $?
>>
>> 0
>> 0~/Desktop% tput sr; echo $?
>> :~/Desktop% tput wi; echo $?
>> tput: unknown terminfo capability 'wi'
>> 4
>> :~/Desktop% tput cs; echo $?
>> %p1%d;%p2%dr0
>> :~/Desktop% tput cS; echo $?
>> tput: unknown terminfo capability 'cS'
>> 4
>> ```
>>
>> Seems like Mac Os doesn't support "wi", but the condition is still going
>> to be true.
>>
>> ```
>> tty->line_ins_del_ok = 0;
>> ```
>>
>> make the emacs really smooth w/o any flickering.
>>
>> On Mon, Aug 29, 2022 at 12:37 PM Eli Zaretskii <eliz@gnu.org> wrote:
>>
>>> > From: Dmitrii Kuragin <kuragin@google.com>
>>> > Date: Mon, 29 Aug 2022 12:26:07 -0700
>>> > Cc: Gerd Möllmann <gerd.moellmann@gmail.com>,
>>> > 57434@debbugs.gnu.org
>>> >
>>> > I tried different terminal emulators, Alacritty, iTerm2, Terminal.app
>>> (stock). All of them show the same issue.
>>> > So, it is not a terminal emulator.
>>>
>>> If this happens with all terminal emulators on macOS, we should reset
>>> the line_ins_del_ok flag for macOS. Look in term.c, where it is
>>> initialized by consulting various terminfo features supported by the
>>> terminal. If all the features it consults indeed work on macOS, then
>>> simply say something like
>>>
>>> #ifdef DARWIN_OS
>>> tty->line_ins_del_ok = 0;
>>> #else
>>> ... the current code...
>>> #endif
>>>
>>> and see if the problem goes away.
>>>
>>> Gerd, do you see the same on your system?
>>>
>>
>>
>> --
>> *If you get an email from me outside of the 9-5 it is *not* because I'm
>> always on or expect an immediate response from you; it is because of work
>> flexibility
>> <http://www.inc.com/john-boitnott/how-flexible-hours-can-create-a-better-work-life-balance.html>
>> . Evening and weekend emails are a sign I allocated some regular
>> working hours for other things (such as family, gym, friends,...). And I
>> encourage you to feel free to do the same.
>>
>>
>
> --
> *If you get an email from me outside of the 9-5 it is *not* because I'm
> always on or expect an immediate response from you; it is because of work
> flexibility
> <http://www.inc.com/john-boitnott/how-flexible-hours-can-create-a-better-work-life-balance.html>
> . Evening and weekend emails are a sign I allocated some regular working
> hours for other things (such as family, gym, friends,...). And I encourage
> you to feel free to do the same.
>
>
--
*If you get an email from me outside of the 9-5 it is *not* because I'm
always on or expect an immediate response from you; it is because of work
flexibility
<http://www.inc.com/john-boitnott/how-flexible-hours-can-create-a-better-work-life-balance.html>
. Evening and weekend emails are a sign I allocated some regular working
hours for other things (such as family, gym, friends,...). And I encourage
you to feel free to do the same.
[-- Attachment #1.2: Type: text/html, Size: 8591 bytes --]
[-- Attachment #2: 0001-Fix-terminal-Emacs-flickering-during-scrolling-on-Ma.patch --]
[-- Type: application/octet-stream, Size: 1243 bytes --]
From 219491518c4f6346f09b33c28c1b9b9215142f19 Mon Sep 17 00:00:00 2001
From: Dmitrii Kuragin <kuragin@chromium.org>
Date: Mon, 29 Aug 2022 13:58:53 -0700
Subject: [PATCH] Fix terminal Emacs flickering during scrolling on Mac OS.
* src/term.c (init_tty): Disable `line_ins_del_ok` when `DARWIN_OS` is
defined because the optimization causes terminal flickering.
---
src/term.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/term.c b/src/term.c
index 2e43d89232..e06f2bd9e0 100644
--- a/src/term.c
+++ b/src/term.c
@@ -4390,11 +4390,17 @@ init_tty (const char *name, const char *terminal_type, bool must_succeed)
= (tty->Wcm->cm_abs
&& (tty->TS_set_window || tty->TS_set_scroll_region || tty->TS_set_scroll_region_1));
+#ifdef DARWIN_OS
+ /* Multiline optimization cause terminal flickering on Mac OS.
+ See (Bug#57434) */
+ tty->line_ins_del_ok = 0;
+#else
tty->line_ins_del_ok
= (((tty->TS_ins_line || tty->TS_ins_multi_lines)
&& (tty->TS_del_line || tty->TS_del_multi_lines))
|| (tty->scroll_region_ok
&& tty->TS_fwd_scroll && tty->TS_rev_scroll));
+#endif
tty->char_ins_del_ok
= ((tty->TS_ins_char || tty->TS_insert_mode
--
2.37.2.672.g94769d06f0-goog
next prev parent reply other threads:[~2022-08-29 21:08 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-26 16:54 bug#57434: 28.1.91; Terminal Emacs Mac OS flickering Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-27 5:34 ` Gerd Möllmann
2022-08-27 5:41 ` Gerd Möllmann
2022-08-27 15:03 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-27 15:46 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-27 15:58 ` Eli Zaretskii
2022-08-27 16:01 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-27 16:14 ` Eli Zaretskii
2022-08-29 14:18 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 14:38 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 16:04 ` Eli Zaretskii
2022-08-29 16:05 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 16:07 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 16:27 ` Eli Zaretskii
2022-08-29 15:15 ` Gerd Möllmann
2022-08-29 16:22 ` Eli Zaretskii
2022-08-29 17:14 ` Gerd Möllmann
2022-08-29 18:24 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 18:57 ` Eli Zaretskii
2022-08-29 19:04 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 19:17 ` Eli Zaretskii
2022-08-29 19:26 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 19:37 ` Eli Zaretskii
2022-08-29 20:25 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 20:44 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 21:08 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2022-08-30 11:28 ` Eli Zaretskii
2022-08-30 6:09 ` Gerd Möllmann
2022-08-30 11:10 ` Eli Zaretskii
2022-08-30 11:23 ` Gerd Möllmann
2022-08-30 13:48 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 16:19 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 16:34 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 17:00 ` Eli Zaretskii
2022-08-30 17:22 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 11:11 ` Eli Zaretskii
2022-08-30 6:04 ` Gerd Möllmann
2022-08-30 11:46 ` Eli Zaretskii
2022-08-30 11:53 ` Gerd Möllmann
2022-08-30 12:07 ` Eli Zaretskii
2022-08-30 12:15 ` Gerd Möllmann
2022-08-30 12:48 ` Eli Zaretskii
2022-08-30 13:25 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-30 13:48 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 6:14 ` Gerd Möllmann
2022-08-31 6:14 ` Gerd Möllmann
2022-08-31 7:02 ` Gerd Möllmann
2022-08-31 11:09 ` Eli Zaretskii
2022-08-31 11:54 ` Gerd Möllmann
2022-08-31 14:12 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 14:38 ` Gerd Möllmann
2022-08-31 16:00 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 16:21 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 16:34 ` Eli Zaretskii
2022-08-31 17:11 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-31 16:25 ` Eli Zaretskii
2022-09-01 5:44 ` Gerd Möllmann
2022-09-01 6:11 ` Eli Zaretskii
2022-09-01 6:45 ` Gerd Möllmann
2022-09-01 8:18 ` Gerd Möllmann
2022-09-01 8:25 ` Eli Zaretskii
2022-09-01 8:56 ` Gerd Möllmann
2022-09-01 11:30 ` Eli Zaretskii
2022-09-01 12:27 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-01 12:32 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-01 12:36 ` Gerd Möllmann
2022-09-02 7:16 ` Eli Zaretskii
2022-09-02 7:26 ` Eli Zaretskii
2022-09-02 9:21 ` Gerd Möllmann
2022-09-03 8:04 ` Gerd Möllmann
2022-09-03 9:06 ` Eli Zaretskii
2022-09-03 16:35 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-03 16:51 ` Eli Zaretskii
2022-09-03 17:14 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-03 17:21 ` Eli Zaretskii
2022-09-04 4:55 ` Gerd Möllmann
2022-09-07 4:59 ` Gerd Möllmann
2022-09-07 16:11 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-07 18:17 ` Eli Zaretskii
2022-09-08 5:31 ` Gerd Möllmann
2022-09-08 6:25 ` Eli Zaretskii
2022-09-08 6:43 ` Gerd Möllmann
2022-09-08 8:20 ` Eli Zaretskii
2022-09-08 8:43 ` Gerd Möllmann
2022-09-08 9:16 ` Eli Zaretskii
2022-09-08 9:35 ` Gerd Möllmann
2022-09-08 15:59 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-09 15:48 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-09 16:00 ` Eli Zaretskii
2022-09-20 16:35 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-20 16:45 ` Eli Zaretskii
2022-09-21 6:10 ` Gerd Möllmann
2022-09-21 11:17 ` Eli Zaretskii
2022-09-02 9:20 ` Gerd Möllmann
2022-08-29 16:01 ` Eli Zaretskii
2022-08-29 16:03 ` Dmitrii Kuragin via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-08-29 16:27 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CALqSXk5AbN9PGPK00ndMaS2sCgEz0Pcrw+eGmC63VLLyOavgQg@mail.gmail.com \
--to=bug-gnu-emacs@gnu.org \
--cc=57434@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=gerd.moellmann@gmail.com \
--cc=kuragin@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).