From kde-core-devel Mon Mar 17 13:38:26 2008 From: "Louai Al-Khanji" Date: Mon, 17 Mar 2008 13:38:26 +0000 To: kde-core-devel Subject: Alien widgets and flickering Message-Id: X-MARC-Message: https://marc.info/?l=kde-core-devel&m=120576119102267 Hi all, Most of you probably know that with Qt 4.4 the so-called "alien widget" feature was introduced that avoids creating native windows for QWidgets. Unfortunately this causes flickering when native windows are required. This can easily be seen in System Settings for example. Just start it up and select "Appearance", and it should flicker as X windows are constructed. This is especially visible with dark color schemes, because Qt currently hardcodes the X background color to white. (And the border color is always black, this is a bug in itself.) This is very visible even on a composited desktop. I have experimented with setting the X background color to match the window palette, but things still flicker because the whole widget area is redrawn with a solid color anyway. As far as I can see there are two solutions. One is to never call QWidget::winId except for top-level windows. The other solution is to throw away the advantages of alien widgets and disable them in applications where native widgets are used. In my case I am especially considering SystemSettings because the flashing is really bugging me and I run into it often. I don't think there is any way to avoid reparenting X windows for example in the screensaver kcm, and I assume it won't be simple for kwin or style kcm's either. Thoughts? - Louai