unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Yuuki Harano <masm+emacs@masm11.me>
Cc: emacs-devel@gnu.org
Subject: Re: Merging the pgtk branch
Date: Tue, 10 Aug 2021 19:19:49 +0300	[thread overview]
Message-ID: <83fsvhff16.fsf@gnu.org> (raw)
In-Reply-To: <20210811.001515.1312870178782255892.masm@luna.pink.masm11.me> (message from Yuuki Harano on Wed, 11 Aug 2021 00:15:15 +0900 (JST))

> Date: Wed, 11 Aug 2021 00:15:15 +0900 (JST)
> Cc: emacs-devel@gnu.org
> From: Yuuki Harano <masm+emacs@masm11.me>
> 
> > Why is this unconditional?
> > 
> >> +extern GType emacs_fixed_get_type (void);
> > 
> > And this.
> 
> Since emacsgtkfixed.[ch] are extending a GTK's class, there should be
> those lines.
> But OK, they should be enclosed in #ifdef HAVE_PGTK.

Yes, that's what I meant.

> #ifdef USE_CAIRO
>   syms_of_ftcrfont ();       /* <------------ There is this call since before */
> #else
> #ifdef HAVE_XFT
>   syms_of_xftfont ();
> #endif  /* HAVE_XFT */
> #endif  /* not USE_CAIRO */
> #else   /* not HAVE_X_WINDOWS */
> #ifdef USE_CAIRO
>   syms_of_ftcrfont ();      /* <------------- I added this call. */
> #endif

Got it, thanks.

> >> +#ifdef HAVE_PGTK
> >> +  if (FRAME_TERMINAL (f)->frame_rehighlight_hook)
> >> +    (*FRAME_TERMINAL (f)->frame_rehighlight_hook) (f);
> >> +#endif
> > 
> > Why is the above done only for PGTK?
> 
> I'm sorry.  I forgot the reason.

I hope you will recall it.  Or maybe just disable the change and see
what goes wrong?

I'm not really opposed to the change, I'm just surprised it is needed,
and if indeed it is needed, I would like to have a comment there
explaining why.

> >> +#ifndef HAVE_PGTK
> >>    frame_resize_pixelwise = 0;
> >> +#else
> >> +  /* https://gitlab.gnome.org/GNOME/mutter/-/issues/396 */
> >> +  frame_resize_pixelwise = true;
> >> +#endif
> > 
> > Why the PGTK-specific setting here?
> 
> To work around the weird behavior when resizing with top-left corner.
> It is GNOME mutter's bug, which seems to be already fixed.
> The workaround may be able to be reverted.

Ok, but if you do want to leave the workaround, please add a comment
with the above explanation of the reason.

> >> +#else
> >> +  if (FRAME_X_DISPLAY(f) != DEFAULT_GDK_DISPLAY ())
> > 
> > So FRAME_X_P returns zero for PGTK, but FRAME_X_DISPLAY is still
> > relevant for it?  Isn't that confusing?
> 
> ----
> pgtkterm.h:#define FRAME_X_DISPLAY(f)        (FRAME_DISPLAY_INFO(f)->gdpy)
> ----
> 
> It's GTK's display.

OK, but please add a comment near FRAME_X_P's definition to the effect
that FRAME_X_P will return false for PGTK although FRAME_X_DISPLAY is
still valid.  (But see below: perhaps a more significant change
described there will make this a moot point.)

> >> -  f->output_data.x->hint_flags = 0;
> >> +  f->output_data.xp->hint_flags = 0;
> > 
> > Why did you need this change (and others like it)?  The "x" part here
> > has an important mnemonic value.
> 
> ----
> #include "xterm.h"
> #define xp x
> typedef struct x_output xp_output;
> #else
> #define xp pgtk
> typedef struct pgtk_output xp_output;
> #endif
> ----
> 
> When X-GTK build, xp is x.
> When PGTK build, xp is pgtk.
> 
> Without xp, all of them need to be conditional.
> e.g.
> ----
> #ifndef HAVE_PGTK
>   f->output_data.x->hint_flags = 0;
> #else
>   f->output_data.pgtk->hint_flags = 0;
> #endif

OK, but we have the same problem with other display types as well.
For example, the MS-Windows display has

  f->output_data.w32->...

The code is still conditional, allright, but the conditions are hidden
in the definitions of FRAME_DISPLAY_INFO, FRAME_FONT, etc.  Can't we
do something similar for PGTK?  If necessary, we could add more
FRAME_xxx macros to hide the conditionals, where the X and the PGTK
members need to be accessed differently.

