This week in KWin (2012, week 49-51)

Due to vacations I was not able to work on any bugs and this also explains the lack of these summaries in the last weeks. Although we are in beta/rc testing phase it’s been not so many new bug reports, but still some work todo. Nevertheless we are already working on 4.11, that is mostly the port to XCB, which is not listed in the summary.

Summary

Crash Fixes

Critical Bug Fixes

    Bug Fixes

    • 310562: Alt+Shift+Tab can’t be used to “Walk Through Windows (Reverse)”
      This change will be available in version 4.10 Beta 2
      Git Commit
    • 310497: Zoom desktop effect only support POT cursor sizes
      Git Commit
    • 312004: Window operations menu affects only the window in focus.
      This change will be available in version 4.10 RC 2
      Git Commit
    • 310623: Form layout of “Moving” configuration doesn’t resize horizontally/doesn’t fill whitespace
      Git Commit
    • 296289: Black boxes shown when using alt-tab switcher with thumbnails
      This change will be available in version 4.9 RC 1
      Git Commit
    • 311712: kwin_gles not working with AMD ATI RS690M
      This change will be available in version 4.10 RC 2
      Git Commit
    • 309958: Application Menu button disappears after placing the application in the systray
      Git Commit

    New Features

      Tasks

        This week in KWin (week 46 to 48)

        Over the last weeks the beta phase for 4.10 has started which means we have more bugs being reported and more bug fixes. Overall given the large amount of changes which might have broken (switch to KConfigXT, refactoring work in the compositor, xcb), it looks rather good.

        Summary

        Crash Fixes

        Critical Bug Fixes

          Bug Fixes

          • 264041: “Switch to Screen” shortcuts are broken when using three or more monitors.
            Git Commit
          • 310646: No animations in the CoverSwitch effect
            This change will be available in version 4.10 Beta 2
            Git Commit
          • 309510: Logout Desaturation Desktop Effect no longer works correctly
          • 309170: If a windows is fullscreen the quick (un)maximizing is triggered when Alt+click moving it
            Git Commit
          • 276391: Desktop zoom shows wrong mousecursor while resizing window
            Git Commit
          • 309960: HTML in window titles not escaped in tabbox
            This change will be available in version 4.9.4
            Git Commit
          • 310613: Rendering of window decoration preview is broken/rendered white/partial
            This change will be available in version 4.10 Beta 2
            Git Commit
          • 309647: KWin uses incorrect function prototype for glXSwapInterval
            Git Commit
          • 309765: Closing a tabbed window gives focus to an other, but doesn’t raise that
            Git Commit
          • 310363: problem with extendedWindowBorders and dragAndDrop

          New Features

          • 307721: Make use of KDecorationDefines::ExtendedBorderRegion in shipped decorations
            Git Commit
          • 308994: Move ExtendedBorderRegion to stable API
            This change will be available in version 4.10
            Git Commit

          Tasks

            This week in KWin (2012 week 44, 45)

            The last two weeks have been very important in the KWin development area. First there was the release of 4.9.3 which includes a very important performance bug fix for Mesa 9.0 Intel users. If you had problems please consider an upgrade.

            On Thursday we had the hard feature freeze and many features got merged in during that period. Bellegarde Cédric merged in the appmenu support, allowing to have the window’s menu inside the window decoration. I love it as it’s very clean and I hardly use the menu in any application.

            Fredrik merged in the initial port from XLib to XCB. This is an important step on the road towards Qt 5 support inside KWin and will probably require still quite some work during the 4.11 cycle.

            Casian Andrei’s Google Summer of Code project on color correction got merged in as well. Unfortunately the merge did not go well, so there is still some work to do before the beta release. I hope that I can point to some documentation how to setup a color corrected system very soon.

            We have received a nice performance improvement for moving windows when using compositing. This should help alleviating some choppiness when using vsync.

            I merged in an improvement to window decorations, so that they can inform the compositor when they are not translucent. This improves the situation for rendering e.g. a maximized window with Oxygen but is most important for the new Plastik QML decoration which is not using translucency at all.

            Due to so much going on during these two weeks I’m sure that I have forgotten to mention something important. This could be summarized as “I don’t like feature freezes” – it’s so un-git.

            Summary

            Bug Fixes

            • 308633: Window tab group separated in shaded windows
              Git Commit
            • 308759: Forgotten “${…}” witihin CMakeLists.txt
              This change will be available in version 4.10
              Git Commit

            New Features

            • 102607: Display application menu and title bar side by side for maximized windows
              This change will be available in version 4.10
              Git Commit
            • 296773: GHNS support for Scripted Effects
              This change will be available in version 4.10
              Git Commit
            • 308995: Support shortened titles like in bespin in all decorations
              This change will be available in version 4.10
              Git Commit
            • 308990: Animate Window Maximize/Restore
              This change will be available in version 4.10
              Git Commit
            • 266596: Add support for appmenu-qt
              This change will be available in version 4.10
              Git Commit

            This Week in KWin (2012, week 40-43)

            First of all I want to say sorry for not providing an update for the last few weeks, which makes this post more a “This month in KWin” than a “This week in KWin”. There are many reasons why I haven’t provided an update, one of them is that not that much has happened, as new features were merged in just this week and given that 4.9 has been out for quite some time not so many new bugs are reported.

            Since Thursday we are in soft feature freeze, which means that only features listed in the Planned Feature Document are allowed to enter master. And there are quite a few nice additions which went into master lately. We have two new effects: one to animate when a mouse click has been performed. It’s a really nice effect especially for screen casts. The other one is a small JavaScript effect which animates the maximize window state change. If you don’t want to wait till 4.10 for this effect: it’s compatible with 4.9 and can be downloaded.

            This brings me to the next topic: finally the categories on kde-look.org for our new scripted elements have been created which means we get GHNS integration. Luckily I prepared the code for Scripts and Window Switcher Layouts for 4.9 and the download button was just visually hidden. Now that the integration works, I pushed a change for 4.9.3 to show the button. For scripted effects this had not been prepared, but GHNS integration will be available in 4.10.

            Given that GHNS for effects works and I really want to see many effects being developed, I was finally forced to create the API documentation. Tutorials will be added sometime soon, also including how to write C++ effects, my old tutorial is no longer up to date at all.

            Summary

            Bug Fixes

            • 307609: Zoom effect broken in master
              This change will be available in version 4.10
              Git Commit
            • 307866: kwin fails to build when the GLES support is disabled
              This change will be available in version 4.10
              Git Commit
            • 308248: Incorrect offset for decoration-maximized elements
              This change will be available in version 4.9.3
              Git Commit
            • 308283: [JJ]: DimInactive effect does not update on config changes
              This change will be available in version 4.9.3
              Git Commit

            New Features

            • 183996: Add a rule to select the screen
              This change will be available in version 4.10
              Git Commit
            • 296773: GHNS support for Scripted Effects
              This change will be available in version 4.10
              Git Commit
            • 296774: GHNS support for KWin Scripts
              This change will be available in version 4.9.3
              Git Commit
            • 297636: GHNS support for Window Switching Layouts
              This change will be available in version 4.9.3
              Git Commit
            • 306436: GLPlatform should recommend either OpenGL1 or OpenGL2 compositing
              This change will be available in version 4.10
              Git Commit
            • 308990: Animate Window Maximize/Restore
              This change will be available in version 4.10
              Git Commit
            • 309006: Mouse Click effect
              This change will be available in version 4.10
              Git Commit

            Tasks

            • 297634: Request category for scripted KWin Effects on kde-(look|app).org
              This change will be available in version 4.10
            • 297635: Request category for KWin Scripts on kde-(look|app).org
              This change will be available in version 4.10
            • 297637: Request category for Window Switcher Layouts on kde-(look|app).org
              This change will be available in version 4.10

            This week in KWin (2012, week 39)

            And another week gone. Major event of course tagging of 4.9.2 and a few more bug fixes for this version. But that’s not the only work that happened. I still have a few changes under review but also merged in some further changes for the OpenGL compositor I had been working on during XDC. Nothing really special except maybe that the specific OpenGL compositors can now be referenced by an enum type which simplifies the code checking for OpenGL 1/2 specific code in the effects.

            Summary

            Crash Fixes

              Critical Bug Fixes

                Bug Fixes

                • 307365: Decoration broken in maximized state
                  This change will be available in version 4.9.2
                  Git Commit
                • 307609: Zoom effect broken in master
                  This change will be available in version 4.10
                  Git Commit
                • 307125: Closed Windows stay in dock apps like AWN and docky with desktop-effects enabled
                  This change will be available in version 4.9.2
                  Git Commit

                New Features

                  Tasks

                    This week in KWin (2012, week 38)

                    This week we have seen quite some bug fixes for 4.9.2 and the inclusion of the refactoring I blogged about in the beginning of the week. This of course still continues and more patches are in the pipeline. Also a few more effect configurations got ported over to KConfigXT.

                    Summary

                    Crash Fixes

                    • 303244: Kwin 4.9 beta crashes on logout
                      This change will be available in version 4.9.2
                      Git Commit
                    • 305361: Kwin crashed after changing qtcurve configuration
                      This change will be available in version 4.9.2
                      Git Commit

                    Critical Bug Fixes

                      Bug Fixes

                      • 289747: Desktop Grid effect gets “confused” when adding a new desktop
                        This change will be available in version 4.9.2
                        Git Commit
                      • 301730: Ugly half drawn shadows (hardcut) in (qml)windowsswitcher grid
                        This change will be available in version 4.9.2
                        Git Commit
                      • 306281: autoraise raises inactive window under mouse when switching workspaces or closing active window
                        This change will be available in version 4.9.2
                        Git Commit
                      • 177495: Fullscreen windows unusable due to heavy flickering

                      New Features

                        Tasks

                          This week in KWin (2012, week 37)

                          This week I want to dedicate my summary to the following persons:

                          • Salva
                          • Giuseppe
                          • Andrea
                          • Christian
                          • Dirk
                          • Francesco
                          • Dario
                          • Alexander
                          • Lilian
                          • Bernhard

                          I hope I haven’t forgotten anyone. They all worked on porting our effects configuration to KConfigXT and quite a number already got merged into master this week. This is truly an amazing community. I have not expected that ten people would turn up to tackle the complete project in just one week.

                          The “disadvantage” is that it basically blocked my work. I was mostly involved in reviewing the patches and merging them in. It took me nevertheless about a quarter of hour to merge one of the changes as some effects are special and needed adjustments.

                          Other reviews got stuck in the queue and because of that the bug list for this week just returned an empty list.

                          This week in KWin (2012, week 36)

                          Between writing about game performance benchmarks I also have to publish the report on the activity last week in KWin development.

                          The major issue this week has been an issue introduced in KWin 4.9.1. Under certain circumstances it was possible that KWin completely froze. From the perspective of a compositor that is the worst bug you can think of. I’m very sorry for introducing this issue and want to apology for any inconveniences.

                          Luckily the bug report hit us about release time and we were able to notify the packagers the same day and provide a fix for the issues the next day. In best case most distributions have never provided the faulty package to their users.

                          Apart from that as a reader of my blog you probably already know what happened this week. Some nice performance improvements hit 4.9.2 and 4.10.

                          Summary

                          Crash Fixes

                            Critical Bug Fixes

                            • 306260: KWin freezes when navigating between windows
                              This change will be available in version 4.9.2
                              Git Commit

                            Bug Fixes

                            • 293044: Kwin + opengl compositing make firefox scrolling jerky.
                            • 306457: m_vBlankTime in Options is not initialized
                              This change will be available in version 4.9.2
                              Git Commit
                            • 306262: Translucency Effect needs isActive() implementation
                              This change will be available in version 4.9.2
                              Git Commit
                            • 306225: workspace.displayHeight is wrong
                              This change will be available in version 4.9.2
                              Git Commit
                            • 306263: Animations in Translucency Effect are not working
                              This change will be available in version 4.9.2
                              Git Commit
                            • 306449: transparency bug in active window
                              Git Commit

                            New Features

                            • 303756: Allow Scripts to add menus to useractions menu
                              This change will be available in version 4.10
                              Git Commit

                            Tasks

                            • 306384: Toplevel::windowType() needs performance improvements
                              This change will be available in version 4.10
                              Git Commit
                            • 306383: Toplevel::windowType() contains superfluous hacks
                              This change will be available in version 4.9.2
                              Git Commit

                            This Week in KWin (2012, week 35)

                            In the course of this week version 4.9.1 got tagged which will be released at the beginning of next week. In preparation of this release a few more bugfixes got pushed into the 4.9 branch. Overall the 4.9.1 release will contain 24 bugfixes, four of them crash fixes. That’s quite impressive and good work, but it is also a pity, because most of these bugs could have been spotted during the beta tests. So I hope that in future more people will use the Project Neon Image to test our latest version.

                            Speaking of that, this week we have seen how important it is to get early feedback. My changes last week unfortunately broke KWin badly and we got the bug report for that introduced issue the next day which made it really easy to spot the erroneous commit through git bisect and helped to fix the issue in less than 24 hours after it hit master.

                            Summary

                            Crash Fixes

                            • 304881: The decoration kcm is not protected against an unloadable qml source
                              This change will be available in version 4.9.1
                              Git Commit

                            Critical Bug Fixes

                            • 305875: Decorations not visible
                              This change will be available in version 4.10
                              Git Commit

                            Bug Fixes

                            • 226881: better placement of ungrouped window
                              This change will be available in version 4.9.1
                              Git Commit
                            • 295254: Menus and tooltips are sometime displayed incompletely
                              This change will be available in version 4.9.1
                              Git Commit
                            • 305611: Bouncing cursor does not respect global icon size
                              This change will be available in version 4.9.1
                              Git Commit
                            • 304375: Zoom effect: screen image jumps when cursor is blinking
                              This change will be available in version 4.9.1
                              Git Commit
                            • 305874: Docks break showing desktop state
                              This change will be available in version 4.9.1
                              Git Commit

                            This week in KWin (2012, week 34)

                            This week we have mostly seen work on 4.10 and not so much on 4.9.1. Two further bugs in Window Switching got fixed and a few more bug fixes are in the pipeline (I have a small review backlog).

                            But the work on 4.10 is rather impressive and really important. First of all I want to thank Jammy Zhou for adapting our OpenGL test application to determine whether the Catalyst driver supports direct rendering with compositing. Thanks to that change KWin will default to direct rendering and OpenGL 2 on the latest Catalyst drivers (in fact KWin defaults to direct rendering on all drivers now). If you are already using a recent Catalyst version you can also set the environment variable “KWIN_DIRECT_GL” to “1” to enforce direct rendering, no matter what the test app thinks. This works with all currently supported KWin versions.

                            My work concentrated on finishing the Plastik port to QML which I just merged into master. The classic decoration is still around, I want to make sure that the QML port is working correctly first. Please give it a try with e.g. Project Neon.

                            Furthermore I did quite some refactoring. Last week I mentioned the addition of Screens to the “User actions Menu” and that actually triggered some working on that code as I realized that this needs to be split out. This refactoring got just merged, too. And last but not least, I finally finished some unmerged work from last year GSoC. We again and again broke the patch set which made it difficult to merge. The user actions menu which I merged first, caused serveral merge conflicts again, so that was not a trivial thing. I intend to do a dedicated blog post to explain the refactoring especially as I have some more work already prepared. The numbers of these three merged branches today are quite impressive:

                            21 files changed, 650 insertions(+), 353 deletions(-)
                            7 files changed, 812 insertions(+), 555 deletions(-)
                            36 files changed, 2509 insertions(+), 160 deletions(-)

                            Summary

                            Crash Fixes

                              Bug Fixes

                              • 305449: Empty TabBox in case of no active Client
                                This change will be available in version 4.9.1
                                Git Commit
                              • 304950: alt+tab works wrong with “one window per application”
                                This change will be available in version 4.9.1
                                Git Commit

                              New Features

                              • 301327: Option to disable close on double click in Aurorae
                                This change will be available in version 4.10
                                Git Commit
                              • 301103: Allow direct rendering with fglrx
                                This change will be available in version 4.10
                                Git Commit
                              • 303810: Generic QML support for Aurorae Themes
                                This change will be available in version 4.10
                                Git Commit

                              Tasks

                              • 299277: Move Workspace’s compositing functionality to own class Compositor
                                This change will be available in version 4.10
                                Git Commit
                              • 305832: Split out Useractions Menu from Workspace
                                This change will be available in version 4.10
                                Git Commit