Subject: Re: bug#22549: 25.0.50; Tooltips placed outside of screen limits

From: Óscar Fuentes <[email-masked]>
Date: Thu, 04 Feb 2016 17:20:47 +0100

martin rudalics <[email-masked]> writes:

>> A tooltip may also be partially hidden because it has no enough
>> horizontal space when the mouse pointer is near the right edge of the
>> screen.
>
> I cannot reproduce this.  In any case the calculations for the x- and
> y-position of the tooltip take into account the size of the tooltip and
> the width and height of the display as can be easily seen from the code
> of compute_tip_xy.  If you see any truncation of a tooltip at a certain
> position, please step with GDB through the respective part of the code
> to find out what happened.
>
>> The MS Windows port places the tooltips taking into account the screen
>> edges.
>
> So does the Lucid port.  Something else must be at work here.

I think I know what is happening.

I have two monitors, side by side, simulating a continuous display. The
monitor on the left side, where Emacs is displayed, has a vertical
resolution of 1050 pixels while the monitor on the right side has a
vertical resolution of 1200 points. Emacs is using the vertical
resolution of the virtual display (the largest of the two monitors, i.e.
1200 points) instead of the resolution of the monitor that hosts the
Emacs frame.

Something similar happens for the horizontal overflow: the dimensions of
the virtual desktop are used instead of the dimensions of the monitor.

I've seen similar issues on the past for other applications, and they
were fixed, eventually. The key here is that, while the two monitors
belong to a single desktop, it can't be considered a continuous surface.
For instance: the window manager never gives to a window a default
position that makes it overlap over the two monitors, unless the window
is so big that doesn't fit on one monitor. Ditto for maximizing: windows
maximize on one monitor, not on the whole virtual desktop (Emacs does
this right, so it already knows how to query the resolution of the
current monitor.)