unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
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:30:38 +0800	[thread overview]
Message-ID: <8735dplo5d.fsf@yahoo.com> (raw)
In-Reply-To: <87h725olz1.fsf@gnus.org> (Lars Ingebrigtsen's message of "Sun, 21 Aug 2022 13:49:22 +0200")

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Yes, and we have to fix bug#56869 by working around the problem, as we
> do with all OS/library-related issues.  Just because it's something else
> that's "wrong" doesn't mean we can ignore the issue.

We cannot work around the problem because it is a NULL-pointer
dereference in GTK, caused by it mishandling several events
consecutively.

In general, Emacs can only prevent GTK from handling certain events.  If
it handles an event that it must handle (in this case,
XI_HierarchyChange) incorrectly, and that causes GTK to later
dereference NULL, there is nothing that Emacs can do.  Just like what
happens when GTK calls _exit under our nose.

> Anyway, I'm all in favour of defaulting to a no-toolkit build (across
> all systems -- the astounding success of VS Code has show that having a
> consistent look across systems is much more important than respecting
> the look of the OS).

I doubt that it would even be possible at all with our manpower to
implement "our own toolkit" on all platforms.  Especially on systems
like macOS, where AFAICT the system tries its best to prevent you from
implementing certain things yourself (such as tooltips and popup menus,
the former proved to be a royal pain in the neck earlier.)

Besides, how is that related to the success of Microsoft's VS Code?  I
think it is more related to how much support it gets from toolchain
developers, caused by Microsoft bundling it with their GitHub platform,
much like they bundled MSIE with Windows 95.  Cargo culting their choice
of toolkit will not do us much good.

> But we have to fix the no-toolkit look before we can contemplate that.
>
> 1) New toolbar icons:
>
>   
>
>
>
>
> We need somebody, preferably a designer, to put together a set of
> consistent (and pretty) toolbar icons.

The toolbar icons come from GNOME 2.x, so they are already consistent
and (mostly) put together by designers.  Aside from the ugly cross icon,
which really has to go.

> 2) Background glitches:
>
> I've got *background: black, and that makes "emacs -Q" look like this:
>
>
>
>
>
>
> That has to be fixed.

Just turn off the internal border, or specify the color of the internal
border in your X resources.  The default size of the internal border is
intentionally different across different builds and window systems, to
make up for different looking decorations.

> 3) Menu bar font:
>
>
>
>
> Must be proportional to not look like an artefact of the 80s.

I'd be glad if someone worked on that.  At the same time, we could make
RTL text work there as well.

> 4) HiDPI problems in the menus: The menus are unreadably small on a
> HiDPI display.

The fix is to specify a larger font for the menus.  But see below for
more problems with the oldXMenu library:

> 5) The scroll bar has to be fixed to work as modern scroll bars to, not
> emulate the actions of an 80s Xterm.  I.e., you have to be able to drag
> the scrool widget, and click above and below it, and have the thing
> happen that normal users expect.

I disagree, but that behavior should be made customizable.  The
"no-toolkit" scroll bar in general is a big hack that is not portable to
platforms other than X.

> Once those five things are in place, we should default to a no-toolkit
> build, which will give us a lot more control of Emacs behaviour, and not
> rely on odd tics in each toolkit, and in addition, allow
> daemon/multi-display shutdown to work reliably.

The no-toolkit build can not work on any other platform other than X.
The scroll bars are implemented by Emacs itself in a very non-portable
way, and the menus are implemented by the old XMenu library that came
with X10 and early X11 releases.

All of that amounts to a large amount of code that is very difficult to
replicate on other platforms.

Thanks.



  parent reply	other threads:[~2022-08-21 13:30 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
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 [this message]
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=8735dplo5d.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).