GNU bug report logs - #22549
25.0.50; Tooltips placed outside of screen limits

Previous Next

Package: emacs;

Reported by: ofv <at> wanadoo.es (Óscar Fuentes)

Date: Thu, 4 Feb 2016 04:06:02 UTC

Severity: normal

Found in version 25.0.50

Done: Óscar Fuentes <ofv <at> wanadoo.es>

Bug is archived. No further changes may be made.

Full log


Message #35 received at 22549 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Óscar Fuentes <ofv <at> wanadoo.es>
Cc: 22549 <at> debbugs.gnu.org
Subject: Re: bug#22549: 25.0.50; Tooltips placed outside of screen limits
Date: Sat, 06 Feb 2016 10:30:43 +0100
> We can use the coordinates to determine the monitor. The patch below
> works.

Good idea.  But do that only if ‘x-display-monitor-attributes-list’
returns more than one monitor so we do not needlessly loop in (and
possibly compromise) the one monitor case.  Or (tediously) assign

+              min_x = XINT (Fnth (make_number (1), geometry));
+              min_y = XINT (Fnth (make_number (2), geometry));
+              max_x = min_x + XINT (Fnth (make_number (3), geometry));
+              max_y = min_y + XINT (Fnth (make_number (4), geometry));

only if the subsequent test

+              if (min_x <= *root_x && *root_x < max_x
+                  && min_y <= *root_y && *root_y < max_y)

would succeed.

There's no guarantee that ‘x-display-monitor-attributes-list’ works on
all systems, especially on those where neither Xinerama nor XRandr are
installed.  IIRC older versions of the latter might also have problems
when a monitor is added/removed during a session.  The fallback should
always give the same results as the present code, but who knows ...

And just to make sure: Can we rely on the fact that XQueryPointer always
gives reliable results with multiple monitors and its present arguments?

martin





This bug report was last modified 9 years and 112 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.