Thanks!



  reply	other threads:[~2021-08-10 16:19 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-01  8:53 Merging the pgtk branch Eli Zaretskii
2021-08-01 16:38 ` Yuuki Harano
2021-08-01 16:57   ` Stefan Monnier
2021-08-02 14:17     ` Yuuki Harano
2021-08-02 11:49   ` Eli Zaretskii
2021-08-03 12:52     ` Yuuki Harano
2021-08-03 13:37       ` Stefan Monnier
2021-08-04 13:43         ` Yuuki Harano
2021-11-14 12:20   ` Yuuki Harano
2021-11-14 13:27     ` Eli Zaretskii
2021-11-14 14:55       ` Yuuki Harano
2021-08-04 12:53 ` Font size (was: Merging the pgtk branch) Kévin Le Gouguec
2021-08-04 13:45   ` Eli Zaretskii
2021-08-04 13:58     ` Font size Kévin Le Gouguec
2021-08-04 15:46       ` Yuri Khan
2021-08-04 16:11         ` Eli Zaretskii
2021-08-04 17:09           ` Yuri Khan
2021-08-04 18:23             ` Eli Zaretskii
2021-08-04 18:33               ` Yuri Khan
2021-08-05 14:51                 ` Robert Pluim
2021-08-05 16:19                   ` Eli Zaretskii
2021-08-04 13:55   ` Font size (was: Merging the pgtk branch) Eli Zaretskii
2021-08-04 14:15     ` Font size Kévin Le Gouguec
2021-08-10 15:15 ` Merging the pgtk branch Yuuki Harano
2021-08-10 16:19   ` Eli Zaretskii [this message]
2021-11-29 15:41   ` Yuuki Harano
2021-12-02  3:45     ` Po Lu
2021-12-02  9:47       ` Robert Pluim
2021-12-02  9:50         ` Po Lu
2021-12-02 10:06           ` Robert Pluim
2021-12-02 10:12             ` Po Lu
2021-12-02 10:04         ` Po Lu
2021-12-02 11:34           ` Robert Pluim
2021-12-05 14:08     ` Eli Zaretskii
2021-12-05 16:01       ` Yuuki Harano
2021-12-05 16:06         ` Eli Zaretskii
2021-12-06  0:56           ` Po Lu
2021-12-06  4:41             ` Po Lu
2021-12-06 13:12               ` Yuuki Harano
2021-12-06 13:24                 ` Po Lu
2021-12-06 16:01                   ` Yuuki Harano
2021-12-09  5:01                     ` Po Lu
2021-12-18  7:58                       ` Po Lu
2021-12-18 12:52                         ` Yuuki Harano
2021-12-18 12:53                           ` Eli Zaretskii
2021-12-18 12:56                             ` Po Lu
2021-12-18 13:00                               ` Eli Zaretskii
2021-12-18 13:02                                 ` Po Lu
2021-12-18 12:54                           ` Po Lu
2021-12-18 12:58                             ` Eli Zaretskii
2021-12-18 13:01                               ` Po Lu
2021-12-18 13:24                                 ` Po Lu
2021-12-18 13:26                                   ` Po Lu
2021-12-18 13:37                                     ` Lars Ingebrigtsen
2021-12-18 13:39                                       ` Po Lu via Emacs development discussions.
2021-12-18 14:18                                         ` Eli Zaretskii
2021-12-18 13:45                                       ` Lars Ingebrigtsen
2021-12-18 13:40                                     ` Eli Zaretskii
2021-12-18 13:56                                     ` Yuuki Harano
2021-12-18 14:15                                       ` Bozhidar Batsov
2021-12-18 14:21                                         ` Eli Zaretskii
2021-12-18 15:12                                           ` Bozhidar Batsov
2021-12-18 15:37                                             ` Philip Kaludercic
2021-12-18 15:48                                             ` Eli Zaretskii
2021-12-18 15:56                                               ` Ken Brown
2021-12-18 16:05                                               ` Stefan Kangas
2021-12-18 16:10                                                 ` Eli Zaretskii
2021-12-19  0:30                                                 ` Po Lu
2021-12-19  0:28                                               ` Po Lu
2021-12-18 16:15                                       ` Eli Zaretskii
2021-12-19  0:32                                         ` Po Lu
2021-12-19  9:39                                           ` Bozhidar Batsov
2021-12-18 14:15                                     ` Eli Zaretskii
2021-12-18 19:10                                     ` Stefan Monnier
2021-12-18 21:50                                     ` Sean Whitton
2021-12-18 23:15                                     ` David Koppelman
2021-12-18 13:26                                 ` Eli Zaretskii
2021-12-18 13:29                                   ` Po Lu
2021-12-18 13:32                                     ` Eli Zaretskii
2021-12-18 13:33                                       ` Po Lu
2021-12-18 19:08                                         ` Stefan Monnier
2021-09-01 15:06 ` Transitory GUI connections (was Re: Merging the pgtk branch) Alex Bennée
2021-09-02  6:22   ` Po Lu
2021-09-17 15:09   ` Robert Pluim
  -- strict thread matches above, loose matches on Subject: below --
2021-12-05 19:14 Merging the pgtk branch Vitaly Ankh

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=83fsvhff16.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=masm+emacs@masm11.me \
    /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).