GNU bug report logs -
#63395
HiDPI/GTK: menubar height scaled twice in xg_update_frame_menubar()
Previous Next
Reported by: Tobias Bading <tbading <at> web.de>
Date: Tue, 9 May 2023 18:24:02 UTC
Severity: normal
Tags: fixed
Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 63395 <at> debbugs.gnu.org (full text, mbox):
Po Lu, could you please take a look at the below bug report?
Tobias Bading <tbading <at> web.de> writes:
> It looks like
>
> --- %< ---
>
> commit 401ccb0b9c697fd3af026a72b6621a692e206aea
> Author: Po Lu <luangruo <at> yahoo.com>
> AuthorDate: Wed Jan 26 13:53:20 2022 +0800
> Commit: Po Lu <luangruo <at> 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 <at> web.de>
> AuthorDate: Wed Nov 27 16:51:26 2019 +0100
> Commit: Robert Pluim <rpluim <at> 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.
This bug report was last modified 147 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.