]
Eric Williams resolved ERT-733.
-------------------------------
Resolution: Done
[GTK] Display.getBounds() returns wrong values for most multi monitor
setups [EBZ#547375]
-----------------------------------------------------------------------------------------
Key: ERT-733
URL:
https://issues.jboss.org/browse/ERT-733
Project: Eclipse Release Train
Issue Type: Task
Components: Platform
Reporter: Friendly Jira Robot
Assignee: Eric Williams
Priority: Major
Labels: 4.13, SWT, bzira
Display.getBounds() should return a bounding box over all monitors. It should take into
account each monitor's x and y values as well as their width and height.
The current implementation iterates over all available monitors, takes the width and
height of the first one it can find and then simply adds the x and y values of all the
other monitors on top. Therefore this algorithm only properly works when there are at most
two monitors next to each other with the same screen resolution and they are iterated in
order.
For example I have two monitors (2560x1440 and 1920x1080) horizontally aligned next to
each other, with the smaller screen aligning at the bottom. I would have expected
getBounds to return (0,0,2560+1920=4480,1440). Instead (0,0,5120,1800) is returned. If I
align them at the top (0,0,5120,1440) is returned. If it had iterated them in the other
possible order a different, also wrong result would have been returned.
The calculation of a proper bounding box should cover all possible use cases, including
having more than two monitors, having different screen resolutions and having different
setups like being aligned in multiple rows.