From: Stefan Kangas <stefankangas@gmail.com>
To: Tobias Bading <tbading@web.de>
Cc: Po Lu <luangruo@yahoo.com>, 63395@debbugs.gnu.org
Subject: bug#63395: HiDPI/GTK: menubar height scaled twice in xg_update_frame_menubar()
Date: Wed, 6 Sep 2023 04:05:05 -0700 [thread overview]
Message-ID: <CADwFkmnUK2hUs3v5qiDLAMZCuHCcJdQuQjEqDh7_yQQO6_H=xw@mail.gmail.com> (raw)
In-Reply-To: <db0e7168-364d-e58e-0835-ed3fdb9e2c20@web.de> (Tobias Bading's message of "Tue, 9 May 2023 20:22:53 +0200")
Po Lu, could you please take a look at the below bug report?
Tobias Bading <tbading@web.de> writes:
> It looks like
>
> --- %< ---
>
> commit 401ccb0b9c697fd3af026a72b6621a692e206aea
> Author: Po Lu <luangruo@yahoo.com>
> AuthorDate: Wed Jan 26 13:53:20 2022 +0800
> Commit: Po Lu <luangruo@yahoo.com>
> CommitDate: Wed Jan 26 13:53:20 2022 +0800
>
> Fix GTK menu bar height reporting when scaled
>
> * src/gtkutil.c (xg_update_frame_menubar): Multiply requisition
> height by GDK scale.
>
> M src/gtkutil.c
>
> --- >% ---
>
> tried to correct a problem that was already fixed by
>
> --- %< ---
>
> commit a05bafffdcb88df74408a8402cafc9829407c1e5
> Author: Tobias Bading <tbading@web.de>
> AuthorDate: Wed Nov 27 16:51:26 2019 +0100
> Commit: Robert Pluim <rpluim@gmail.com>
> CommitDate: Tue Dec 3 08:54:31 2019 +0100
>
> Fix incorrect GTK menus on HiDPI monitors with scaling factor > 1
>
> This should fix Bug#31223, Bug#28106, Bug#23672 as well as Ubuntu bug
> https://bugs.launchpad.net/ubuntu/+source/emacs25/+bug/1695228
>
> Also fixes the formerly unscaled Y value returned by
> frame-monitor-workarea (and display-monitor-attributes-list).
>
> For details on why some GTK menus were empty please see thread
> https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01061.html
>
> * src/gtkutil.c (menubar_map_cb, xg_update_frame_menubar): Scale up
> req.height so that the menu bar's height is in device pixels as
> expected.
> (xg_event_is_for_menubar): Scale down rec.x and rec.y so that
> gtk_widget_intersect() works as intended.
> * src/xfns.c (Fx_display_monitor_attributes_list): Scale work.x and
> work.y up to be in device pixels.
>
> Copyright-paperwork-exempt: yes
>
> M src/gtkutil.c
> M src/xfns.c
>
> --- >% ---
>
> In emacs-29 as well as master req.height in xg_update_frame_menubar() is now
> multiplied with xg_get_scale(f) twice. As a result my window manager (Compiz
> from Ubuntu 20.04.6 LTS) assumes that the Emacs frame wouldn’t fit into the
> monitor’s workarea and ignores my requested position.
>
> Reverting 401ccb0b9c697fd3af026a72b6621a692e206aea fixes this for me.
next prev parent reply other threads:[~2023-09-06 11:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-09 18:22 bug#63395: HiDPI/GTK: menubar height scaled twice in xg_update_frame_menubar() Tobias Bading
2023-09-06 11:05 ` Stefan Kangas [this message]
2023-09-06 11:43 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-07 0:59 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
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='CADwFkmnUK2hUs3v5qiDLAMZCuHCcJdQuQjEqDh7_yQQO6_H=xw@mail.gmail.com' \
--to=stefankangas@gmail.com \
--cc=63395@debbugs.gnu.org \
--cc=luangruo@yahoo.com \
--cc=tbading@web.de \
/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).