~compiz-team/compiz/0.9.10

Viewing all changes in revision 3751.

  • Committer: Tarmac
  • Author(s): Sam Spilsbury, Brandon Schaefer
  • Date: 2013-07-01 14:56:21 UTC
  • mfrom: (3746.1.9 trunk)
  • Revision ID: tarmac-20130701145621-949i9wj8wcys8r1u
Unrevert 3728, fix failing tests.

Change the behaviour of undecorating windows.

Previously when a window was undecorated, we would shift it back to an appropriate position according to its gravity member. That behaviour was problematic because in the StaticGravity case the window has to just stay in the same place. But then if you had a window with StaticGravity which then did get a decoration and later removed it, it would be placed as though it was decorated and appear to be in the wrong place.

The correct behaviour is to place all windows as though they have decorations, and then when decorations are removed, to move the window back to the corner as indicated in its gravity and then expand its size to cover the obscured regions no longer hidden because the decorations went away.

(LP: #1165343).

  1. Completely remove decorOffsetMove and other related code from
     decor.cpp. Put the logic to handle the window->input () - window->border ()
     placement offset inside of setWindowFrameExtents instead. Now the window
     will always be offset from its original non-decorated position to the new
     decorated position, rather than having to guess between decoration sizes.
  2. Make saveGeometry and restoreGeometry work relative to window->border ()
     as opposed to including it in the saved geometry. It is possible that the
     border size might change during maximization, as such, we don't want to
     save the position with the border before maximizing. Instead save the position
     as if it were never decorated so that when the window is restored it can be
     restored to its original position and then adjusted for its new border size.
  3. Fix a few typoes in the tests.
  4. Moved some commonly used matchers into compiz::testing
  5. Make COMPIZ_PLUGIN_DIR accept multiple directories and look in each one
     of them for the plugin
  6. Set COMPIZ_PLUGIN_DIR appropriately for each plugin that we wish to load
     on startup so that we load locally built plugins as opposed to installed
     ones.
  7. Uncomment compiz_discover_tests for the acceptance tests. Now they are
     run by default.

(LP: #1195522). Fixes: https://bugs.launchpad.net/bugs/1195522.

Approved by PS Jenkins bot, MC Return, Brandon Schaefer.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: