When using a 1920x1200 (left) and a 1280x1024 (right) monitor for example either the bottom right corner or the top right corner (for Screen bindings) will not be correctly identified by Compiz depending on the Ubuntu Displays settings (see attached screenies).
A maximum of 3 corners will be available, while one edge on the monitor with smaller resolution will not be available to trigger shortcuts.
[Test Case]
1. Ensure you have a 2 monitor setup, with one having a smaller resolution than the other
2. Open CCSM->General Options->Key bindings tab
3. Click the "Show Desktop" Monitor Mouse Binding button (set to none by default)
4. Test all combinations (8) by activating them (best all at once)
5. Now move the mouse to test all edges/corners of your setup and trigger "Show Desktop" (if it worked move the mouse to the spot again to restore your windows)
6. Test all edges and corners of your multimonitor setup one by one
Expected result:
You should be able to set all corners (4) and edges (4) and to successfully trigger those.
2 corners and 3 edges should be working per monitor (no matter if horizontal or vertical config).
Actual result:
Your monitor with the smaller resolution will just have 1 corner working and just 2 edges will work there.
Note: This test is describing a common dual monitor setup (laptop && external monitor with other resolution for example).
Probably the virtual screen size (which is 3200x1200 in this case) is used to calculate the edges and corners.
It seems the code to calculate them is in src/screen.cpp, line 2299+: PrivateScreen::updateScreenEdges ()
I tried working on this in the past and I remember that it was quite tricky to get right. There's a bunch of difficulty that comes from handling such exotic configurations, namely what happens when you have a situation where there is more than one edge for another perpendicular axis, for example
-----| |----
| | | |
| ----- |
| |
| |----| |
|---- -----
There are two possible versions of each screen corner - which one should be the corner for the purposes of the corner actions?
Its probably fixable, its just going to take such a huge amount of time that I don't think I'll be the one doing it.