This week in KWin (2012, week 33)

This week we have seen many bugfixes for the next 4.9 release and more are in the pipeline. Overall nothing special happened, the distribution I wrote about last week fixed the downstream issue so we are no longer flooded by duplicate crash reports. Since the 4.9.0 release 39 bugs have been created against KWin and we already fixed ten of those. Most of the other bugs are of course duplicates and other incorrect states.

Next to bug fixing also some new features entered master aka 4.10. A patch to use mouse wheel in Cover and Flip Switch effect which had been blocked for some time by the feature freeze got merged and for the users of multi-screens we have a new nice feature: the window decoration context menu (alternative shortcut Alt+F3) gained a “Move To Screen” sub menu. When I worked on that code fragment I realized it needed to be refactored – that will most likely end up in the next report.

Summary

Crash Fixes

  • 304620: KWin crashes when alt-tabbing after plasma crash
    This change will be available in version 4.9.1
    Git Commit

Bug Fixes

  • 304791: Aurorae ignores ‘Window title’ font setting
    This change will be available in version 4.9.1
    Git Commit
  • 304822: TitleHeight should never be smaller than ButtonHeight
    This change will be available in version 4.9.1
    Git Commit
  • 304404: Track mouse effect does not explicitly set the opacity
    This change will be available in version 4.9.1
    Git Commit
  • 304847: Big Icons TabBox does not elide caption
    This change will be available in version 4.9.1
    Git Commit
  • 305338: Effect Information not included in Support Information
    This change will be available in version 4.9.1
    Git Commit

New Features

  • 269207: Add screen management actions to window context menus
    This change will be available in version 4.10
    Git Commit
  • 244439: JJ: Need Mouse navigation in flip switch mode
    This change will be available in version 4.10
    Git Commit

