unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Yuuki Harano <masm+emacs@masm11.me>
To: eliz@gnu.org
Cc: emacs-devel@gnu.org
Subject: Re: emacs for pure Gtk3
Date: Mon, 27 Apr 2020 21:37:27 +0900 (JST)	[thread overview]
Message-ID: <20200427.213727.386515228111850912.masm@luna.pink.masm11.me> (raw)
In-Reply-To: <834kt673cy.fsf@gnu.org>

Thank you.

On Sun, 26 Apr 2020 17:01:33 +0300,
	Eli Zaretskii <eliz@gnu.org> wrote:
>   . You don't seem to have a copyright assignment on file.  This would
>     be a significant contribution to Emacs, for which we must have
>     such an assignment from you before bringing this code into the
>     Emacs repository.  Would you be willing to start the legal
>     paperwork now?  If so, I will send you the form to fill.

Yes.  Please send me it.

By the way, this fork contains much code written by @fejfighter.
He said "for now: Yes I do agree to assign my code to the FSF." here,
https://github.com/masm11/emacs/pull/11#issuecomment-600856858 .
What to do?

>   . The code seem to be based on an relatively old version of our
>     master branch, which makes it hard to review (there are many
>     spurious changes unrelated to your work).  Please rebase on the
>     latest HEAD of the master branch.

OK, I'll rebase later.

>   . Would it be possible for you to describe the design of this
>     feature, and how that affects the various Emacs features, so that
>     understanding the changes would be facilitated?  In particular,
>     can this new window-system live together with X and TTY frames in
>     the same session? does it support Lisp threads? etc.  Also, what
>     are the requirements from the platforms where this could be built
>     and used?

I started porting to pure Gtk3 about 2 years ago.
I referred NS's code because X's is too complex.
But I ported text rendering code from X afterwards.
There are old codes because I can't follow NS and X code changes.

Because I was not going to merge to mainline when I started porting,
older commit messages are in Japanese.  If you don't like Japanese
messages, I can make one big commit instead of existing commits.

Since pgtk emacs is configured with '--without-x', existing X code
is disabled.  If configured with '--with-x', the existing X support
should be enabled as before.

Pgtk emacs supports X window system too through Gtk library.
It can handle Wayland, X window system, and TTY in the same session.
But segmentation fault may occur when running on X and Wayland
in the same session.

Since Gtk does not support these functions on Wayland, they don't work
on Wayland.  On X, they should work.
  - x_set_no_focus_on_map
  - x_set_no_accept_focus
  - x_set_z_group
  - raise/lower
  - gtk_plug
Since Gtk does not support this function, it doesn't work, even if on X.
  - vendor_specific_keysyms

I don't know about Lisp threads.  I have never supported it explicitly.
Pgtk emacs may not support it.

Pgtk emacs:
- needs '--with-cairo'.
- supports menubar, toolbar, scrollbar, tabbar, and fringe.
- supports stipple.
- supports childframe.

Pgtk emacs uses cairo.  It prepares a surface before rendering, render
on it, and copy it on the window on a Gtk 'draw' event.

X-gtk emacs uses gtkutil.c.  Pgtk emacs also uses it.

Since Gtk doesn't support xrdb, I implemented alternative using GNOME's gsettings.
  (pgtk-set-resource "background" "gray")
  (x-get-resource "background" "Background")
Xrdb is not supported even if on X.

The prefixes of functions and variables: 'pgtk-' and 'x-'.
I don't have rules about which should be used for each of functions and variables.

Gtk supports w32, but I have never tested on w32.

