From: Po Lu <luangruo@yahoo.com>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: emacs-devel@gnu.org
Subject: Re: Abysmal state of GTK build
Date: Sun, 21 Aug 2022 21:59:23 +0800 [thread overview]
Message-ID: <87czctk890.fsf@yahoo.com> (raw)
In-Reply-To: <87mtbxlnf1.fsf@gnus.org> (Lars Ingebrigtsen's message of "Sun, 21 Aug 2022 15:46:26 +0200")
Lars Ingebrigtsen <larsi@gnus.org> writes:
> Well, let me qualify that a bit: I think if we can make the default
> non-Gtk toolkit version of Emacs pretty enough (and usable enough for a
> reasonable user), and have compelling reasons to discourage the
> Gtk-toolkit version (I think the _exit when a display shuts down, and
> the XInput2 problems, might be compelling), then we might convince them.
Prettyness is hardly useful when the software itself crashes.
Especially with the modern idea of "pretty", which is rounded corners,
low-contrast icons, animations and blur. Aside from that, the GTK build
already has enough compelling problems for almost anyone to switch from
it, just look at this part of etc/PROBLEMS:
*** Emacs built with GTK+ toolkit can unexpectedly widen frames
This resizing takes place when a frame is not wide enough to accommodate
its entire menu bar. Typically, it occurs when switching buffers or
changing a buffer's major mode and the new mode adds entries to the menu
bar. The frame is then widened by the window manager so that the menu
bar is fully shown. Subsequently switching to another buffer or
changing the buffer's mode will not shrink the frame back to its
previous width. The height of the frame remains unaltered. Apparently,
the failure is also dependent on the chosen font.
The resizing is usually accompanied by console output like
Gtk-CRITICAL **: gtk_distribute_natural_allocation: assertion 'extra_space >= 0' failed
It's not clear whether the GTK version used has any impact on the
occurrence of the failure. So far, the failure has been observed with
GTK+ versions 3.4.2, 3.14.5 and 3.18.7. However, another 3.4.2 build
does not exhibit the bug.
Some window managers (Xfce) apparently work around this failure by
cropping the menu bar. With other windows managers, it's possible to
shrink the frame manually after the problem occurs, e.g. by dragging the
frame's border with the mouse. However, some window managers have been
reported to refuse such attempts and snap back to the width needed to
show the full menu bar (wmii) or at least cause the screen to flicker
during such resizing attempts (i3, IceWM).
See also https://debbugs.gnu.org/cgi/bugreport.cgi?bug=15700,
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22000,
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22898 and
https://lists.gnu.org/r/emacs-devel/2016-07/msg00154.html.
That bug is particularly nasty. I tried my best to get rid of it, but
it still pops up once in a while, usually when the user switches to a
Dired buffer, which has a very long menu bar. Despite the frame being
maximized on some window managers, which is probably very annoying.
I think the reason users use the GTK build despite those problems is
because it is the default, and they don't know any better. Then,
because they assume that the developers of a major toolkit are better at
their job than us, blame for the resulting problems is assigned to
Emacs, which results in shouting on the bug tracker.
In the meantime, we have to endure the low-quality work of the GTK
developers, in whose world files cannot be saved after the window server
is shut down, and users and developers who turn off GTK mis-features are
"clowns", "the internet peanut gallery", and have their knobs yanked out
from underneath:
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4829
> But without the 1-5) I outlined, I don't think there's any chance
> what-so-ever.
Were they fine with the Lucid build before the GTK build became the
default?
next prev parent reply other threads:[~2022-08-21 13:59 UTC|newest]
Thread overview: 288+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <87ilmlluxq.fsf.ref@yahoo.com>
2022-08-21 11:04 ` Abysmal state of GTK build Po Lu
2022-08-21 11:19 ` Dmitry Gutov
2022-08-21 11:44 ` Po Lu
2022-08-21 14:01 ` Dmitry Gutov
2022-08-21 14:06 ` Po Lu
2022-08-21 14:11 ` Gregory Heytings
2022-08-22 1:04 ` Po Lu
2022-08-21 11:22 ` Eli Zaretskii
2022-08-21 11:39 ` Po Lu
2022-08-21 15:54 ` Robert Pluim
2022-08-21 16:32 ` Sean Whitton
2022-08-21 16:46 ` Lars Ingebrigtsen
2022-08-21 16:50 ` Lars Ingebrigtsen
2022-08-21 16:58 ` Sean Whitton
2022-08-22 1:13 ` Po Lu
2022-08-22 4:32 ` tomas
2022-08-23 3:44 ` Richard Stallman
2022-08-23 3:58 ` Po Lu
2022-08-23 4:51 ` tomas
2022-08-21 16:51 ` Óscar Fuentes
2022-08-21 17:08 ` Eli Zaretskii
2022-08-21 17:35 ` Óscar Fuentes
2022-08-22 1:15 ` Po Lu
2022-08-22 2:06 ` Stefan Monnier
2022-08-23 3:44 ` Richard Stallman
2022-08-23 4:02 ` Po Lu
2022-08-25 3:32 ` Richard Stallman
2022-08-25 4:18 ` Po Lu
2022-08-23 11:29 ` Eli Zaretskii
2022-08-23 12:15 ` Lynn Winebarger
2022-08-24 3:52 ` Richard Stallman
2022-08-24 8:57 ` Robert Pluim
2022-08-24 10:43 ` Po Lu
2022-08-24 11:24 ` Eli Zaretskii
2022-08-24 11:17 ` Eli Zaretskii
2022-08-25 6:25 ` Gerd Möllmann
2022-08-25 6:52 ` Po Lu
2022-08-25 6:57 ` Gerd Möllmann
2022-08-25 8:28 ` xdisp.c in C++ (Was: Abysmal state of GTK build) Eli Zaretskii
2022-08-25 9:04 ` Gerd Möllmann
2022-08-23 3:44 ` Abysmal state of GTK build Richard Stallman
2022-08-23 4:03 ` Po Lu
2022-08-23 11:26 ` Stefan Kangas
2022-08-23 12:30 ` Po Lu
2022-08-23 12:50 ` Stefan Kangas
2022-08-23 13:01 ` Po Lu
2022-08-24 3:52 ` Richard Stallman
2022-08-22 1:10 ` Po Lu
2022-08-21 16:51 ` Visuwesh
2022-08-22 1:17 ` Po Lu
2022-08-22 6:47 ` Visuwesh
2022-08-22 1:11 ` Po Lu
2022-08-23 3:44 ` Richard Stallman
2022-08-23 12:41 ` Akib Azmain Turja
2022-08-23 13:00 ` Po Lu
2022-08-21 11:49 ` Lars Ingebrigtsen
2022-08-21 12:00 ` Visuwesh
2022-08-21 12:06 ` Lars Ingebrigtsen
2022-08-21 13:34 ` Po Lu
2022-08-21 13:38 ` Lars Ingebrigtsen
2022-08-21 13:46 ` Lars Ingebrigtsen
2022-08-21 13:59 ` Po Lu [this message]
2022-08-21 14:11 ` Lars Ingebrigtsen
2022-08-21 14:16 ` Po Lu
2022-08-21 14:17 ` Lars Ingebrigtsen
2022-08-21 14:20 ` Po Lu
2022-08-21 14:28 ` Lars Ingebrigtsen
2022-08-21 18:32 ` Dmitry Gutov
2022-08-22 1:07 ` Po Lu
2022-08-21 14:29 ` Stefan Monnier
2022-08-21 19:27 ` Rob Browning
2022-08-22 3:10 ` Sean Whitton
2022-08-22 5:43 ` Rob Browning
2022-08-22 7:10 ` Visuwesh
2022-08-22 7:56 ` Po Lu
2022-08-21 16:47 ` Sean Whitton
2022-08-21 15:28 ` Lynn Winebarger
2022-08-22 5:21 ` Jean Louis
2022-08-22 6:01 ` Po Lu
2022-08-22 6:48 ` Tim Cross
2022-08-22 7:55 ` Po Lu
2022-08-22 8:32 ` Tim Cross
2022-08-22 9:44 ` Po Lu
2022-08-22 23:19 ` Tim Cross
2022-08-23 0:57 ` Po Lu
2022-08-23 4:44 ` Consistent theme across the desktop [Re: Abysmal state of GTK build] tomas
2022-08-23 11:45 ` Eli Zaretskii
2022-08-23 12:02 ` tomas
2022-08-23 12:31 ` Eli Zaretskii
2022-08-23 12:48 ` tomas
2022-08-23 13:22 ` Eli Zaretskii
2022-08-23 14:10 ` tomas
2022-08-23 15:52 ` Eli Zaretskii
2022-08-23 16:38 ` Yuri Khan
2022-08-23 16:57 ` Eli Zaretskii
2022-08-24 4:23 ` tomas
2022-08-24 11:02 ` Eli Zaretskii
2022-08-23 12:31 ` Po Lu
2022-08-24 3:52 ` Richard Stallman
2022-08-24 4:24 ` tomas
2022-08-22 9:04 ` Abysmal state of GTK build Dirk-Jan C. Binnema
2022-08-22 12:10 ` Po Lu
2022-08-22 12:35 ` Eli Zaretskii
2022-08-22 12:59 ` Po Lu
2022-08-22 13:08 ` Eli Zaretskii
2022-08-23 0:42 ` Po Lu
2022-08-23 2:36 ` Eli Zaretskii
2022-08-23 3:04 ` Po Lu
2022-08-23 17:52 ` Yilkal Argaw
2022-08-23 18:45 ` Stefan Monnier
2022-08-24 1:50 ` Po Lu
2022-08-22 12:40 ` Eli Zaretskii
2022-08-22 13:03 ` Po Lu
2022-08-22 13:08 ` Dmitry Gutov
2022-08-23 0:45 ` Po Lu
2022-08-23 10:30 ` Dmitry Gutov
2022-08-22 13:10 ` Eli Zaretskii
2022-08-23 0:46 ` Po Lu
2022-08-22 15:10 ` Lynn Winebarger
2022-08-23 6:34 ` Dirk-Jan C. Binnema
2022-08-23 8:58 ` Po Lu
2022-08-23 3:46 ` Richard Stallman
2022-08-23 4:04 ` Po Lu
2022-08-24 3:52 ` Richard Stallman
2022-08-24 4:27 ` Po Lu
2022-08-21 13:30 ` Po Lu
2022-08-21 13:35 ` Eli Zaretskii
2022-08-21 13:41 ` Po Lu
2022-08-21 13:46 ` Eli Zaretskii
2022-08-21 13:47 ` Lars Ingebrigtsen
2022-08-21 13:50 ` Eli Zaretskii
2022-08-21 14:01 ` Po Lu
2022-08-23 7:38 ` Gerd Möllmann
2022-08-23 8:54 ` Po Lu
2022-08-23 9:27 ` Gerd Möllmann
2022-08-23 9:39 ` Lars Ingebrigtsen
2022-08-23 14:07 ` Gerd Möllmann
2022-08-23 14:43 ` Lars Ingebrigtsen
2022-08-23 15:29 ` Óscar Fuentes
2022-08-23 16:14 ` Alternative build systems (Was: Abysmal state of GTK build) Eli Zaretskii
2022-08-23 16:36 ` Alternative build systems Óscar Fuentes
2022-08-23 16:55 ` Eli Zaretskii
2022-08-23 23:38 ` Óscar Fuentes
2022-08-24 1:48 ` Po Lu
2022-08-24 12:35 ` Abysmal state of GTK build Andrea Corallo
2022-08-24 12:57 ` Óscar Fuentes
2022-08-24 13:00 ` Visuwesh
2022-08-24 13:42 ` Po Lu
2022-08-23 16:06 ` Eli Zaretskii
2022-08-23 16:10 ` Lars Ingebrigtsen
2022-08-23 16:24 ` Eli Zaretskii
2022-08-24 10:11 ` Lars Ingebrigtsen
2022-08-24 11:18 ` Eli Zaretskii
2022-08-24 11:30 ` Lars Ingebrigtsen
2022-08-24 11:47 ` Eli Zaretskii
2022-08-24 12:16 ` Stefan Monnier
2022-08-24 12:19 ` Lars Ingebrigtsen
2022-08-24 12:23 ` Stefan Monnier
2022-08-25 12:03 ` Lars Ingebrigtsen
2022-08-24 12:35 ` Eli Zaretskii
2022-08-25 12:07 ` Lars Ingebrigtsen
2022-08-25 12:19 ` Lars Ingebrigtsen
2022-08-24 12:13 ` Po Lu
2022-08-24 12:16 ` Gerd Möllmann
2022-08-24 6:38 ` Gerd Möllmann
2022-08-24 11:08 ` Eli Zaretskii
2022-08-24 11:51 ` Gerd Möllmann
2022-08-24 12:01 ` Eli Zaretskii
2022-08-24 12:04 ` Gerd Möllmann
2022-08-24 12:19 ` Eli Zaretskii
2022-08-24 12:22 ` Gerd Möllmann
2022-08-23 17:10 ` Stefan Monnier
2022-08-24 10:14 ` Lars Ingebrigtsen
2022-08-24 10:46 ` Po Lu
2022-08-24 10:48 ` Lars Ingebrigtsen
2022-08-24 11:15 ` Po Lu
2022-08-24 11:17 ` Lars Ingebrigtsen
2022-08-24 12:13 ` Po Lu
2022-08-24 12:20 ` Lars Ingebrigtsen
2022-08-24 12:36 ` Po Lu
2022-08-25 3:33 ` Changing the make setup for Emacs Richard Stallman
2022-08-25 22:42 ` change the Subject line (was: Changing the make setup for Emacs) andrés ramírez
2022-08-21 13:36 ` Abysmal state of GTK build Lars Ingebrigtsen
2022-08-21 13:43 ` Po Lu
2022-08-21 13:51 ` Lars Ingebrigtsen
2022-08-21 14:04 ` Po Lu
2022-08-21 14:13 ` Lars Ingebrigtsen
2022-08-21 14:18 ` Po Lu
2022-08-21 15:02 ` Gregory Heytings
2022-08-22 1:18 ` Po Lu
2022-08-22 10:04 ` Lars Ingebrigtsen
2022-08-22 11:46 ` Po Lu
2022-08-22 11:56 ` Lars Ingebrigtsen
2022-08-22 12:14 ` Po Lu
2022-08-22 12:21 ` Lars Ingebrigtsen
2022-08-22 13:13 ` Po Lu
2022-08-22 13:19 ` Lars Ingebrigtsen
2022-08-23 0:50 ` Po Lu
2022-08-24 11:19 ` Lars Ingebrigtsen
2022-08-24 12:17 ` Po Lu
2022-08-22 17:33 ` Eli Zaretskii
2022-08-23 0:47 ` Po Lu
2022-08-23 2:38 ` Eli Zaretskii
2022-08-23 3:05 ` Po Lu
2022-08-23 11:22 ` Eli Zaretskii
2022-08-24 3:52 ` Richard Stallman
2022-08-23 3:51 ` Jean Louis
2022-08-23 5:14 ` Po Lu
2022-08-23 11:51 ` Eli Zaretskii
2022-08-23 12:34 ` Po Lu
2022-08-23 12:45 ` Eli Zaretskii
2022-08-25 3:32 ` Richard Stallman
2022-08-23 3:53 ` Jean Louis
2022-08-21 14:05 ` Gregory Heytings
2022-08-21 14:08 ` Po Lu
2022-08-21 14:15 ` Lars Ingebrigtsen
2022-08-21 14:17 ` Po Lu
2022-08-21 14:27 ` Lars Ingebrigtsen
2022-08-22 1:09 ` Po Lu
2022-08-24 2:32 ` Thomas Fitzsimmons
2022-08-24 2:47 ` Po Lu
2022-08-25 3:33 ` Richard Stallman
2022-08-21 14:06 ` Dmitry Gutov
2022-08-23 3:44 ` Richard Stallman
2022-08-23 3:57 ` Po Lu
2022-08-24 3:52 ` Richard Stallman
2022-08-24 4:20 ` Po Lu
2022-08-24 4:34 ` tomas
2022-08-26 3:36 ` Richard Stallman
2022-08-24 4:25 ` Tim Cross
2022-08-24 4:37 ` tomas
2022-08-24 7:52 ` Tim Cross
2022-08-24 4:58 ` Po Lu
2022-08-26 3:36 ` Richard Stallman
2022-08-26 5:26 ` Tim Cross
2022-08-28 4:06 ` Richard Stallman
2022-08-28 4:14 ` Po Lu
2022-09-04 3:01 ` Richard Stallman
2022-08-28 7:45 ` Tim Cross
2022-08-21 14:47 ` Stefan Kangas
2022-08-21 14:58 ` Lars Ingebrigtsen
2022-08-22 7:05 ` Visuwesh
2022-08-22 7:51 ` Po Lu
2022-08-23 3:46 ` Richard Stallman
2022-08-23 15:08 ` Visuwesh
2022-08-25 16:01 ` Rudolf Adamkovič
2022-08-26 1:29 ` Po Lu
2022-08-23 7:00 Payas Relekar
2022-08-23 7:17 ` Po Lu
2022-08-23 7:21 ` Payas Relekar
2022-08-23 8:53 ` Po Lu
2022-08-23 13:08 ` Stefan Monnier
2022-08-24 1:16 ` Po Lu
2022-08-24 1:34 ` Stefan Monnier
2022-08-23 12:05 ` Eli Zaretskii
2022-08-23 12:29 ` Po Lu
2022-08-23 12:41 ` Eli Zaretskii
2022-08-23 12:59 ` Po Lu
2022-08-23 15:13 ` Óscar Fuentes
2022-08-23 15:18 ` Visuwesh
2022-08-23 16:09 ` Eli Zaretskii
2022-08-23 16:41 ` Óscar Fuentes
2022-08-23 16:59 ` Eli Zaretskii
2022-08-23 23:25 ` Óscar Fuentes
2022-08-24 1:45 ` Po Lu
2022-08-24 3:02 ` Óscar Fuentes
2022-08-24 3:41 ` Po Lu
2022-08-23 23:25 ` Tim Cross
2022-08-24 4:25 ` Po Lu
2022-08-24 1:36 ` Po Lu
2022-08-24 2:31 ` Óscar Fuentes
2022-08-24 3:23 ` Po Lu
2022-08-24 3:52 ` Richard Stallman
2022-08-24 4:18 ` Po Lu
2022-08-24 8:52 ` Robert Pluim
2022-08-26 3:36 ` Richard Stallman
2022-08-26 4:34 ` Po Lu
2022-09-04 3:01 ` Richard Stallman
2022-09-04 5:14 ` Eli Zaretskii
2022-09-05 4:03 ` Richard Stallman
2022-09-05 8:34 ` Robert Pluim
2022-09-05 14:12 ` Po Lu
2022-09-07 13:03 ` Daniel Brooks
2022-08-24 3:52 ` Richard Stallman
-- strict thread matches above, loose matches on Subject: below --
2022-08-23 13:53 Payas Relekar
2022-08-24 1:15 ` Po Lu
2022-09-04 4:08 Payas Relekar
2022-09-05 4:03 ` Richard Stallman
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=87czctk890.fsf@yahoo.com \
--to=luangruo@yahoo.com \
--cc=emacs-devel@gnu.org \
--cc=larsi@gnus.org \
/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).