From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Tobias Bading Newsgroups: gmane.emacs.bugs Subject: bug#31223: [PATCH] Fix empty/incorrect GTK menus on HiDPI monitors with window scaling factor > 1 Date: Thu, 28 Nov 2019 10:32:39 +0100 Message-ID: <3d8e4309-c7df-c70a-a47c-36422d6c6ded@web.de> References: <0425bcb6-97ee-4845-3571-9db492966a34@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="159666"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.2 Cc: 31223@debbugs.gnu.org To: Robert Pluim Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Nov 28 10:48:05 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iaGP6-000fMv-3p for geb-bug-gnu-emacs@m.gmane.org; Thu, 28 Nov 2019 10:48:04 +0100 Original-Received: from localhost ([::1]:46996 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iaGP4-0002ae-GT for geb-bug-gnu-emacs@m.gmane.org; Thu, 28 Nov 2019 04:48:02 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60145) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iaGKn-0007RF-F1 for bug-gnu-emacs@gnu.org; Thu, 28 Nov 2019 04:43:39 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iaGAa-0005x1-Pk for bug-gnu-emacs@gnu.org; Thu, 28 Nov 2019 04:33:06 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:50668) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iaGAX-0005uH-M3 for bug-gnu-emacs@gnu.org; Thu, 28 Nov 2019 04:33:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iaGAX-0006DG-Ij for bug-gnu-emacs@gnu.org; Thu, 28 Nov 2019 04:33:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Tobias Bading Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 28 Nov 2019 09:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31223 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: help Original-Received: via spool by 31223-submit@debbugs.gnu.org id=B31223.157493356923864 (code B ref 31223); Thu, 28 Nov 2019 09:33:01 +0000 Original-Received: (at 31223) by debbugs.gnu.org; 28 Nov 2019 09:32:49 +0000 Original-Received: from localhost ([127.0.0.1]:56641 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iaGAL-0006Cq-1o for submit@debbugs.gnu.org; Thu, 28 Nov 2019 04:32:49 -0500 Original-Received: from mout.web.de ([212.227.15.4]:55983) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iaGAJ-00068u-6G for 31223@debbugs.gnu.org; Thu, 28 Nov 2019 04:32:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1574933560; bh=NRyCIWVy6OxTehVMiPBHGbWufv83qtq/2uKQtLyGj9A=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=VJTXG4QmUbRpDghtW+uXa/jrreuF10McP0VHrZuvmdO876PADQoJRZ3ijn46eH5Pj jT+i6Sl5vVRM4IeVN1phYlZTog0EVgv9SHfCSnIE2qO0i8qE2zfOnSQVljlyE93iF0 1FhS2Q0bCrsiHzKmVBcpY2ZkH14Ie4cD70hWwcqk= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Original-Received: from [192.168.2.103] ([84.143.156.184]) by smtp.web.de (mrweb001 [213.165.67.108]) with ESMTPSA (Nemesis) id 0M0hsk-1hfYH81OAA-00uo4r; Thu, 28 Nov 2019 10:32:40 +0100 In-Reply-To: Content-Language: en-US X-Provags-ID: V03:K1:4O7l5uOgdZeXqxtSivKX8Cb7xTj/aV5Yq5ssrkcN7Z7/gxsYpho p8BCLPWA8NDqULtjeJ9VuHQ6dJodkNyLBDLkuBi36LCr9Hk2nZUQJI7HYL79hXxKk1FU72H +2niMETdmL8BA1UyLOhyEXYSDP+EFO4zs7v+oD2Ihis2WhbF7Qua6+4yXDRibXQNQ+0PqK7 EfTrPCYzqAPnvnw+kzkPw== X-UI-Out-Filterresults: notjunk:1;V03:K0:2X1CY3RioVs=:nPzwuEEq9IzzdNJkV4P277 rzEVqGm0GiwFe9bvmrBBgPEooVF7mJhgXVOovWO+idkVBHnmK8T4x/z3QspKt2d42K3y90mtv GHxKl+kbbsRqcg+EtybUAQLTn5DzTtA817FMvSBk+kApSGJoS+vVrTFOjWudNZQUAGla2jFH8 lOoktnaIxGa0fOjYustEjGSXhzH/rOVynK84cIwTZea7B3jZPFxnzUYwdBU2mY6QaCkpAFUUI 0c//y5UjlWs6czCbCXANqo7Ns3V8YptkB5LiCXBkMiukm7YWHGPTd/J/oyoHilKsouOMR58e1 kimx/iABn49FTNnN57sky5XyM7B7HSq9oOMYq91bLad2ba24JZW1BPvGN5+UedvKGgFrxfird a4NHNCPfbFEb1bj0BP55euXYINNUQBrUOr2mqXDM1XeOFJmv9CTMHAPQxRaJA9D2ccAxeTAlA 3yrGFdo0tXb/7dD86RaSA5J4+zBcthguLiqf/ujeh7dwXFyWaKXe+pM7RBvOBEJphA5zA4bKv +mvxC59Kg8GJ+Xx9nv1VZi6Jh8NaRb6NhQKrQeROBYUOJIpZvSzMdIi1jcoOnv93Kozh9NkYb 7sDqN3x3o26ZvtDO6bGD993wrw9b6a4t5Y75+UW2ISrQGjDlZwiILgAfzcxh41D2awo1U2UGS xfAm/pypqTOIvyh4Vad3IOA+tTQODPor7nDedbjCWfFnkGxCDpVqdlITcvCEhsXrqdqRRBcQV t9im9PSFwkXXmIZS9nA7PD6ULtCalWSlMkLlTle/+XRm6lQs0fkaQxwJqCRRXJS5HkCEc7u7 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:172589 Archived-At: On 28.11.19 09:20, Robert Pluim wrote: >>>>>> On Wed, 27 Nov 2019 17:03:32 +0100, Tobias Bading said: > >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias> This should fix Bug#31223, Bug#28106, B= ug#23672 as well as Ubuntu bug >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias> https://bugs.launchpad.net/ubuntu/+source/emacs25/+bug/1695228 > > If those are all the same bug we should merge them. Noam Postavsky already did that over a year ago, although I have no idea what "merging" means in this bug tracker. The new comments don't appear in the merged reports and there's no indication as to which report became kind of the leading one after the merged. I simply chose 31223 because that's the one Noam sent his "merge 23672 28106 31223" command to, if I'm reading it right. > Yes. You need this as well, I think: > > diff --git a/src/gtkutil.c b/src/gtkutil.c > index cf5c31aa20..4f8b06941b 100644 > --- a/src/gtkutil.c > +++ b/src/gtkutil.c > @@ -3503,6 +3503,8 @@ xg_update_frame_menubar (struct frame *f) >=C2=A0=C2=A0=C2=A0 gtk_widget_show_all (x->menubar_widget); >=C2=A0=C2=A0=C2=A0 gtk_widget_get_preferred_size (x->menubar_widget, NUL= L, &req); > > +=C2=A0 req.height *=3D xg_get_scale (f); >=C2=A0=C2=A0=C2=A0 if (FRAME_MENUBAR_HEIGHT (f) !=3D req.height) >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 { >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 FRAME_MENUBAR_HEIGHT (f) =3D = req.height; This change in xg_update_frame_menubar is already a part of my patch, with the only difference that I replaced the empty line. Or am I reading this hunk wrong? >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias> diff --git a/src/xfns.c b/src/xfns.c >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias> index b1b40702c2..47aa19607f 100644 >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias> --- a/src/xfns.c >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias> +++ b/src/xfns.c >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias> @@ -5093,6 +5093,8 @@ DEFUN ("x-display-monitor-attributes-list", Fx_display_monitor_attributes_list, >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias>=C2=A0 #endif >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 rec.width *=3D scale; >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 rec.height *=3D scale; >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 work.x = *=3D scale; >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 work.y = *=3D scale; >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 work.width *=3D scale; >=C2=A0=C2=A0=C2=A0=C2=A0 Tobias>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 work.height *=3D scale; > > This seems correct as well. Probably rec.x and rec.y need scaling as well, for > the multi-monitor case, which will require some cabling for me to test. Good point. The documentation of gdk_monitor_get_geometry() says "Retrieves the size and position of an individual monitor within the displ= ay coordinate space. The returned geometry is in "application pixels", not in "device pixels" (see gdk_monitor_get_scale_factor())." Unfortunately, I don't have a second monitor at hand to test this. Tobias