all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: martin rudalics <rudalics@gmx.at>, Eli Zaretskii <eliz@gnu.org>
Cc: rpluim@gmail.com, 52493@debbugs.gnu.org
Subject: bug#52493: 29.0.50; Setting Inconsolata up in init.el makes default face rendered wrong
Date: Mon, 9 Jan 2023 22:50:50 +0200	[thread overview]
Message-ID: <921de89e-57e0-04de-3e91-043b49503d10@yandex.ru> (raw)
In-Reply-To: <dfb1d558-25df-ca11-904e-0b02814163a2@gmx.at>

On 09/01/2023 12:07, martin rudalics wrote:
>  > Here's a few more complex ones that seem off:
>  >
>  > ;;; Scenario 1
>  > ;; 1.
>  > (set-face-attribute 'default nil :height 110 :family "InconsolataLGC")
>  > ;; to get the frame sized right
>  > ;; call (set-frame-size nil 80 36)
>  > ;; or (set-frame-size nil 160 36)
>  > ;; or don't if the frame is at that size already (which it should be)
>  > ;; (frame-text-lines) returns 36
> 
> Note that a frame with the "right height" is only one where
> 
> (= (* (frame-char-height) (frame-text-lines)) (frame-text-height))
> 
> holds.  Here, for example, a maximized frame does not have the "right
> height".

Yeah ok, but none of the frames were maximized in those scenarios. And 
the resizing by mouse "snapped" to the provided grid.

>  > ;; 2. !important
>  > ;; manually resize the frame using the mouse to have one line less
>  > ;; (frame-text-lines) will continue to return 36
> 
> Manually resizing a frame with a scaling factor of 2 will be off by one
> pixel when the font has impair height.  There is nothing we can do about
> that - the height increment we send to the WM must be an integer.  The
> result is that while the frame's pixel height changes and so does the
> height of the frame on the display, the height in lines stays the same.

I'm probably out of my depth here, but with 2x scaling, shouldn't the 
height increment just be 2x larger than the original one? If N is 
integer, 2xN must be an integer as well.

>  > ;; 3.
>  > (set-face-attribute 'default nil :height 110 :family "InconsolataLGC")
>  > ;; The frame will get resized to the previous dimensions.
>  > ;; Note that the return value of (frame-text-lines) doesn't change.
> 
> Hopefully so.  It's crucial that all executions of
> 
> (set-face-attribute 'default nil :height 110 :family "InconsolataLGC")
> 
> starting with the same number of text lines result in the same pixel and
> text heights.

Pixel dimensions do change in this scenario. But not the reported text 
height.

>  > ;;; Scenario 2
>  > ;; Do the same steps, except for the width instead of height.
>  > ;; Optionally, use different dimensions:
>  > ;; (set-frame-size nil 160 36)
>  > ;; These are the only ones I found to have this effect for both 
> dimensions.
>  > ;; I'm guessing 160x72 will work as well, but that's bigger than my 
> screen.
> 
> IIUC this scenario is just a variation of the first one - with a
> character size of 17x37 you will lose one pixel in both dimensions.

Yes, just width instead of height.

>  > ;;; Scenario 3
>  > ;; 1. From Scenario 1.
>  > ;; 2. Resize with the mouse both width and height, to have 1 less.
>  > ;; 3. Eval the set-frame-attribute form. Nothing happens, the frame 
> size stays the same.
>  > ;; Step 2 still doesn't change the return values of 
> frame-text-cols/lines.
> 
> IIUC these steps
> 
> xg_frame_resized old native pixels 1424x1368 new native pixels 1408x1368
> adjust_frame_size old native pixels 1424x1368 new native pixels 
> 1408x1368 old text pixels 1376x1368 new text pixels 1360x1368 old text 
> chars 80x36 new text chars 80x36
> xg_frame_resized old native pixels 1408x1368 new native pixels 1408x1332
> adjust_frame_size old native pixels 1408x1368 new native pixels 
> 1408x1332 old text pixels 1360x1368 new text pixels 1360x1332 old text 
> chars 80x36 new text chars 80x36
> 
> represent two mouse operations that resize the frame by 16 pixels, first
> the width, then the height.  Both are less that the character size so
> while again the size of the frame should have changed, the numbers of
> text characters didn't.

The frame size didn't change either, however.

> x_new_font old char size 17x37 new char size 17x37 text chars 80x36 old 
> text pixels 1360x1332 new text pixels 1360x1332
> 
> x_new_font old char size 17x37 new char size 17x37 text chars 80x36 old 
> text pixels 1360x1332 new text pixels 1360x1332
> 
> Here we have (= (* 80 17) 1360) and (= (* 36 37) 1332) so
> adjust_frame_size triggered by x_new_font correctly decides that the
> frame size should stay the same.

All right. Where do we go from here?

The usability problems remaining are very minor, so if you're saying 
Emacs is going right thing, we might as well go with the latest patch 
and call it a day. Thank you.





  reply	other threads:[~2023-01-09 20:50 UTC|newest]

Thread overview: 169+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-14 23:43 bug#52493: 29.0.50; Setting Inconsolata up in init.el makes default face rendered wrong Dmitry Gutov
2021-12-15 14:57 ` Eli Zaretskii
2021-12-15 22:43   ` Dmitry Gutov
2021-12-16  7:29     ` Eli Zaretskii
2021-12-16 13:01       ` Dmitry Gutov
2021-12-16 13:31         ` Eli Zaretskii
2021-12-16 13:42           ` Dmitry Gutov
2021-12-16 14:08             ` Eli Zaretskii
2021-12-16 14:57               ` Dmitry Gutov
2021-12-16 15:15                 ` Eli Zaretskii
2021-12-16 15:34                   ` Eli Zaretskii
2021-12-16 15:42                     ` Dmitry Gutov
2021-12-16 16:56                       ` Eli Zaretskii
2021-12-17  0:49                         ` Dmitry Gutov
2021-12-17  7:37                           ` Eli Zaretskii
2021-12-17  7:46                             ` Lars Ingebrigtsen
2021-12-17  8:38                               ` Eli Zaretskii
2022-12-21  1:14                                 ` Dmitry Gutov
2022-12-21  9:38                                   ` Gregory Heytings
2022-12-21 12:49                                     ` Eli Zaretskii
2022-12-21 23:39                                       ` Gregory Heytings
2022-12-22  7:18                                         ` Eli Zaretskii
2022-12-25 22:42                                           ` Gregory Heytings
2022-12-21 13:40                                     ` Dmitry Gutov
2022-12-21 23:39                                       ` Gregory Heytings
2022-12-22  7:20                                         ` Eli Zaretskii
2022-12-25 22:42                                           ` Gregory Heytings
2022-12-26 12:20                                             ` Eli Zaretskii
2022-12-26 14:05                                               ` Gregory Heytings
2022-12-22 20:32                                         ` Dmitry Gutov
2022-12-25 22:42                                           ` Gregory Heytings
2022-12-26  0:46                                             ` Gregory Heytings
2022-12-26 12:25                                               ` Eli Zaretskii
2022-12-29 22:45                                                 ` Gregory Heytings
2022-12-30 14:47                                                   ` Eli Zaretskii
2022-12-30 15:40                                                     ` Gregory Heytings
2022-12-30 16:14                                                       ` Eli Zaretskii
2022-12-30 16:27                                                         ` Gregory Heytings
2022-12-30 17:01                                                           ` Eli Zaretskii
2022-12-30 17:28                                                             ` Gregory Heytings
2022-12-26 15:48                                               ` Dmitry Gutov
2022-12-26 16:19                                                 ` Gregory Heytings
2022-12-27  2:04                                                   ` Dmitry Gutov
2022-12-28 15:20                                                     ` Gregory Heytings
2022-12-28 17:01                                                       ` Eli Zaretskii
2022-12-27  1:58                                             ` Dmitry Gutov
2022-12-28 15:19                                               ` Gregory Heytings
2022-12-21 12:11                                   ` Eli Zaretskii
2021-12-17 12:30                             ` Dmitry Gutov
2021-12-17 13:01                               ` Eli Zaretskii
2021-12-17 13:21                                 ` Dmitry Gutov
2021-12-17 13:46                                   ` Eli Zaretskii
2021-12-17 14:06                                     ` Dmitry Gutov
2021-12-17 14:42                                       ` Eli Zaretskii
2021-12-17 19:17                           ` martin rudalics
2022-12-21  1:08                             ` Dmitry Gutov
2022-12-21  9:22                               ` martin rudalics
2022-12-21 12:56                                 ` Dmitry Gutov
2022-12-21 17:05                                   ` martin rudalics
2022-12-21 23:00                                     ` Dmitry Gutov
2022-12-22 10:15                                       ` martin rudalics
2022-12-22 20:39                                         ` Dmitry Gutov
2022-12-23  9:14                                           ` martin rudalics
2022-12-23  9:19                                             ` martin rudalics
2022-12-23 18:48                                             ` Dmitry Gutov
2022-12-24  9:27                                               ` martin rudalics
2022-12-24 13:38                                                 ` Dmitry Gutov
2022-12-25 10:21                                                   ` martin rudalics
2022-12-25 13:01                                                     ` Dmitry Gutov
2022-12-25 16:07                                                       ` martin rudalics
2022-12-25 16:52                                                         ` Dmitry Gutov
2022-12-26  9:10                                                           ` martin rudalics
2022-12-27 23:15                                                             ` Dmitry Gutov
2022-12-28 10:08                                                               ` martin rudalics
2022-12-28 12:31                                                                 ` Dmitry Gutov
2022-12-28 17:35                                                                   ` martin rudalics
2022-12-28 22:35                                                                     ` Dmitry Gutov
2022-12-29  9:05                                                                       ` martin rudalics
2022-12-29 22:29                                                                         ` Dmitry Gutov
2022-12-30  9:51                                                                           ` martin rudalics
2022-12-31 19:01                                                                           ` martin rudalics
2023-01-05  1:50                                                                             ` Dmitry Gutov
2023-01-05  9:47                                                                               ` martin rudalics
2023-01-05 14:14                                                                                 ` Dmitry Gutov
2023-01-05 16:59                                                                                   ` martin rudalics
2023-01-05 19:08                                                                                     ` Dmitry Gutov
2023-01-06 17:47                                                                                       ` martin rudalics
2023-01-06 18:14                                                                                         ` Dmitry Gutov
2023-01-06 22:40                                                                                           ` Gregory Heytings
2023-01-06 23:45                                                                                             ` Dmitry Gutov
2023-01-06 23:49                                                                                               ` Gregory Heytings
2023-01-07  0:48                                                                                                 ` Dmitry Gutov
2023-01-07  0:50                                                                                                   ` Gregory Heytings
2023-01-07  9:48                                                                                             ` martin rudalics
2023-01-08  9:45                                                                                               ` martin rudalics
2023-01-08 22:38                                                                                               ` Gregory Heytings
2023-01-08 23:23                                                                                                 ` Gregory Heytings
2023-01-09 10:09                                                                                                 ` martin rudalics
2023-01-09 17:28                                                                                             ` Eric Abrahamsen
2023-01-07  9:15                                                                                           ` martin rudalics
2023-01-09  0:12                                                                                             ` Dmitry Gutov
2023-01-09 10:07                                                                                               ` martin rudalics
2023-01-09 20:50                                                                                                 ` Dmitry Gutov [this message]
2023-01-10 12:05                                                                                                   ` martin rudalics
2023-01-12  0:34                                                                                                     ` Dmitry Gutov
2023-01-12  9:31                                                                                                       ` martin rudalics
2023-01-12  9:46                                                                                                         ` Robert Pluim
2023-01-12 10:23                                                                                                           ` martin rudalics
2023-01-12 23:53                                                                                                           ` Dmitry Gutov
2023-01-13  0:36                                                                                                         ` Dmitry Gutov
2023-01-13  8:38                                                                                                           ` martin rudalics
2023-01-16  1:27                                                                                                             ` bug#60585: 30.0.50; global-text-scale-adjust shrinks window (was not before), was: " Dmitry Gutov
2023-01-16 10:03                                                                                                               ` martin rudalics
2023-01-16 12:44                                                                                                                 ` Dmitry Gutov
2023-01-16 16:10                                                                                                                   ` martin rudalics
2023-01-17  1:54                                                                                                                     ` Dmitry Gutov
2023-01-17 10:04                                                                                                                       ` martin rudalics
2023-01-17 17:35                                                                                                                         ` Dmitry Gutov
2023-01-18 17:13                                                                                                                           ` martin rudalics
2023-01-21  3:12                                                                                                                             ` Dmitry Gutov
2023-01-21 10:08                                                                                                                               ` martin rudalics
2023-01-22  1:56                                                                                                                                 ` Dmitry Gutov
2023-01-22  9:54                                                                                                                                   ` martin rudalics
2023-01-22 22:25                                                                                                                                     ` Dmitry Gutov
2023-01-24 10:50                                                                                                                                       ` martin rudalics
2023-01-25  4:20                                                                                                                                         ` Dmitry Gutov
2023-01-26 15:44                                                                                                                                           ` martin rudalics
2023-01-27  3:07                                                                                                                                             ` Dmitry Gutov
2023-01-27  9:35                                                                                                                                               ` martin rudalics
2023-01-28  0:22                                                                                                                                                 ` Dmitry Gutov
2023-01-28 15:36                                                                                                                                                   ` martin rudalics
2023-01-29  1:25                                                                                                                                                     ` Dmitry Gutov
2023-01-30  9:28                                                                                                                                                       ` martin rudalics
2023-02-09 19:40                                                                                                                                                         ` Dmitry Gutov
2023-02-11  1:36                                                                                                                                                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-11  8:17                                                                                                                                                             ` Eli Zaretskii
2023-02-11  9:30                                                                                                                                                               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-11 10:39                                                                                                                                                                 ` Eli Zaretskii
2023-02-11 10:15                                                                                                                                                             ` Dmitry Gutov
2023-02-11 10:22                                                                                                                                                               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-11 22:08                                                                                                                                                                 ` Dmitry Gutov
2023-02-12  1:45                                                                                                                                                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-12  2:06                                                                                                                                                                     ` Dmitry Gutov
2023-02-12  3:26                                                                                                                                                                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-12 12:41                                                                                                                                                                         ` Dmitry Gutov
2023-02-13  2:56                                                                                                                                                                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-16  2:09                                                                                                                                                                             ` Dmitry Gutov
2023-02-16  3:00                                                                                                                                                                               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-16 22:18                                                                                                                                                                                 ` Dmitry Gutov
2023-02-17  2:43                                                                                                                                                                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-02-17 11:54                                                                                                                                                                                     ` Dmitry Gutov
2023-02-12 12:55                                                                                                                                                                         ` Dmitry Gutov
2023-02-13 10:09                                                                                                                                                           ` martin rudalics
2023-02-17  2:05                                                                                                                                                             ` Dmitry Gutov
2023-02-20  9:05                                                                                                                                                               ` martin rudalics
2023-02-22  1:42                                                                                                                                                                 ` Dmitry Gutov
2023-02-24 17:54                                                                                                                                                                   ` martin rudalics
2023-02-27  1:29                                                                                                                                                                     ` Dmitry Gutov
2022-12-21 13:43                                 ` Dmitry Gutov
2022-12-24  1:03                             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-24  8:52                               ` martin rudalics
2022-12-24  9:39                                 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-24 10:45                                   ` martin rudalics
2022-12-24 11:24                                     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-24 13:02                                       ` Dmitry Gutov
2022-12-25 22:52                           ` Gregory Heytings
2021-12-16 15:36                   ` Dmitry Gutov
2021-12-16 16:54                     ` Eli Zaretskii
2021-12-17  0:13                       ` Dmitry Gutov

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=921de89e-57e0-04de-3e91-043b49503d10@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=52493@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=rpluim@gmail.com \
    --cc=rudalics@gmx.at \
    /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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.