* bug#20619: 24.5; Pop-up menus clipped on HiDPI (Gtk3/X11)
@ 2015-05-20 18:20 Michael Droettboom
2015-05-23 12:06 ` Jan Djärv
` (3 more replies)
0 siblings, 4 replies; 15+ messages in thread
From: Michael Droettboom @ 2015-05-20 18:20 UTC (permalink / raw)
To: 20619
If in HiDPI mode on Linux [1] the popup menus are constrained to the
upper left quadrant of the screen and are not opened near the mouse
cursor. For example, 'C-mouse-1' in the lower-right hand quadrant opens
an empty menu. 'C-mouse-1' in the upper-right hand quadrant opens a
menu, but not in the correct location.
[1] This mode is set automatically under Gnome, or may get set manually
with:
gsettings set org.gnome.desktop.interface scaling-factor 2
A workaround, which may help to diagnose the bug, is to start emacs
using:
GDK_SCALE=0.5 emacs
Other Gtk3 applications (gnome-terminal, nautilus) so not seem to
exhibit this behavior under the same conditions.
In GNU Emacs 24.5.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.16.2)
of 2015-04-22 on buildhw-08.phx2.fedoraproject.org
Windowing system distributor `Fedora Project', version 11.0.11701000
System Description: Fedora release 23 (Rawhide)
Configured using:
`configure --build=x86_64-redhat-linux-gnu
--host=x86_64-redhat-linux-gnu --program-prefix=
--disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
--libexecdir=/usr/libexec --localstatedir=/var
--sharedstatedir=/var/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
--with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
--with-gpm=no build_alias=x86_64-redhat-linux-gnu
host_alias=x86_64-redhat-linux-gnu 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g
-pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-m64 -mtune=generic' LDFLAGS=-Wl,-z,relro'
Important settings:
value of $LC_CTYPE: en_US.utf8
value of $LANG: en_US.utf8
locale-coding-system: utf-8-unix
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: 24.5; Pop-up menus clipped on HiDPI (Gtk3/X11)
2015-05-20 18:20 bug#20619: 24.5; Pop-up menus clipped on HiDPI (Gtk3/X11) Michael Droettboom
@ 2015-05-23 12:06 ` Jan Djärv
2016-05-11 15:02 ` bug#20619: Another HiDPI issue C. Scott Ananian
` (2 subsequent siblings)
3 siblings, 0 replies; 15+ messages in thread
From: Jan Djärv @ 2015-05-23 12:06 UTC (permalink / raw)
To: Michael Droettboom, 20619
Hi.
Den 2015-05-20 20:20, Michael Droettboom skrev:
>
> If in HiDPI mode on Linux [1] the popup menus are constrained to the
> upper left quadrant of the screen and are not opened near the mouse
> cursor. For example, 'C-mouse-1' in the lower-right hand quadrant opens
> an empty menu. 'C-mouse-1' in the upper-right hand quadrant opens a
> menu, but not in the correct location.
>
> [1] This mode is set automatically under Gnome, or may get set manually
> with:
>
> gsettings set org.gnome.desktop.interface scaling-factor 2
>
> A workaround, which may help to diagnose the bug, is to start emacs
> using:
>
> GDK_SCALE=0.5 emacs
This is a huge undertaking, that requires changes in Emacs all over the place.
Coordinates and sizes are used in many places.
I'm not sure its worth it, as this Gnome thing is a bad way to scale
applications (it requires applications to conform to Gtk+).
KDE does something different for example. So I'm guessing something better
will emerge.
>
> Other Gtk3 applications (gnome-terminal, nautilus) so not seem to
> exhibit this behavior under the same conditions.
Emacs is not a Gtk3 application, ut just uses some of its widgets.
Its more of a raw X11/Gtk3 hybrid.
Jan D.
>
>
>
> In GNU Emacs 24.5.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.16.2)
> of 2015-04-22 on buildhw-08.phx2.fedoraproject.org
> Windowing system distributor `Fedora Project', version 11.0.11701000
> System Description: Fedora release 23 (Rawhide)
>
> Configured using:
> `configure --build=x86_64-redhat-linux-gnu
> --host=x86_64-redhat-linux-gnu --program-prefix=
> --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
> --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
> --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
> --libexecdir=/usr/libexec --localstatedir=/var
> --sharedstatedir=/var/lib --mandir=/usr/share/man
> --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
> --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
> --with-gpm=no build_alias=x86_64-redhat-linux-gnu
> host_alias=x86_64-redhat-linux-gnu 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g
> -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
> -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
> -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> -m64 -mtune=generic' LDFLAGS=-Wl,-z,relro'
>
> Important settings:
> value of $LC_CTYPE: en_US.utf8
> value of $LANG: en_US.utf8
> locale-coding-system: utf-8-unix
>
>
>
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Another HiDPI issue
2015-05-20 18:20 bug#20619: 24.5; Pop-up menus clipped on HiDPI (Gtk3/X11) Michael Droettboom
2015-05-23 12:06 ` Jan Djärv
@ 2016-05-11 15:02 ` C. Scott Ananian
2016-05-16 8:20 ` martin rudalics
2016-12-22 15:33 ` bug#20619: Improving HiDPI experience with emacs Eugen Dedu
2016-12-23 20:30 ` bug#20619: Scrollbars Eugen Dedu
3 siblings, 1 reply; 15+ messages in thread
From: C. Scott Ananian @ 2016-05-11 15:02 UTC (permalink / raw)
To: 20619
[-- Attachment #1: Type: text/plain, Size: 414 bytes --]
In addition to the pop-up menus being misplaced, on my machine
(debian/testing, HiDPI=2, emacs 24.5.1) I'm seeing the initial window sizes
being much too wide. The scaling from columns from font-size seems to be
broken, because when I resize the window emacs claims the window is "80x24"
but in reality it is much wider (I'm guessing twice as wide).
--scott
--
( http://cscott.net/ )
[-- Attachment #2: Type: text/html, Size: 597 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Another HiDPI issue
2016-05-11 15:02 ` bug#20619: Another HiDPI issue C. Scott Ananian
@ 2016-05-16 8:20 ` martin rudalics
2016-05-16 18:31 ` C. Scott Ananian
0 siblings, 1 reply; 15+ messages in thread
From: martin rudalics @ 2016-05-16 8:20 UTC (permalink / raw)
To: C. Scott Ananian, 20619
> In addition to the pop-up menus being misplaced, on my machine
> (debian/testing, HiDPI=2, emacs 24.5.1) I'm seeing the initial window sizes
> being much too wide. The scaling from columns from font-size seems to be
> broken, because when I resize the window emacs claims the window is "80x24"
> but in reality it is much wider (I'm guessing twice as wide).
Did you ever try the patch submitted to this thread?
martin
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Another HiDPI issue
2016-05-16 8:20 ` martin rudalics
@ 2016-05-16 18:31 ` C. Scott Ananian
2016-05-18 7:00 ` martin rudalics
0 siblings, 1 reply; 15+ messages in thread
From: C. Scott Ananian @ 2016-05-16 18:31 UTC (permalink / raw)
To: martin rudalics; +Cc: 20619
[-- Attachment #1: Type: text/plain, Size: 349 bytes --]
I read the patch and did not see anywhere where it affected the main window
size. The changes appear to be isolated to the position of popups; in
particular the only functions modified are `xg_show_tooltip` and
`create_and_show_popup_menu`. I am happy to try a patch if it will address
the main window size issues I am seeing.
--scott
[-- Attachment #2: Type: text/html, Size: 375 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Another HiDPI issue
2016-05-16 18:31 ` C. Scott Ananian
@ 2016-05-18 7:00 ` martin rudalics
2016-05-18 12:20 ` C. Scott Ananian
0 siblings, 1 reply; 15+ messages in thread
From: martin rudalics @ 2016-05-18 7:00 UTC (permalink / raw)
To: C. Scott Ananian; +Cc: 20619
> I read the patch and did not see anywhere where it affected the main window
> size. The changes appear to be isolated to the position of popups; in
> particular the only functions modified are `xg_show_tooltip` and
> `create_and_show_popup_menu`. I am happy to try a patch if it will address
> the main window size issues I am seeing.
Ryan Prior has written a patch for the original problem posted in this
thread. Unfortunately, Michael Droettboom (the poster of the problem)
never responded and neither did other persons who reported similar
problems. In December, for example, David Christiansen promised to test
Ryan's patch as soon as he would get home from honeymoon. Apparently he
never did ...
Since you are able to reproduce the problem, it would have been a nice
gesture if you applied the patch and tested whether it resolves the
original problem. Maybe this way you could have provided sufficient
motivation for Ryan to investigate the problem you see too. As it
stands, it's virtually impossible to convince HiDPI users to test Ryan's
patch and we very likely lost another contributor.
martin
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Improving HiDPI experience with emacs
2015-05-20 18:20 bug#20619: 24.5; Pop-up menus clipped on HiDPI (Gtk3/X11) Michael Droettboom
2015-05-23 12:06 ` Jan Djärv
2016-05-11 15:02 ` bug#20619: Another HiDPI issue C. Scott Ananian
@ 2016-12-22 15:33 ` Eugen Dedu
2016-12-23 20:30 ` bug#20619: Scrollbars Eugen Dedu
3 siblings, 0 replies; 15+ messages in thread
From: Eugen Dedu @ 2016-12-22 15:33 UTC (permalink / raw)
To: 20619
Hi,
I have just enabled hidpi on my screen and noticed that emacs has
several issues I would really like to see them fixed, since I use it
extensively. (For those interested, I also wrote yesterday a page about
my experiences at http://eugen.dedu.free.fr/docs/hidpi.html.)
I do not use GNOME, but awesome. I just set GDK_SCALE=2 to have
hidpi-aware applications, and this works on several applications.
Everyone can test with "GDK_SCALE=X emacs", with X=1 (for normal screen,
default value) and X=2 for hidpi.
Is there any emacs developer wanting to fix this behaviour? I can test
patches if needed (hope it is not harder than other applications).
I use emacs 25.1.1 on debian.
Best regards,
--
Eugen
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Scrollbars
2015-05-20 18:20 bug#20619: 24.5; Pop-up menus clipped on HiDPI (Gtk3/X11) Michael Droettboom
` (2 preceding siblings ...)
2016-12-22 15:33 ` bug#20619: Improving HiDPI experience with emacs Eugen Dedu
@ 2016-12-23 20:30 ` Eugen Dedu
2016-12-24 7:56 ` Eli Zaretskii
3 siblings, 1 reply; 15+ messages in thread
From: Eugen Dedu @ 2016-12-23 20:30 UTC (permalink / raw)
To: 20619
So I have successfully compiled emacs 25.1.1 to make tests.
I applied the patch given in message #13, but it works partially, I will
discuss about it later.
Now, to advance emacs support for HIDPI I would like to fix the
scrollbar. Do all people here agree that the scrollbar has a width
twice as normal? The reason is that in src/gtkutil.c there is this code:
int
xg_get_default_scrollbar_width (void)
{
return scroll_bar_width_for_theme * xg_get_gdk_scale ();
}
where xg_get_gdk_scale returns GDK_SCALE variable, i.e. 2 in general.
If I replace with:
return scroll_bar_width_for_theme;
the scrollbar is shown correctly.
This change was made by
https://github.com/emacs-mirror/emacs/commit/c0055ff5b03c9121ab5bf752496b09416f0f0a7d.
I think there was an error there, or perhaps in the mean time (since
May 2015) GTK has changed in a way so that scrollbars are taken into
account.
Anyway, using "GTK_SCALE=2 emacs" shows correctly the scrollbar with my
proposition.
Note that GDK_DPI_SCALE is only for font, AFAIU from
https://developer.gnome.org/gtk3/stable/gtk-x11.html.
What do you think? Would you commit such a modification?
I would like to look into other issues as well.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Scrollbars
2016-12-23 20:30 ` bug#20619: Scrollbars Eugen Dedu
@ 2016-12-24 7:56 ` Eli Zaretskii
2016-12-27 22:45 ` Eugen Dedu
0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2016-12-24 7:56 UTC (permalink / raw)
To: Eugen Dedu; +Cc: 20619
> From: Eugen Dedu <eugen.dedu@univ-fcomte.fr>
> Date: Fri, 23 Dec 2016 21:30:17 +0100
>
> Now, to advance emacs support for HIDPI I would like to fix the
> scrollbar. Do all people here agree that the scrollbar has a width
> twice as normal? The reason is that in src/gtkutil.c there is this code:
>
> int
> xg_get_default_scrollbar_width (void)
> {
> return scroll_bar_width_for_theme * xg_get_gdk_scale ();
> }
>
> where xg_get_gdk_scale returns GDK_SCALE variable, i.e. 2 in general.
>
> If I replace with:
> return scroll_bar_width_for_theme;
> the scrollbar is shown correctly.
>
> This change was made by
> https://github.com/emacs-mirror/emacs/commit/c0055ff5b03c9121ab5bf752496b09416f0f0a7d.
> I think there was an error there, or perhaps in the mean time (since
> May 2015) GTK has changed in a way so that scrollbars are taken into
> account.
What is your version of GTK? That commit points to a bug report
(bug#20432), so this change is not a mistake, it did fix a real
problem with scroll bars. We could make it conditional on the GTK
version, though. The bug report mentions a specific GTK version.
> Note that GDK_DPI_SCALE is only for font, AFAIU from
> https://developer.gnome.org/gtk3/stable/gtk-x11.html.
The code you mention doesn't use GDK_DPI_SCALE.
> What do you think? Would you commit such a modification?
I don't think we can simply revert the change in question, but maybe
we could use different code based on GTK version.
> I would like to look into other issues as well.
Thank you! I see bugs 20432, 21469, and 18429 that might be relevant.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Scrollbars
2016-12-24 7:56 ` Eli Zaretskii
@ 2016-12-27 22:45 ` Eugen Dedu
2016-12-28 15:41 ` Eli Zaretskii
0 siblings, 1 reply; 15+ messages in thread
From: Eugen Dedu @ 2016-12-27 22:45 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 20619
On 24/12/16 08:56, Eli Zaretskii wrote:
>> From: Eugen Dedu <eugen.dedu@univ-fcomte.fr>
>> Date: Fri, 23 Dec 2016 21:30:17 +0100
>>
>> Now, to advance emacs support for HIDPI I would like to fix the
>> scrollbar. Do all people here agree that the scrollbar has a width
>> twice as normal? The reason is that in src/gtkutil.c there is this code:
>>
>> int
>> xg_get_default_scrollbar_width (void)
>> {
>> return scroll_bar_width_for_theme * xg_get_gdk_scale ();
>> }
>>
>> where xg_get_gdk_scale returns GDK_SCALE variable, i.e. 2 in general.
>>
>> If I replace with:
>> return scroll_bar_width_for_theme;
>> the scrollbar is shown correctly.
>>
>> This change was made by
>> https://github.com/emacs-mirror/emacs/commit/c0055ff5b03c9121ab5bf752496b09416f0f0a7d.
>> I think there was an error there, or perhaps in the mean time (since
>> May 2015) GTK has changed in a way so that scrollbars are taken into
>> account.
>
> What is your version of GTK? That commit points to a bug report
> (bug#20432), so this change is not a mistake, it did fix a real
> problem with scroll bars. We could make it conditional on the GTK
> version, though. The bug report mentions a specific GTK version.
I use gtk 3.22.5.
To reproduce the exact environment when that commit was made, I pulled
the repository at the commit right before that change and compiled it.
I had one compile error that I fixed with an #undef, and another one:
make[1]: *** [bootstrap-emacs] Segmentation fault
which I have not tried to fix.
>> Note that GDK_DPI_SCALE is only for font, AFAIU from
>> https://developer.gnome.org/gtk3/stable/gtk-x11.html.
>
> The code you mention doesn't use GDK_DPI_SCALE.
Indeed. I wrote this because in the bug 20432 which the commit fixed it
was mentioned GDK_DPI_SCALE too.
>> What do you think? Would you commit such a modification?
>
> I don't think we can simply revert the change in question, but maybe
> we could use different code based on GTK version.
If I make an #ifdef with gtk 3.22, is that fine to do the commit?
Everyone can test with a gtk-enabled emacs simply using "GDK_SCALE=2 emacs".
>> I would like to look into other issues as well.
>
> Thank you! I see bugs 20432, 21469, and 18429 that might be relevant.
I have looked at them, but I think the right thing to do is just to fix
using conditionals, things have changed in the last 1-1.5 years (when
those bugs were written) it seems.
--
Eugen
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Scrollbars
2016-12-27 22:45 ` Eugen Dedu
@ 2016-12-28 15:41 ` Eli Zaretskii
2016-12-28 16:35 ` Eugen Dedu
0 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2016-12-28 15:41 UTC (permalink / raw)
To: Eugen Dedu; +Cc: 20619
> Cc: 20619@debbugs.gnu.org
> From: Eugen Dedu <eugen.dedu@univ-fcomte.fr>
> Date: Tue, 27 Dec 2016 23:45:24 +0100
>
> > What is your version of GTK? That commit points to a bug report
> > (bug#20432), so this change is not a mistake, it did fix a real
> > problem with scroll bars. We could make it conditional on the GTK
> > version, though. The bug report mentions a specific GTK version.
>
> I use gtk 3.22.5.
> [...]
> >> What do you think? Would you commit such a modification?
> >
> > I don't think we can simply revert the change in question, but maybe
> > we could use different code based on GTK version.
>
> If I make an #ifdef with gtk 3.22, is that fine to do the commit?
Only as the last resort, IMO. I'd be much happier if someone could
explain how come this is/was a problem for GTK+ v3.16.2, but not for
v3.22.5. Is it possible to ask someone on some GTK+ forum? Or maybe
someone who reads this can explain that?
> Everyone can test with a gtk-enabled emacs simply using "GDK_SCALE=2 emacs".
I can't, sadly.
Thanks.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#20619: Scrollbars
2016-12-28 15:41 ` Eli Zaretskii
@ 2016-12-28 16:35 ` Eugen Dedu
0 siblings, 0 replies; 15+ messages in thread
From: Eugen Dedu @ 2016-12-28 16:35 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 20619
On 28/12/16 16:41, Eli Zaretskii wrote:
>> Cc: 20619@debbugs.gnu.org
>> From: Eugen Dedu <eugen.dedu@univ-fcomte.fr>
>> Date: Tue, 27 Dec 2016 23:45:24 +0100
>>
>>> What is your version of GTK? That commit points to a bug report
>>> (bug#20432), so this change is not a mistake, it did fix a real
>>> problem with scroll bars. We could make it conditional on the GTK
>>> version, though. The bug report mentions a specific GTK version.
>>
>> I use gtk 3.22.5.
>> [...]
>>>> What do you think? Would you commit such a modification?
>>>
>>> I don't think we can simply revert the change in question, but maybe
>>> we could use different code based on GTK version.
>>
>> If I make an #ifdef with gtk 3.22, is that fine to do the commit?
>
> Only as the last resort, IMO. I'd be much happier if someone could
> explain how come this is/was a problem for GTK+ v3.16.2, but not for
> v3.22.5. Is it possible to ask someone on some GTK+ forum? Or maybe
> someone who reads this can explain that?
Just for information, I looked also in the NEWS file of GTK and have not
seen anything about the scrolllbars between 3.16.2 and 3.22.5.
--
Eugen
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2016-12-28 16:35 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-20 18:20 bug#20619: 24.5; Pop-up menus clipped on HiDPI (Gtk3/X11) Michael Droettboom
2015-05-23 12:06 ` Jan Djärv
2016-05-11 15:02 ` bug#20619: Another HiDPI issue C. Scott Ananian
2016-05-16 8:20 ` martin rudalics
2016-05-16 18:31 ` C. Scott Ananian
2016-05-18 7:00 ` martin rudalics
2016-05-18 12:20 ` C. Scott Ananian
[not found] ` <CAHD_y+aqKdHYBucR3VkwduiVWDex4oCmX6EeYYkoKC+Fb=RoSA@mail.gmail.com>
[not found] ` <CAHD_y+Z1D37uNOcnrn2SaxSO9bksEOV_Ni0QhZ2fE1nLvMRD+g@mail.gmail.com>
2016-05-18 12:24 ` C. Scott Ananian
2016-05-19 12:55 ` martin rudalics
2016-12-22 15:33 ` bug#20619: Improving HiDPI experience with emacs Eugen Dedu
2016-12-23 20:30 ` bug#20619: Scrollbars Eugen Dedu
2016-12-24 7:56 ` Eli Zaretskii
2016-12-27 22:45 ` Eugen Dedu
2016-12-28 15:41 ` Eli Zaretskii
2016-12-28 16:35 ` Eugen Dedu
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).