2013-01-24 00:17:33 |
ainq |
description |
Here is an image gallery detailing the issue:
http://imgur.com/a/xbzB5
This is how I see it:
When animating window resizes, gala stretches the size of the initial window to the size of the resized window, and then flashes in the image of the resized window.
The problem with this approach:
For every edge that differs in whether or not a shadow is rendered for the initial and transitioned state, the margins do not "line up", because Gala counts the window shadows as part of the size of the initial and transitioned windows.
Possible solutions:
1. Hardcode the size and margins of the shadow for each resize transition (e.g. maximize, restore, snap left, snap right, etc...)
2. Crop the window image so that only the window, and not the shadows is animated, and render the shadows as the image is transformed, so the margins always line up between the last frame of the animation and the final state.
3. This isn't really a fix, but it would reduce the eyestrain involved in resizing windows: fade the transition from displaying the initial window state to the final window state.
IMHO, the best solution (that doesn't involve live resizing) would be a combination of 2 and 3, as that would fix the margins not aligning during the animation, and the eyestrain that results from the flashing. |
Here is an image gallery detailing the issue:
http://imgur.com/a/xbzB5
To reproduce:
Click the button in the top right corner of any window, and/or drag the window to the left or right screen edge, and let go.
This is how I see it:
When animating window resizes, gala stretches the size of the initial window to the size of the resized window, and then flashes in the image of the resized window.
The problem with this approach:
For every edge that differs in whether or not a shadow is rendered for the initial and transitioned state, the margins do not "line up", because Gala counts the window shadows as part of the size of the initial and transitioned windows.
Possible solutions:
1. Hardcode the size and margins of the shadow for each resize transition (e.g. maximize, restore, snap left, snap right, etc...)
2. Crop the window image so that only the window, and not the shadows is animated, and render the shadows as the image is transformed, so the margins always line up between the last frame of the animation and the final state.
3. This isn't really a fix, but it would reduce the eyestrain involved in resizing windows: fade the transition from displaying the initial window state to the final window state.
IMHO, the best solution (that doesn't involve live resizing) would be a combination of 2 and 3, as that would fix the margins not aligning during the animation, and the eyestrain that results from the flashing. |
|