unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Can we go GTK-only?
@ 2016-10-27 19:54 Daniel Colascione
  2016-10-27 20:05 ` Frank Haun
                   ` (4 more replies)
  0 siblings, 5 replies; 85+ messages in thread
From: Daniel Colascione @ 2016-10-27 19:54 UTC (permalink / raw)
  To: Emacs developers

I've been doing some work on xterm.c and friends lately --- it's a very 
complex subsystem made even more complex by supporting five different 
toolkits in the same piece of code. GTK support adds a special twist: 
GTK is nothing like an old-fashioned Xt-style toolkit, and trying to 
force it into the mold requires going behind GTK's back in ways that are 
fragile, inefficient, and unsupported. New versions of GTK regularly 
break Emacs. Emacs cannot take advantage of GTK's support for non-X 
targets, like Wayland.

Do we really need all the legacy infrastructure in xterm? Do many people 
really build Emacs as a Motif application? The X window subsystem would 
be made much simpler if we made it GTK3-only.

If we did, much of the complexity of the existing code would evaporate, 
since we'd be using GTK's infrastructure instead of our own. We'd turn 
Emacs frames into well-behaved GTK widgets --- just run redisplay inside 
the Emacs-widget's draw method, draw onto the Cairo surface GTK 
provides. Instead of flushing frames and drawing to the screen directly 
from input-waiting routines, we'd rely exclusively on dirtying the Emacs 
widget and letting the GTK's normal Expose-event processing take care of 
invoking redisplay.

We'd have to get rid of the SIGIO input subsystem too, but I think 
that's a good thing.

The size of the xterm codebase would shrink by at least two thirds, I 
think. We already _have_ Cairo support: sure, it's broken, but the part 
that's broken is integrating with the horrible Xt hacks, not the drawing 
itself.

As a stepping stone, we should at least remove support for the 
no-toolkit, Motif, and Athena configurations. (Lucid I can understand.)



^ permalink raw reply	[flat|nested] 85+ messages in thread

end of thread, other threads:[~2016-11-03 22:07 UTC | newest]

Thread overview: 85+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-27 19:54 Can we go GTK-only? Daniel Colascione
2016-10-27 20:05 ` Frank Haun
2016-10-27 20:45   ` Daniel Colascione
2016-10-27 21:08     ` Frank Haun
2016-10-27 20:32 ` Paul Eggert
2016-10-27 23:15   ` Perry E. Metzger
2016-10-28  7:13     ` Eli Zaretskii
2016-10-28  2:35 ` Richard Stallman
2016-10-28  6:22 ` Eli Zaretskii
2016-10-28  7:27   ` Ulrich Mueller
2016-10-28  8:15     ` Eli Zaretskii
2016-10-28 10:48   ` Frank Haun
2016-10-28 12:26     ` Eli Zaretskii
2016-10-28 13:35 ` Stefan Monnier
2016-10-30 14:43   ` Ken Raeburn
2016-10-30 21:42     ` Stefan Monnier
2016-10-30 22:49       ` Daniel Colascione
2016-10-30 23:57         ` Stefan Monnier
2016-10-31  3:37           ` Eli Zaretskii
2016-10-31 15:57           ` Eli Zaretskii
2016-10-31  0:00         ` YAMAMOTO Mitsuharu
2016-10-31  8:24           ` Ken Raeburn
2016-10-31 16:34             ` Perry E. Metzger
2016-11-01  8:22             ` YAMAMOTO Mitsuharu
2016-10-31  3:33         ` Eli Zaretskii
2016-10-31 15:57           ` Perry E. Metzger
2016-10-31 15:56         ` Eli Zaretskii
2016-10-31 15:59           ` Daniel Colascione
2016-10-31 16:47             ` Eli Zaretskii
2016-10-31 17:54               ` Perry E. Metzger
2016-10-31 20:50                 ` Eli Zaretskii
2016-10-31 15:52       ` Eli Zaretskii
2016-10-31 15:54     ` Eli Zaretskii
2016-10-31 18:22       ` Ken Raeburn
2016-10-31 20:53         ` Eli Zaretskii
2016-10-31 21:04           ` Daniel Colascione
2016-11-01 15:11             ` Eli Zaretskii
2016-11-01 16:28               ` Paul Eggert
2016-11-01 16:49                 ` Eli Zaretskii
2016-11-01 16:54                   ` Daniel Colascione
2016-11-01 17:08                     ` Eli Zaretskii
2016-11-01 17:16                       ` Daniel Colascione
2016-11-01 19:15                       ` Perry E. Metzger
2016-11-01 19:28                         ` Lars Ingebrigtsen
2016-11-01 19:31                         ` Eli Zaretskii
2016-11-01 16:55                   ` Paul Eggert
2016-11-01 17:15                 ` Perry E. Metzger
2016-11-01 16:41               ` Perry E. Metzger
2016-11-01 16:54                 ` Eli Zaretskii
2016-11-01 17:22                   ` Perry E. Metzger
2016-11-01 17:46                     ` Eli Zaretskii
2016-11-01 17:56                       ` Perry E. Metzger
2016-11-01 19:35                       ` Perry E. Metzger
2016-11-01 16:45               ` Daniel Colascione
2016-11-01 17:01                 ` Eli Zaretskii
2016-11-01 17:06                   ` Daniel Colascione
2016-11-01 17:15                     ` Eli Zaretskii
2016-11-01 17:18                       ` Daniel Colascione
2016-11-01 17:44                         ` Eli Zaretskii
2016-11-01 17:45                           ` Daniel Colascione
2016-11-01 19:14                       ` Stefan Monnier
2016-11-01 19:22                         ` Eli Zaretskii
2016-11-01 19:42                           ` Perry E. Metzger
2016-11-01 19:20                       ` Perry E. Metzger
2016-11-01 20:05                         ` Eli Zaretskii
2016-11-01 20:17                           ` Daniel Colascione
2016-11-01 20:42                             ` Eli Zaretskii
2016-11-02  2:26                               ` Perry E. Metzger
2016-11-02 15:49                                 ` Eli Zaretskii
2016-11-02 15:55                                   ` Daniel Colascione
2016-11-02  5:00                               ` YAMAMOTO Mitsuharu
2016-11-02 15:46                                 ` Eli Zaretskii
2016-11-03  3:43                                   ` YAMAMOTO Mitsuharu
2016-11-03 17:40                                     ` Eli Zaretskii
2016-11-02  0:27                           ` Stefan Monnier
2016-11-02 15:53                             ` Eli Zaretskii
2016-11-02 16:04                               ` Stefan Monnier
2016-11-02 19:25                                 ` Nikolaus Rath
2016-11-02 19:25                                 ` Nikolaus Rath
2016-11-02 20:33                                   ` Paul Eggert
2016-11-03  1:25                                   ` Richard Stallman
2016-11-02 20:13                                 ` Eli Zaretskii
2016-11-03  3:29                                   ` Perry E. Metzger
2016-11-03 18:07                           ` John Wiegley
2016-11-03 22:07                             ` John Wiegley

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).