Category Archives: This Week in KWin

This week in KWin (2013, week 10-12)

This week I want to start with a big thank you for our sysadmins who did a great job this weekend. And then I want to say sorry that I didn’t put up a summary the last two weeks, but I did a general blog post instead.

Last week we had to investigate one issue which quite surprised me. On Sunday a cleanup to our GLX initialization code was pushed to master. This had a small regression preventing compositing to work on NVIDIA. What surprised me is that nobody noticed till Thursday, when I setup an old system with NVIDIA to test something completely different. Is nobody running master any more or are our KDE developers no longer using the NVIDIA driver? Overall it’s not good that we have regressions in master for four days without anybody noticing. And no: CI cannot catch such issues.

Summary

Crash Fixes

  • 315528: KWin crashes when switching windows
    This change will be available in version 4.11
    Git Commit

Critical Bug Fixes

    Bug Fixes

    • 259640: Deleted windows not unrefed when restarting compositing
      This change will be available in version 4.10.2
      Git Commit
    • 317068: keepInArea does not work if window dimensions match the area dimensions
      This change will be available in version 4.10.2
      Git Commit
    • 305781: Option “Suspend desktop effects for fullscreen windows” makes the image freeze when going fullscreen in applications
      This change will be available in version 4.10.2
      Git Commit
    • 316040: Dual screen issue caused by d6b3f6983efebc42abd6028ece9c3ec7facea2d0
      This change will be available in version 4.11
      Git Commit
    • 283309: Attaching windows to activities is too clumsy
      This change will be available in version 4.10.2
      Git Commit
    • 316033: Switching from one aurorae theme to another results in no decoration
      This change will be available in version 4.10.2
      Git Commit
    • 314532: Plastik (QML) decoration: poor performance with desktop effects
      This change will be available in version 4.10.2
      Git Commit
    • 296076: Fix fullscreen state handling: NETWM says it’s bound to focus and not stacking order, also see bug #224600
      This change will be available in version 4.11
      Git Commit
    • 313061: “Login” effect does not fade in on secondary monitor(s) with a multi screen setup
      This change will be available in version 4.11
      Git Commit
    • 307965: Upper part of windows tears when moving it left/right ONLY in upper part of display
      This change will be available in version 4.11
      Git Commit
    • 299245: Get rid of “Display borders on maximized windows” setting
      This change will be available in version 4.11
      Git Commit
    • 237260: shortcuts for switching windows don’t work with multihead
    • 317025: Java Swing Apps do not receive Deiconify event if window is shaded
      This change will be available in version 4.11
      Git Commit
    • 91703: vertical maximization doesn’t work as expected
      This change will be available in version 4.11
      Git Commit

    New Features

      Tasks

        This week in KWin (2013, week 9)

        This week I can only present a very small summary. Somehow not much has happened, but the review list is getting longer. For users of Intel IvyBridge I would recommend to wait with upgrading to Mesa 9.1 till the release of KDE SC 4.10.1. One of our (optional) shaders seems to hit a performance regression on that driver. It’s not a really bad thing and we were quite lucky that we had a hot-fix for KWin on the day 4.10.1 got tagged. Thanks a lot to our users doing a git bisect on the mesa sources which allowed us to provide both commit and an example shader to the developers. This are the nice things about free software that make me really happy. Especially if you get in turn suggestions on how to improve the shader.

        Summary

        Crash Fixes

        • 315951: kwin crash when clicking kickoff widget (“K menu”)
          This change will be available in version 4.11
          Git Commit

        Critical Bug Fixes

          Bug Fixes

          • 305434: Window shortcut containing space: “Launch Mail” doesn’t work
            This change will be available in version 4.11
            Git Commit

          New Features

            Tasks

            • 303313: Make KWin compile with C++11
              This change will be available in version 4.11

            This week in KWin (2013, week 8)

            Over the last week quite some bug fixes got merged into the 4.10 or master branch. We have some nice improvements for the desktop change OSD and even improvements for Multi-Head setups. The slideback effect operates on stacking order changes, now. This makes it working with Focus Follows Mouse.

            In the Qt 5 porting preparation quite some code got prepared, but not merged yet. Our paint-redirector which is responsible to bridge between window decorations and compositor got adjusted to no longer make use of the QPixmap/XPixmap relationship for xrender on raster graphics system. As a nice side effect of this work we will get some improvements also for the OpenGL compositor.

            Another area of work was the removal of QCursor usages in KWin. We used to use QCursor for setting a specific cursor when low level interacting with windows (e.g. setting the pointing hand cursor in Present Windows effect). With Qt 5 we do no longer get the underlying X cursor, so we needed to go for an own solution. We already used to have an own replacement for QCursor::pos(), which got now merged together with the other cursor handling code into an own class.

            Summary

            Crash Fixes

              Critical Bug Fixes

                Bug Fixes

                • 294490: ‘Slide back’ effect should react on stacking order changes
                  This change will be available in version 4.11
                  Git Commit
                • 314392: Position rule conflicts with maximization rule
                  This change will be available in version 4.11
                  Git Commit
                • 312728: “Show desktop layout indicators” option isn’t applied properly/immediately
                  This change will be available in version 4.10.1
                  Git Commit
                • 315114: KWin fails to initialize OpenGL ES on Mali-604T
                  This change will be available in version 4.10.1
                  Git Commit
                • 282677: Compositing not possible on each screen with multi head
                  This change will be available in version 4.11
                  Git Commit
                • 294865: Slide Back: Sometimes the Inactive window pops to the font for apprx. one frame when it is activated.
                  This change will be available in version 4.11
                  Git Commit

                New Features

                • 313379: Overlap factor of keepAbove windows in placeSmart should be infinite
                  This change will be available in version 4.11
                  Git Commit
                • 314402: String representation of KWin::Client should include caption, not name.
                  This change will be available in version 4.11
                  Git Commit

                Tasks

                  This week in KWin (2013, week 7)

                  This week we have seen much less new reported bugs than the week before. So the 4.10 release peak is over, but openSUSE and Kubuntu releases coming soon – history tells that will also results in lots of new bugs reported. This week a very interesting bug got fixed from the category “one wonders that has ever worked”. The symptoms were already really strange for the bug and if not a fellow developer would have reported it, I would not have believed it. And it took us quite some time to figure out how to reproduce the bug although I had the chance to work with the affected system at FOSDEM.

                  The porting for Qt 5 did a huge step over the last week. KWin’s XRenderUtils library got ported from XLib to XCB and with that also “evil” usage of QPixmap got removed. Most of our XRender effects are now also ported to XCB. I hope to finish the QPixmap chapter this week.

                  Summary

                  Crash Fixes

                    Critical Bug Fixes

                      Bug Fixes

                      • 314760: Keyboard input doesn’t work after assigning window shortcut
                        This change will be available in version 4.10.1
                        Git Commit
                      • 313145: Edges and “hiden panels” stop working when System Activity is shown
                        This change will be available in version 4.10.1
                        Git Commit
                      • 314756: (Desktop Effect) Mouse Click Animation does not recognize mouse buttons correctly
                        This change will be available in version 4.10.1
                        Git Commit
                      • 314625: window border “stays on top” after using present windows
                        This change will be available in version 4.10.1
                        Git Commit
                      • 314762: (Desktop Effect) Mouse Click Animation does not work when rising or focusing a window
                        This change will be available in version 4.10.1
                        Git Commit

                      New Features

                        Tasks

                          This week in KWin (2013, week 06)

                          This week we have seen the release of KDE Plasma Workspaces 4.10 and it looks like many people gave it a try over the weekend. My “bugs reported over last week” search gives me 41 reports – magnitudes more than what’s normal. My mailbox literally exploded this weekend. Not all of the bugs are new in 4.10, there are quite some which are actually older, so I don’t think we let some bugs through, but nevertheless: please test the betas. I prefer getting the bug reports before the final is released.

                          In the feature development department the most interesting events are the merge of the new screen edges implementation. Highlights are “multi screen aware”, glow known from Plasma’s auto-hiding panel being available on all screen edges when approaching with the mouse and no longer stealing screen edges (except corners) from active fullscreen windows. More things are planed like making it possible for Plasma to use KWin’s implementation (less code duplication) and only start the highlight if an action will be possible.

                          The second interesting new feature/bugfix is that KWin is able to detect whether the screen is locked and disables some privacy related effects. Currently all thumbnail effects get deactivated, screenshot and mouse mark.

                          Summary

                          Crash Fixes

                          • 314593: kwin crashes when applying “Invert” effect immediately after session unlock
                            This change will be available in version 4.10.1
                            Git Commit
                          • 314409: Moving to Other Workspace Crashed KWin
                            This change will be available in version 4.11
                            Git Commit
                          • 309695: Crash in KWin::Screenedge::unreserve on deactivating Actos script
                            This change will be available in version 4.11
                            Git Commit
                          • 313996: KScreen crashes KWin when switching between resolution options
                            Git Commit

                          Critical Bug Fixes

                            Bug Fixes

                            • 299901: Cube animation on border approach should not be used unless the electric borders are actually in use and the config should be disabled, align or hint the electric border configuration
                              This change will be available in version 4.11
                              Git Commit
                            • 255712: “Thumbnail Aside” effect visible when screen is locked — privacy issue
                              This change will be available in version 4.11
                              Git Commit
                            • 278137: Trailing artifacts when quickily moving windows and windowgeometry affect is enabled
                              This change will be available in version 4.10.1
                              Git Commit
                            • 314590: “Show Desktop” no longer works as a toggle
                            • 313826: Outdated “Moving/resizing” option pending in kwinrules
                              This change will be available in version 4.10.1
                              Git Commit

                            New Features

                            • 290887: Hot Screen Corners do not work properly in multiscreen setup with different resolutions
                              This change will be available in version 4.11
                              Git Commit
                            • 271607: Window Specific Settings for Disabling Screen Edges
                              This change will be available in version 4.11
                              Git Commit

                            Tasks

                              This week in KWin (2013, week 5)

                              Major event last week has of course been the tagging of 4.10 and some last minute fixes for it. TabBox is now getting proper translucent backgrounds again, other parts of KWin still have unfortunately still problems with it. Most of the work has not yet made it into master and is still on review. There’s some new stuff for screen edges in the pipeline and some further areas got ported to XCB.

                              Summary

                              Crash Fixes

                              Critical Bug Fixes

                                Bug Fixes

                                • 313909: XReconfigureWMWindow fails to stack (lower) a window using an Above CWSibling combination
                                  This change will be available in version 4.11
                                  Git Commit
                                • 192807: Plastik window decoration doesn’t paint for very small windows
                                • 310945: New maximize effect leads to visual glitch
                                  This change will be available in version 4.10
                                  Git Commit

                                New Features

                                  Tasks

                                    This week in KWin (2013, week 4)

                                    This week quite some bug fixes have entered both 4.10 and master branch. One of the most interesting one is the improved detection for whether a window is on the local system or on a remote one. If you want to get more information about that read my dedicated blog post. But there are also some nice general improvements. The first KConfigXT patch has entered and work has started to make use of it in our Options class. The XCB porting continous with an improved Xcb::Wrapper class – for this I plan to write a dedicated post as it’s an interesting topic from the C++ perspective.

                                    Summary

                                    Crash Fixes

                                    • 313655: unloading of “Mouse Click Animation” result in kwin crash
                                      This change will be available in version 4.10
                                      Git Commit

                                    Critical Bug Fixes

                                      Bug Fixes

                                      • 313950: Typo in compact/contents/ui/main.qml
                                        This change will be available in version 4.10
                                        Git Commit
                                      • 308438: When compositing is disabled, opening a window which blocks compositing *enables* it
                                        This change will be available in version 4.10
                                        Git Commit
                                      • 302248: Show Desktop has inconsistent behavior when launching KRunner
                                        This change will be available in version 4.10
                                        Git Commit
                                      • 312956: Desktop Effects – Zoom: Mouse Tracking “Push” laggy, inprecise and/or not working
                                        This change will be available in version 4.11
                                        Git Commit
                                      • 270586: build fails – getdomainname
                                        This change will be available in version 4.11
                                        Git Commit
                                      • 308391: KWin uses getdomainname() to obtain the hostname, should use getaddrinfo()
                                        This change will be available in version 4.11
                                        Git Commit
                                      • 304435: Track mouse effect generates graphics artifacts
                                        This change will be available in version 4.11
                                        Git Commit

                                      New Features

                                        Tasks

                                          This week in KWin (2013, week 3)

                                          This week has seen lots of last minute polish for the 4.10 release. Most issues should be fixed in RC3, but there is still some work going on to deal with regressions outside of KWin which nobody had noticed for too long. From the features/improvement department: KWin’s support information includes information about screens to finally end the discussions about whether a user is using multi-head, xrandr or who knows what. Our window decoration library gained support for two new window border sizes: no borders on the side and no borders at all. This is highly inspired by the already existing feature in Oxygen and got now also available in Aurorae for QML based themes.

                                          Last but not least I wanted to remind that the summary below is generated from the bug reports set to resolved fixed in Bugzilla over the last week. This does not mean that the bug got fixed, but that the report had been set to fixed. Sometimes this is done through a commit, sometimes it’s just some house cleaning. The last weeks have seen lots of cleaning. Also the title of a bug report is mostly set by the user and especially in the case of a crash report has very often not much to do with what has really been the case. So if you want to get excited about a bug in that list, you should at least click the link and read through it and see what it is about and when it got fixed. Even if the bug report is more than a decade old it does not say anything without the context.

                                          Summary

                                          Crash Fixes

                                          • 302094: KWin crashes with flash
                                          • 264897: crash during alt+tab
                                          • 312712: Assert on “kwin –restart &”
                                            This change will be available in version 4.10 RC 3
                                            Git Commit

                                          Critical Bug Fixes

                                            Bug Fixes

                                            • 301909: “No titlebar and frame = Force Yes” does not work
                                            • 311896: callDBus always fails for methods with signature containing array of strings
                                              This change will be available in version 4.10
                                              Git Commit
                                            • 293734: kwin does not honor disableMultihead=true and causes window focus problems
                                              This change will be available in version 4.11
                                              Git Commit
                                            • 308557: blur left on screen
                                            • 312851: Windows wider/taller than screen are cut off/partially mirrored when doing a screenshot of them using ksnapshot
                                              This change will be available in version 4.11
                                              Git Commit
                                            • 273104: Dual screen with different dimension screens and one rotated, desktop size is getting strange values

                                            New Features

                                              Tasks

                                                This week in KWin (2013, week 2)

                                                A rather busy week is behind us. Not only have there been many bugs fixed, but also some feature/refactoring branches were merged which are not listed in the summary. For example a refactoring of virtual desktops landed in master. The management of virtual desktops has been split out of the Workspace class into an own module. As new features we have more support for the application menu button in window decorations. The Laptop decoration got such a button and generic support has been added to the Aurorae theme engine. Now almost all decorations shipped with KWin can provide this button.

                                                Summary

                                                Crash Fixes

                                                Critical Bug Fixes

                                                  Bug Fixes

                                                  • 275235: Logout effect interferes with Plasma extenders effect
                                                  • 299398: shadow on volume OSD is wrong the first time
                                                  • 312835: The keyboard shorcut Ctrl+Alt+Right for “Switch to next desktop” doesn’t work anymore since commit a2a335064e206f0689e315d58c30bedce90decff
                                                    Git Commit
                                                  • 311319: Color correction breaks EffectFrames
                                                    Git Commit
                                                  • 306169: Thumbnail Aside effect not updating/disappearing
                                                    This change will be available in version 4.10 RC 3
                                                    Git Commit
                                                  • 295055: AbilityUsesAlphaChannel broken when used with shadow pixmap hints
                                                  • 312168: Plasma popup shadows not drawn during slide animation
                                                    This change will be available in version 4.10 RC 3
                                                    Git Commit
                                                  • 306404: The “walk through desktop” shortcuts don’t show up in the desktop kcm
                                                    This change will be available in version 4.11
                                                    Git Commit
                                                  • 281186: maximizing a full-size window causes title bar corruption
                                                  • 309853: KWin kcm wrongly informs that all effects failed to load
                                                    This change will be available in version 4.10
                                                    Git Commit
                                                  • 312784: Can’t drag and drop files or folders on edgeless windows
                                                    This change will be available in version 4.10 RC 3
                                                    Git Commit
                                                  • 313091: Kded-appmenu – Enabling makes “Window menu” and “on all desktops” buttons vanish
                                                    Git Commit

                                                  New Features

                                                  • 312900: wish: kwin option to save vertical space: merge window buttons into menu-bar
                                                    This change will be available in version 4.10

                                                  Tasks

                                                    This week in KWin (2012, week 52 and 2013, week 1)

                                                    With Christmas break over there is again quite some work happening for KWin. Of course given that 4.10 is close by a few bugs got fixed, but with master open for 4.11 we also have the first feature commits. Most of it is in the area of porting KWin to XCB. Those changes are not listed, but they are quite nice as each of them brings a small improvement due to the asynchronous nature of XCB. For the actual features I try to create bug reports again, so that they can be listed in the summary.

                                                    Summary

                                                    Crash Fixes

                                                    • 308040: KWin crashes after restarting it
                                                      This change will be available in version 4.10
                                                      Git Commit
                                                    • 310142: KWin crash due to wobbly windows effect when closing window
                                                      This change will be available in version 4.10
                                                      Git Commit

                                                    Critical Bug Fixes

                                                      Bug Fixes

                                                      • 312346: PySolFC (And possibly other Tkinter and Tk programs), after moving window, put the menu at the original menu position.
                                                        This change will be available in version 4.10
                                                        Git Commit
                                                      • 293385: glsl should be disabled for the 945G because it’s slow and broken
                                                        This change will be available in version 4.10
                                                        Git Commit
                                                      • 308919: Window Switcher fails to repaint background if Fade Effect enabled
                                                      • 311553: No minimum size on the general or effects tab of kwincompositing kcm
                                                        This change will be available in version 4.10
                                                        Git Commit

                                                      New Features

                                                      • 308992: Use Resize Area in Aurorae
                                                        This change will be available in version 4.11
                                                        Git Commit

                                                      Tasks