-- 
Yuuki Harano



  reply	other threads:[~2020-04-27 12:37 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-26  7:56 emacs for pure Gtk3 Yuuki Harano
2020-04-26  8:52 ` 조성빈
2020-04-26  9:35   ` Yuuki Harano
2020-04-26  9:52   ` Yuuki Harano
2020-04-26 14:01 ` Eli Zaretskii
2020-04-27 12:37   ` Yuuki Harano [this message]
2020-04-27 15:03     ` Eli Zaretskii
2020-04-28 13:42       ` Yuuki Harano
2020-04-28 14:34         ` Eli Zaretskii
2020-04-28 20:09           ` Alan Third
2020-04-29  8:34           ` Yuuki Harano
2020-04-29  6:16         ` Po Lu
2020-04-29  7:46           ` Yuuki Harano
2020-04-29  8:05             ` Po Lu
2020-04-27 15:35     ` Yuuki Harano
2020-11-17 14:50   ` Yuuki Harano
2020-11-17 15:24     ` Eli Zaretskii
2020-11-17 17:24       ` Robert Pluim
2020-11-24 13:12         ` Yuuki Harano
2020-11-24 14:41           ` Robert Pluim
2020-11-25 12:24             ` Yuuki Harano
2020-11-25 13:30               ` Robert Pluim
2020-11-24 19:25           ` martin rudalics
2020-11-25 12:19             ` Yuuki Harano
2020-11-25 13:22               ` martin rudalics
2020-11-25 18:35               ` martin rudalics
2020-11-25 23:06                 ` Tim Cross
2020-11-26 15:44                   ` martin rudalics
2020-11-26 13:39                 ` Yuuki Harano
2020-11-26 15:45                   ` martin rudalics
2020-11-27 12:59                     ` Yuuki Harano
2020-11-27 15:42                       ` martin rudalics
2020-11-27 15:52                         ` Yuuki Harano
2020-11-25 17:31           ` Eric Abrahamsen
2020-11-27 16:07             ` Yuuki Harano
2020-11-27 17:47               ` Eric Abrahamsen
2020-12-07 23:50                 ` Eric Abrahamsen
2020-12-11  3:40                   ` 황병희
2021-01-02 22:43           ` Dmitry Gutov
2021-01-03  1:18             ` 황병희
2021-01-03  3:11               ` Jose A. Ortega Ruiz
2021-01-03  8:13                 ` 황병희
2021-01-03  9:53             ` Daniele Nicolodi
2021-01-03 12:02               ` Dmitry Gutov
2021-01-10 14:10             ` Yuuki Harano
2021-01-11  2:52               ` Dmitry Gutov
2021-01-11  2:59                 ` Thien-Thi Nguyen
2021-01-11  3:06                   ` Dmitry Gutov
2021-01-11 11:58                 ` Yuuki Harano
2021-01-11 15:01                   ` Dmitry Gutov
2020-11-20 12:04       ` Yuuki Harano
2020-11-20 12:16         ` Eli Zaretskii
2020-11-25  2:17         ` Zhu Zihao
2020-11-25 10:02           ` Robert Pluim
2020-11-19  3:18     ` 황병희
2020-11-20  4:23       ` Tim Cross
2020-11-20  4:39         ` Eric Abrahamsen
2020-11-20  7:11           ` Tim Cross
2020-11-20  7:29             ` Jean Louis
2020-11-21 23:35               ` Tim Cross
2020-11-22  1:49                 ` 황병희
2020-11-20 16:33             ` Eric Abrahamsen
2020-04-26 18:00 ` martin rudalics
2020-04-26 18:43   ` Stefan Monnier
2020-04-27 15:43   ` Yuuki Harano
2020-04-28  8:32     ` martin rudalics
2020-04-27  2:33 ` 황병희
2020-04-27  8:37 ` Po Lu via Emacs development discussions.
2020-04-27 16:08   ` Yuuki Harano
2020-04-27 23:47     ` Po Lu
2020-04-27 23:49       ` Po Lu
2020-04-28  0:05       ` Dmitry Gutov
2020-04-28  6:08         ` Po Lu
2020-04-28  7:37           ` Eli Zaretskii
2020-04-29  6:13             ` Po Lu
2020-04-29  6:28   ` Po Lu
2020-04-29  8:12     ` Yuuki Harano
2020-04-30  0:15       ` Po Lu
2020-04-28  0:51 ` Daniele Nicolodi
2020-04-29  1:14 ` Andrew Cohen
2020-04-29 13:01 ` Robert Pluim
2020-04-29 15:03   ` martin rudalics
2020-04-29 15:17   ` Yuuki Harano
2020-04-29 16:58     ` Robert Pluim
  -- strict thread matches above, loose matches on Subject: below --
2020-04-27 11:54 Jeff Walsh
2020-04-28  8:32 ` martin rudalics
2020-04-28  3:19 Jeff Walsh
2020-04-28  7:27 ` Eli Zaretskii
2020-05-08  6:54 ` Jostein Kjønigsen
2020-05-08  6:59   ` 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=20200427.213727.386515228111850912.masm@luna.pink.masm11.me \
    --to=masm+emacs@masm11.me \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.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).