Tasks

    This week in KWin (2012, week 31 and 32)

    This week I present a summary for two weeks as I had unfortunatelly no possibility to write the summary last week. Of course the main event in this two weeks has been the release of 4.9.0 and as always this triggered quite a flow of new bug reports. Since the release on August 1st 38 bugs have been reported against KWin and an additional nine KWin related duplicate crash reports ended in systemsettings. What is really sad is that we have a duplicate rate of 47 % since the release. Many of the often reported bugs are easy to find and easy to trigger regressions compared to 4.8. This makes me really sad, not because we released with regression, but because such issues could have been spotted and fixed during the beta testing phase. My wish for 4.10 is that more users test the beta releases and report issues.

    The most often reported bug since the release is unfortunately a crash in the window decorations configuration module. This is a very nasty bug and interestingly the reason for this crash is in my opinion just lack of communication. In 4.9 we changed the API of KDecorationUnstable, as the name says that is an Unstable API. We ensured that an incompatible decoration would not be loaded and does neither crash KWin nor the decoration module. Unfortunately we did not inform the distributions about the change. One distribution recognized that there is an ABI incompatible change and seems to have done what they use to do in such cases: change the ABI version of the package. The result was that also for the stable decorations the ABI changed. We were not prepared for such a case and did not expect incompatibilities in the stable API. The result is that the configuration module crashes in case a user has a 3rd party decoration installed which has not been compiled again with the new ABI. Overall the problem could have been easily prevented before by better communication. We should have informed the distributions and the distribution should have contacted us to clarify what to do.

    Summary

    Crash Fixes

    • 304340: segfault on exiting cube effect
      This change will be available in version 4.9.1
      Git Commit
    • 304870: kwin crash when maximizing window when using Aurorae and BorderlessMaximizedWindows
      This change will be available in version 4.9.1
      Git Commit

    Bug Fixes

    • 304248: Wheel operations on title bar not functional
      This change will be available in version 4.9.1
      Git Commit
    • 302783: In kde 4.9 rc1 some opengl fullscreen games dont work correctly, by not going fullscreen
      This change will be available in version 4.9.1
      Git Commit
    • 304253: The «bounce» cursor effect when starting a program is not bouncing anymore
      This change will be available in version 4.9.1
      Git Commit
    • 304520: flip switch incorrectly aligns window height on multiple monitors
      This change will be available in version 4.9.1
      Git Commit
    • 304564: blur effect does not work when the dashboard is first invoked
      This change will be available in version 4.9.1
      Git Commit
    • 304249: Long delay when moving window through title bar
      This change will be available in version 4.9.1
      Git Commit
    • 304799: kwindecoration kcm is broken when using a touchpad
      This change will be available in version 4.9.1
      Git Commit

    New Features

      Tasks

        This Week in KWin (2012, week 30)

        The major event of this week was of course the tagging of 4.9.0. We have two important fixes which made it into 4.9 and apart from that not much happened. My current work on Aurorae is not yet finished and has not been pushed yet. The work on it also discovered two small regressions in Aurorae 3 and I’m quite unhappy that we will ship 4.9 now with two known regressions. But they will of course be fixed for 4.9.1.

        I want to use this rather quiet week to remember everybody about the importance of reporting issues early. We got today a bug report where the user mentions that he noticed this issue already with 4.7 and 4.8. Well by know it was already fixed in 4.9 and the user is unhappy that he does not benefit from the fix as he uses Debian Testing (which won’t go to 4.9 any time soon). If an issue gets reported when it got introduced more users will benefit from the fix and it’s much easier to fix the bug as it is more likely that we remember what we worked on.

        Please report bugs only in English language. This week 2 of the 18 reported bugs were not in English. This makes it much more difficult to handle the bugs as there is a language barrier. For me even a bug report in German is completely useless. I use my software only in English and have problems with back translating the German translation to English.

        Summary

        Crash Fixes

        • 304026: KCM crashes on updating a deco’s settings because the lib is conditionally unloaded in new ::canLoad()
          This change will be available in version 4.9.0
          Git Commit

        Bug Fixes

        • 303937: Quick tiling (snap) uses wrong geometry on alternate attempts.
          This change will be available in version 4.9.0
          Git Commit

        New Features

          Tasks

            This week in KWin (2012, week 29)

            This week has not seen much development given that we are very close to the 4.9 final tagging. I pushed a little bit of refactoring into master (coming with unit tests), but apart from that we only had bug and crash fixes for 4.9.0 and even one regression in current master (4.10) got spotted and fixed. Thanks to Michael Pyne for bisecting and identifying the commit shortly after the commit had been pushed.

            I’m personally very unhappy to see bug reports being opened for new issues in 4.9 even after RC 2 as it means that the previous beta versions have not been tested properly. None of the reported issues is a regression compared to the previous beta and rc releases, so they should have been spotted before. At this I also want to remind to report “obvious” bugs which you think someone had to have noticed. E.g. the fade effect incorrectly faded in a minimized window which got closed resulting in a flash with the window visible again. It’s a very obvious bug but might not be spotted by developers (e.g. I never close minimized windows). Interestingly this bug had been present since a long time but had been shadowed by another bug which got fixed in 4.9.

            There has been one for me very interesting crash report which I cannot reproduce, but looking at the code the crash had been obvious and took me something like two minutes to fix. But as I don’t like pushing changes I cannot verify I wrote the first unit test which highlights an issue and verifies that the problem is fixed. In this case it was possible to write a test as the affected code is in the window switching framework which is seprated from KWin core and allows to mock the required objects. Nevertheless I had to introduce around 500 lines of mocking code to write a five lines test for a three lines change. Nevertheless it’s worth the effort as the next spotted bug in this area can be easily verified by a test.

            What I’m very happy concerning the bug reports is that none of the bugs reported this week are still open. All reports have changed the state to either resolved or needsinfo. For a relaese candidate phase that’s pretty good, but still we are looking for people wanting to help with triaging the bugs.

            Summary

            Crash Fixes

            • 303247: Crash after installed a new decoration
              This change will be available in version 4.9.0
              Git Commit
            • 303713: kwin crash when adding applets into the main amarok window
              This change will be available in version 4.9.0
              Git Commit
            • 303840: Kwin crash to do with hidden, empty or otherwise odd window titles
              This change will be available in version 4.9.0
              Git Commit

            Bug Fixes

            • 303397: KDE desktop effects are laggy when i uncheck Vsync option in system settings
              This change will be available in version 4.9.0
              Git Commit
            • 303579: Rapid flickering in locked screen — makes it difficult to unlock
              This change will be available in version 4.10
              Git Commit
            • 303891: Fade effect is being executed for minimized windows
              This change will be available in version 4.9.0
              Git Commit
            • 303630: kde-workspace fails to compile, see kde-core-devel post in URL
              This change will be available in version 4.9.0
              Git Commit

            New Features

              Tasks

              • 303314: Refactor Screen/Window PaintData
                This change will be available in version 4.10
                Git Commit
              • 303093: Don’t use OpenGL matrix stack in OpenGL 2 backend
                This change will be available in version 4.10
                Git Commit

              This week in KWin (2012, week 28)

              I decided to start a new blog category called “This week in KWin”. Based on the bug reports we resolved in a given week I am able to highlight important developments in KWin. This is not meant as a replacement or competition to the Commit Digest – I am very happy with the digest. But it is for overall KDE and does not give us any possibility to add further comments to it or highlight very technical things which might be noteworthy (yes, there is the digest tag for commits).

              The biggest difference to the commit digest is that this report is generated from the bug tracker while Commit Digest is generated from git log. I think the bug tracker is a better source to track the development of a project as quite often you have a commit series for a specific bug or feature.

              Important Changes in week 28

              This week we have seen the tagging and release of the last release candidate for 4.9. As you can see in the summary below we have fixed quite a few issues last minute on Monday. This includes two rather important fixes for the rendering of thumbnails and the logout effect is finally available again. These were changes mostly done on last day of Akademy and while flying home.

              We had received a very interesting crash report for 4.9 (4.8 is not affected) which got fixed (not available yet in RC2). When you use an Aurorae theme and close a glxgears window through the close button, KWin crashes. We had such issues with the old Aurorae implementation and had thought the port to QML had finally solved it. So we added the same and already known workaround from the old implementation to delay the closing by one event cycle.

              Last but not least there is one important change for the 4.10 release. KWin’s window tiling capabilities which were implemented by a Season of KDE project a few years ago had to be removed again as the feature is seeing some bit rot and is completely unmaintained. Thanks to scripting it should be possible to implement window tiling again and provide it in time for 4.10. And work is going on to make that happen. If you want to help, please leave a note 🙂

              This change does not affect the upcoming 4.9 release and does not affect the quick tiling on screenedges functionality.

              Summary

              Crash Fixes

              • 179077: drag-and-drop between windows by cover switch alt-tab causes apps to crash
                This change will be available in version 4.10
                Git Commit
              • 303450: kwin glxgears crash
                This change will be available in version 4.9.0
                Git Commit

              Bug Fixes

              • 296065: Lanczos Filter broken after screen size changes
                This change will be available in version 4.9 RC 2
                Git Commit
              • 297864: ThumbnailItem allows upscaling of Windows
                This change will be available in version 4.9 RC 2
                Git Commit
              • 302164: the efficiency of drawing in kwin 4.9 beta2 is lower than 4.8
              • 303096: Logout effect completely broken
                This change will be available in version 4.9 RC 2
                Git Commit
              • 303200: Incorrect signal connects for activities in WorkspaceWrapper
                This change will be available in version 4.9 RC 2
                Git Commit

              New Features

                Tasks

                • 303090: Remove Tiling Support From KWin
                  This change will be available in version 4.10
                  Git Commit