Merge lp:~smspillaz/compiz-core/compiz-core.maybe_fix_931473 into lp:compiz-core
Status: | Rejected | ||||||||
---|---|---|---|---|---|---|---|---|---|
Rejected by: | Sam Spilsbury | ||||||||
Proposed branch: | lp:~smspillaz/compiz-core/compiz-core.maybe_fix_931473 | ||||||||
Merge into: | lp:compiz-core | ||||||||
Diff against target: |
50 lines (+12/-4) 2 files modified
plugins/composite/src/window.cpp (+9/-3) plugins/opengl/src/paint.cpp (+3/-1) |
||||||||
To merge this branch: | bzr merge lp:~smspillaz/compiz-core/compiz-core.maybe_fix_931473 | ||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alan Griffiths | Approve | ||
Review via email: mp+93324@code.launchpad.net |
Description of the change
Initially we only allowed windows to paint if they had been drawn on at least once, in order to prevent a race condition where the frame would be imperfect before the window draws. However, considering that drawing the decorations is tied in with the concept of drawing the window, if the application failed to draw on its window at all you'd get a big invisible block which blocked all input. So we made it so that the decorations should be drawn but not the window in that case.
There's probably a case where a window can be drawn without being fully damaged, and this tends to happen on override redirect windows like menus. So don't draw their (shadows) until the menu is painted by the application.
Unmerged revisions
- 2999. By Sam Spilsbury
-
Only show the decorations of windows which aren't override redirect.
(LP #931473)
(priv-> window- >isViewable () && cWindow- >damaged () || window- >overrideRedire ct ())))
(priv->
!priv->
==>
bool PrivateWindow: :hasViewableDam age()
(window- >isViewable () &&
(cWindow- >damaged () ||
!window- >overrideRedire ct ())));
{
return
}