Skip to content
  1. Oct 15, 2015
    • Marco Trevisan's avatar
      Apply ubuntu-config.patch by default · c7c92e37
      Marco Trevisan authored
      In theory we should have used profiles settings for this, providing a proper unity.ini
      But right now there's no reason for that effort.
      In case someone wants to change settings, profiles will fix this.
      c7c92e37
  2. Oct 09, 2015
    • Marco Trevisan's avatar
      Apply ubuntu-config.patch by default · 16460986
      Marco Trevisan authored
      In theory we should have used profiles settings for this, providing a proper unity.ini
      But right now there's no reason for that effort.
      In case someone wants to change settings, profiles will fix this.
      16460986
  3. Sep 01, 2015
  4. Aug 01, 2015
  5. Oct 30, 2013
  6. Oct 29, 2013
  7. Jul 19, 2013
    • Sami Jaktholm's avatar
      More text fixes. · 20334b3a
      Sami Jaktholm authored
      20334b3a
    • Sami Jaktholm's avatar
      Test fixes · b58f5878
      Sami Jaktholm authored
      b58f5878
    • Sami Jaktholm's avatar
      Decor: Use maximized border extents only if window is fully maximized. · 542d4e4b
      Sami Jaktholm authored
      The decorator draws a normal border around semi-maximized windows. When
      maximized border extents were used for semi-maximized windows, compiz didn't
      reserve any space for the border in its geometry calculations.
      
      At least following problems are a result of this behavior:
      - Semi-maximized windows have 1px borders drawn on adjacent workspaces
        (LP: #986051).
      - Grid placed window overlaps the adjacent viewport (LP: #898870).
      542d4e4b
  8. Jul 15, 2013
    • Sam Spilsbury's avatar
      Link in missing library · c1f5f2d8
      Sam Spilsbury authored
      c1f5f2d8
    • Sam Spilsbury's avatar
      Ensure that the frame region is always set as soon as the window is decorated. · 038150b4
      Sam Spilsbury authored
      Further ensure that the window decoration isn't needlessly reset if the
      window already had one.
      
      Refactored XShape usage into a common function.
      
      Added tests to verify the behaviour of shape set on initially creating
      a decorated window and also upon changing the input frame window shape
      
      (LP: #1158267)
      038150b4
    • Sam Spilsbury's avatar
      Demonstrate LP: #1158267 · 9f366133
      Sam Spilsbury authored
      DecorPixmapShapeSetAcceptance.FrameWindowShapeIsUpdated fails because
      we never query the window shape when it isn't set by the decorator on
      first run
      
      DecorPixmapShapeSetAcceptance.FrameWindowShapeIsUpdated fails because
      we never actually catch the ShapeNotify from the decoration.
      9f366133
    • Sam Spilsbury's avatar
      Adjust acceptance tests for the fix to LP: #1198000 · 7251fd15
      Sam Spilsbury authored
      1. Always set frame extents before updating the frame
      2. Added COMPIZ_NO_CONFIGURE_BUFFER_LOCKS so that we don't have to deal
         with the delayed configure requests logic in the tests where it
         does not help
      3. Split restoredDecorationSize in to restoredDecorationBorderSize
         and restoredDecorationInputSize so that we can measure the size of
         the decoration both in terms of its visible and invisible border
      4. Wait for the default decoration properly
      5. Capture the initial geometry of the window with and without decorations
         when the window gets its first decoration. Use these values to calculate
         the size changes in the window from then on instead of its creation
         values
      6. Just flag when the window was first decorated in setWindowFrameExtents
         rather than checking if it is mapped. We only want to not resize
         the window once.
      7251fd15
  9. Jun 28, 2013
    • Sam Spilsbury's avatar
      Fix typo · 821f3189
      Sam Spilsbury authored
      821f3189
    • Sam Spilsbury's avatar
    • Sam Spilsbury's avatar
      Constify · 74eae1de
      Sam Spilsbury authored
      74eae1de
    • Sam Spilsbury's avatar
    • Sam Spilsbury's avatar
      Fix failing tests and run all the tests by default. · 0d0b503d
      Sam Spilsbury authored
      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.
      0d0b503d
  10. Jun 26, 2013
  11. Jun 22, 2013
    • Sam Spilsbury's avatar
      Refactoring: · ba5feef6
      Sam Spilsbury authored
       1. Stop repeating ConfigureNotifyXEventMatcher and co everywhere, just
          have a WaitForConfigureOn wrapper function to simplify that from
          14 lines per use to 5 lines per use.
       2. Added ReconfigureDecoration as a means to change a pixmap decoration's
          border and input at the same time whilst also waiting for the frame
          window to be adjusted.
       3. Saved the result of XInternAtom where it made sense.
      ba5feef6
    • Sam Spilsbury's avatar
      Add more acceptance tests for the decor plugin. · 81b636c5
      Sam Spilsbury authored
      PixmapDecoratedWindowAcceptance.
        UndecoratedWindowExpandToOrigSize
      
          Test that upon undecoration, the window has exactly the same geometry
          as it did before decoration.
      
        DISABLED_UndecorateStaticGravityWindow
      
          Tests that for windows with a static gravity, the window has exactly
          the same geometry as it did before decoration.
      
          Disabled, as core is currently not moving the window with the static
          gravity back to where it started.
      
      AdjustmentExtents/PixmapDecorationAdjustment.
        AdjustRestoredWindowBorderMovesClient/P
      
          Test that changing the border extents causes the client window's
          absolute geometry to change.
      
        DISABLED_AdjustRestoredWindowBorderShrinkClient/P
      
          Tests that changing the border extents causes the client window's
          absolute geometry to shrink by the amount of border.
      
          Disabled, as the current behavior is to expand the frame window
          as opposed to shrinking the client (but this will be changed).
      
        DISABLED_ClientExpandsAsBorderShrinks/P
      
          Tests that as the border shrinks away, the client expands back to
          its original size.
      
          Disabled, as the current behavior is to expand the frame window 
          as opposed to shrinking the client (but this will be changed).
      
        DISABLED_ClientExpandsAsBorderShrinksWhilstMaximized/P
      
          Tests that even if the client is maximized, if the restored border
          shrinks away it demaximizes back to the same position while also
          accounting for any change in the restored window border size.
      
          Disabled, as the current behavior is to expand the frame window 
          as opposed to shrinking the client (but this will be changed).
      
        DISABLED_ClientExpandsAsBorderShrinksWhilstUndecorated/P
      
          Tests that even when the client is not permitted to be decorated
          because the decoration hint was removed, when it is redecorated
          it will be moved to the correct position taking into account any
          changes in its border size.
      
          Disabled, as the current behavior is to expand the frame window 
          as opposed to shrinking the client (but this will be changed).
      
        DISABLED_AdjustRestoredWindowInputNoMoveClient/P
      
          Tests that adjusting the input extents (as independent from the
          border extents) of the client does not cause the client to move.
      
          Disabled, as this behavior appears to be broken in core.
      
      Move the "GetImmediateParent" function into the compiz::testing namespace
      so that it can be used by other tests.
      81b636c5
  12. Jun 15, 2013
  13. Jun 10, 2013
    • Sam Spilsbury's avatar
      Don't run the tests by default yet as we're not capable of loading · f1dca1eb
      Sam Spilsbury authored
      plugins that haven't yet been installed.
      f1dca1eb
    • Sam Spilsbury's avatar
      Provide a basic decor plugin acceptance test suite. · b33713d1
      Sam Spilsbury authored
      This change provides a simple acceptance test suite for the decor plugin. It
      creates a fake window decorator (cdt::FakeDecorator) and allows users to
      create fake decorations (eg cdt::FakePixmapDecoration) which can be serialized
      as decoration properties and set on windows under xorg-gtest. It also launches
      compiz with the opengl, composite and decor plugins loaded and runs some
      basic tests. Among them:
      
      BaseDecorAcceptance.
        Startup:
      
          Basic canary "can we start compiz with these plugins" test
      
        FakeDecoratorSessionOwnerNameSetOnSelectionOwner:
      
          Create a fake decorator, ensure that libdecoration sets our
          session name "fake" on the selection owner
      
        FakeDecoratorReceiveClientMessage:
      
          Create fake decorator, ensure that libdecoration posts a client
          message to the root window announcing that the new decorator exists.
      
        DecorationSupportsWindowType:
      
          Create a fake decorator, announce support for the WINDOW type decorations
          and ensure that the correct atom is set on the session owner window.
      
        DecorationSupportsPixmapType:
      
          Create a fake decorator, announce support for the PIXMAP type decorations
          and ensure that the correct atom is set on the session owner window.
      
      DecorFakeDecoratorAcceptance.
        WindowDefaultFallbackNoExtents:
      
          By default, newly created windows should recieve a fallback decoration
          but they should not have any frame extents.
      
      DecorWithPixmapDefaultsAcceptance.
      
        These tests create a default pixmap decoration to use in the hypothetical
        situation that the window decorator hasn't yet generated a decoration
        for this window.
      
        FallbackRecieveInputFrameNotify:
      
          Verify that we get a _COMPIZ_WINDOW_DECOR_INPUT_FRAME property set on
          the client when it is created and mapped (eg, an input frame window
          was annonuced to be created)
      
        FallbackHasInputFrameInParent:
      
          Verify that a second window exists in the frame window after this
          message was recieved.
      
        FallbackNormalWindowExtentOnDecoration:
      
          Verify that _NET_FRAME_EXTENTS is set to the default window extents
          for the default decoration when the window was mapped.
      
        FallbackNormalWindowInputOnFrame:
      
          Verify that the input window matches the extents set.
      
      PixmapDecoratedWindowAcceptance.
      
        These tests create a new window and an associated unique decoration for
        that window.
      
        MaximizeBorderExtentsOnMaximize:
      
          Maximize the window and ensure that the correct border extents are used.
      
        MaximizeBorderExtentsOnVertMaximize:
      
          Vertically maximize the window and ensure that the correct border extents
          are used.
      
        MaximizeBorderExtentsOnHorzMaximize:
      
          Horizontally maximize the window and ensure that the correct border
          extents are used.
      
        MaximizeFrameWindowSizeEqOutputSize:
      
          Maximie the window and ensure that the frame window exactly equals
          the output size.
      
        VertMaximizeFrameWindowSizeEqOutputYHeight:
      
          Maximize the window and ensure that the frame window's Y and Height
          values are consistent with the output size.
      
        HorzMaximizeFrameWindowSizeEqOutputXWidth:
      
          Ditto horizontal maximization.
      
        DISABLED_VertMaximizeFrameWindowSizeSameXWidth:
      
          Maximize the window vertically and ensure that the frame window's
          border-relative X position and width does not change.
      
          This test is disabled, as the behavior in compiz is currently broken,
          (but it means that we can fix it later and enable the test).
      
        DISABLED_HorzMaximizeFrameWindowSizeSameYHeight
      
          Maximize the window horizontally and ensure that the frame window's 
          border-relative Y position and height does not change.
      
          This test is disabled, as the behavior in compiz is currently broken,
          (but it means that we can fix it later and enable the test).
      b33713d1
  14. Jun 07, 2013
  15. Jun 05, 2013
    • Sam Spilsbury's avatar
      Don't cause maximized windows to be double adjusted upon decoration change. · bf054c7a
      Sam Spilsbury authored
      This is effectively a bundle of fixes in one:
      
      1. Don't adjust maximized windows after their decorations change with
         addWindowSizeChanges. That only needs to be done on initial maximization
         and then any other decoration size change can handle itself
      2. Don't cause the saved co-ordinates to be updated upon unmaximization
      3. Don't put the decoration adjustment on a timer. Do it immediately.
         The calling WindowInterface::moveNotify from within itself is no
         longer a problem.
      
      (LP: #1186560)
      bf054c7a
  16. May 20, 2013
  17. May 10, 2013
    • Sam Spilsbury's avatar
      Try to launch tests on another server if there's tests running in parallel. · 5476fbb1
      Sam Spilsbury authored
      Provide our own compiz_xorg_gtest_main and subclass xorg::testing::Environment
      to try and launch tests on another display if there's tests running on
      one already.
      
      This isn't by any means perfect - there are still race conditions
      surrounding XOpenDisplay and parallel test runs but it makes any
      time gap for conditions such as:
       1. Client has a server grab on the display we're checking
          and won't let go.
       2. Two servers get launched on one port and one set of tests
          interfere with the other.
      
      It also means that we're now unable to configure the display port,
      log file and config file on the command line. But we weren't using that
      anyways.
      
      Finally, the logs now point to /tmp/Compiz.Xorg.GTest.displaynum.log
      
      (LP: #1178514)
      5476fbb1
  18. May 09, 2013
  19. Apr 22, 2013
  20. Apr 17, 2013
    • Sam Spilsbury's avatar
      Change the behaviour of undecorating windows. · df3c7122
      Sam Spilsbury authored
        
        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.
        
        The spec is unfortunately not so clear what to do in this case. But KWin does it this way
        and it seems to be the sanest way of doing it.
        
        (LP: #1165343)
      df3c7122
  21. Mar 25, 2013
  22. Mar 22, 2013
  23. Mar 11, 2013
  24. Mar 06, 2013
  25. Feb 26, 2013
  26. Feb 25, 2013
  27. Feb 20, 2013