rev 6594 - in trunk/packages/qt4-x11/debian: . patches

Fathi Boudra fboudra-guest at alioth.debian.org
Tue Jun 26 19:02:24 UTC 2007


Author: fboudra-guest
Date: 2007-06-26 19:02:24 +0000 (Tue, 26 Jun 2007)
New Revision: 6594

Added:
   trunk/packages/qt4-x11/debian/patches/00_0178-transparency-window-types.dpatch
   trunk/packages/qt4-x11/debian/patches/00_0179-transient-hack.dpatch
   trunk/packages/qt4-x11/debian/patches/00_0180-window-role.dpatch
   trunk/packages/qt4-x11/debian/patches/00_0181-qdnd-x11-fix.dpatch
   trunk/packages/qt4-x11/debian/patches/00_0182-argb-visuals-default.dpatch
Modified:
   trunk/packages/qt4-x11/debian/changelog
   trunk/packages/qt4-x11/debian/control
   trunk/packages/qt4-x11/debian/patches/00_0163-fix-gcc43-support.dpatch
   trunk/packages/qt4-x11/debian/patches/00_0167-fix-group-reading.dpatch
   trunk/packages/qt4-x11/debian/patches/00_0175-fix-s390-qatomic.dpatch
   trunk/packages/qt4-x11/debian/patches/00_0176-coverity-fixes.dpatch
   trunk/packages/qt4-x11/debian/patches/00list
Log:
  * Qt4 demos builds properly in Qt4.3. (Closes: #408639)
  * Replace qmake by qmake-qt4 in libqt4-dev long description.
    (Closes: #415816)
  * Apply qt-copy patches:
    * 00_0178-transparency-window-types: adds Qt support for new window types
      used for compositing.
    * 00_0179-transient-hack: workaround that makes setting of WM_TRANSIENT_FOR
      work with some window types.
    * 00_0180-window-role: several problems with Qt's support for the
      WM_WINDOW_ROLE property.
    * 00_0181-qdnd-x11-fix: makes the find_child algorithm in qdnd look at
      _all_ widgets that contain the QPoint.
    * 00_0182-argb-visuals-default: Qt handling argb visuals on X11.


Modified: trunk/packages/qt4-x11/debian/changelog
===================================================================
--- trunk/packages/qt4-x11/debian/changelog	2007-06-26 18:36:09 UTC (rev 6593)
+++ trunk/packages/qt4-x11/debian/changelog	2007-06-26 19:02:24 UTC (rev 6594)
@@ -1,15 +1,29 @@
 qt4-x11 (4.3.0-2) unstable; urgency=low
 
   [Brian Nelson]
-  * Changed dist back to unstable
+  * Changed dist back to unstable.
   * Tightened qt4-dev-tools's dependency on libqt4-core to
     (= ${Source-Version}), since it uses internal (non-public) classes in
-    Qt whose ABI can change.
-  * Added a build-dependency on libxi-dev to enable tablet support or
-    something
+    Qt whose ABI can change. (Closes: #429817)
+  * Added a build-dependency on libxi-dev to enable tablet support.
 
- --
+  [Fathi Boudra]
+  * Qt4 demos builds properly in Qt4.3. (Closes: #408639)
+  * Replace qmake by qmake-qt4 in libqt4-dev long description.
+    (Closes: #415816)
+  * Apply qt-copy patches:
+    * 00_0178-transparency-window-types: adds Qt support for new window types
+      used for compositing.
+    * 00_0179-transient-hack: workaround that makes setting of WM_TRANSIENT_FOR
+      work with some window types.
+    * 00_0180-window-role: several problems with Qt's support for the
+      WM_WINDOW_ROLE property.
+    * 00_0181-qdnd-x11-fix: makes the find_child algorithm in qdnd look at
+      _all_ widgets that contain the QPoint.
+    * 00_0182-argb-visuals-default: Qt handling argb visuals on X11.
 
+ -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>  Tue, 26 Jun 2007 19:03:06 +0200
+
 qt4-x11 (4.3.0-1) experimental; urgency=low
 
   * New upstream release.

Modified: trunk/packages/qt4-x11/debian/control
===================================================================
--- trunk/packages/qt4-x11/debian/control	2007-06-26 18:36:09 UTC (rev 6593)
+++ trunk/packages/qt4-x11/debian/control	2007-06-26 19:02:24 UTC (rev 6594)
@@ -18,7 +18,7 @@
  is its rich set of widgets that provide standard GUI functionality.
  .
  This packages contains the header development files and development
- programs such as qmake used for building Qt applications.
+ programs such as qmake-qt4 used for building Qt4 applications.
  .
   Homepage: http://www.trolltech.com
 

Modified: trunk/packages/qt4-x11/debian/patches/00_0163-fix-gcc43-support.dpatch
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00_0163-fix-gcc43-support.dpatch	2007-06-26 18:36:09 UTC (rev 6593)
+++ trunk/packages/qt4-x11/debian/patches/00_0163-fix-gcc43-support.dpatch	2007-06-26 19:02:24 UTC (rev 6594)
@@ -5,9 +5,9 @@
 ## DP: Various fixes to get Qt 4.3 without hundreds of warnings compiling.
 
 @DPATCH@
-diff -urNad qt4-x11-4.3.0~rc1~/config.tests/unix/endian.test qt4-x11-4.3.0~rc1/config.tests/unix/endian.test
---- qt4-x11-4.3.0~rc1~/config.tests/unix/endian.test	2007-05-06 17:54:44.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/config.tests/unix/endian.test	2007-05-17 19:09:20.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/config.tests/unix/endian.test qt4-x11-4.3.0/config.tests/unix/endian.test
+--- qt4-x11-4.3.0~/config.tests/unix/endian.test	2007-05-25 15:24:34.000000000 +0200
++++ qt4-x11-4.3.0/config.tests/unix/endian.test	2007-06-26 19:54:20.000000000 +0200
 @@ -30,6 +30,7 @@
      [ "$VERBOSE" = "yes" ] && echo "    Found 'MostSignificantByteFirst' in binary"
      ENDIAN="BIG"
@@ -16,9 +16,9 @@
  
  # done
  if [ "$ENDIAN" = "LITTLE" ]; then
-diff -urNad qt4-x11-4.3.0~rc1~/config.tests/x11/glib/glib.cpp qt4-x11-4.3.0~rc1/config.tests/x11/glib/glib.cpp
---- qt4-x11-4.3.0~rc1~/config.tests/x11/glib/glib.cpp	2007-05-06 17:54:37.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/config.tests/x11/glib/glib.cpp	2007-05-17 19:09:20.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/config.tests/x11/glib/glib.cpp qt4-x11-4.3.0/config.tests/x11/glib/glib.cpp
+--- qt4-x11-4.3.0~/config.tests/x11/glib/glib.cpp	2007-05-25 15:24:25.000000000 +0200
++++ qt4-x11-4.3.0/config.tests/x11/glib/glib.cpp	2007-06-26 19:54:20.000000000 +0200
 @@ -6,7 +6,7 @@
  {
      GMainContext *context;
@@ -28,9 +28,9 @@
      if (!g_thread_supported())
          g_thread_init(NULL);
      context = g_main_context_default();
-diff -urNad qt4-x11-4.3.0~rc1~/src/corelib/codecs/qtextcodec.cpp qt4-x11-4.3.0~rc1/src/corelib/codecs/qtextcodec.cpp
---- qt4-x11-4.3.0~rc1~/src/corelib/codecs/qtextcodec.cpp	2007-05-06 17:54:22.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/corelib/codecs/qtextcodec.cpp	2007-05-17 19:09:20.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/corelib/codecs/qtextcodec.cpp qt4-x11-4.3.0/src/corelib/codecs/qtextcodec.cpp
+--- qt4-x11-4.3.0~/src/corelib/codecs/qtextcodec.cpp	2007-05-25 15:24:09.000000000 +0200
++++ qt4-x11-4.3.0/src/corelib/codecs/qtextcodec.cpp	2007-06-26 19:54:20.000000000 +0200
 @@ -415,7 +415,7 @@
              localeMapper = checkForCodec(lang);
  
@@ -40,9 +40,9 @@
              localeMapper = checkForCodec("ISO 8859-15");
  
          // 6. guess locale from ctype unless ctype is "C"
-diff -urNad qt4-x11-4.3.0~rc1~/src/corelib/io/qtextstream.cpp qt4-x11-4.3.0~rc1/src/corelib/io/qtextstream.cpp
---- qt4-x11-4.3.0~rc1~/src/corelib/io/qtextstream.cpp	2007-05-06 17:54:23.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/corelib/io/qtextstream.cpp	2007-05-17 19:09:20.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/corelib/io/qtextstream.cpp qt4-x11-4.3.0/src/corelib/io/qtextstream.cpp
+--- qt4-x11-4.3.0~/src/corelib/io/qtextstream.cpp	2007-05-25 15:24:10.000000000 +0200
++++ qt4-x11-4.3.0/src/corelib/io/qtextstream.cpp	2007-06-26 19:54:20.000000000 +0200
 @@ -541,8 +541,8 @@
      if (!codec || autoDetectUnicode) {
          autoDetectUnicode = false;
@@ -54,9 +54,9 @@
              codec = QTextCodec::codecForName("UTF-16");
          } else if (!codec) {
              codec = QTextCodec::codecForLocale();
-diff -urNad qt4-x11-4.3.0~rc1~/src/corelib/io/qurl.cpp qt4-x11-4.3.0~rc1/src/corelib/io/qurl.cpp
---- qt4-x11-4.3.0~rc1~/src/corelib/io/qurl.cpp	2007-05-06 17:54:23.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/corelib/io/qurl.cpp	2007-05-17 19:09:20.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/corelib/io/qurl.cpp qt4-x11-4.3.0/src/corelib/io/qurl.cpp
+--- qt4-x11-4.3.0~/src/corelib/io/qurl.cpp	2007-05-25 15:24:10.000000000 +0200
++++ qt4-x11-4.3.0/src/corelib/io/qurl.cpp	2007-06-26 19:54:21.000000000 +0200
 @@ -4724,9 +4724,9 @@
      if (include.isEmpty()) {
          for (int i = 0; i < len; ++i) {
@@ -83,9 +83,9 @@
                  || c == 0x2D // -
                  || c == 0x2E // .
                  || c == 0x5F // _
-diff -urNad qt4-x11-4.3.0~rc1~/src/corelib/tools/qlocale.cpp qt4-x11-4.3.0~rc1/src/corelib/tools/qlocale.cpp
---- qt4-x11-4.3.0~rc1~/src/corelib/tools/qlocale.cpp	2007-05-06 17:54:24.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/corelib/tools/qlocale.cpp	2007-05-17 19:09:20.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/corelib/tools/qlocale.cpp qt4-x11-4.3.0/src/corelib/tools/qlocale.cpp
+--- qt4-x11-4.3.0~/src/corelib/tools/qlocale.cpp	2007-05-25 15:24:11.000000000 +0200
++++ qt4-x11-4.3.0/src/corelib/tools/qlocale.cpp	2007-06-26 19:54:21.000000000 +0200
 @@ -2589,8 +2589,8 @@
  
          QChar c1 = format.at(i);
@@ -97,10 +97,10 @@
              return true;
  
          ++i;
-diff -urNad qt4-x11-4.3.0~rc1~/src/gui/kernel/qapplication.cpp qt4-x11-4.3.0~rc1/src/gui/kernel/qapplication.cpp
---- qt4-x11-4.3.0~rc1~/src/gui/kernel/qapplication.cpp	2007-05-06 17:54:32.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/gui/kernel/qapplication.cpp	2007-05-17 19:09:20.000000000 +0200
-@@ -2009,11 +2009,11 @@
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qapplication.cpp qt4-x11-4.3.0/src/gui/kernel/qapplication.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qapplication.cpp	2007-05-25 15:24:20.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qapplication.cpp	2007-06-26 19:54:21.000000000 +0200
+@@ -2018,11 +2018,11 @@
  #ifndef QT_NO_TRANSLATION
  static bool qt_detectRTLLanguage()
  {
@@ -114,9 +114,9 @@
  }
  #endif
  
-diff -urNad qt4-x11-4.3.0~rc1~/src/gui/kernel/qkeymapper_x11.cpp qt4-x11-4.3.0~rc1/src/gui/kernel/qkeymapper_x11.cpp
---- qt4-x11-4.3.0~rc1~/src/gui/kernel/qkeymapper_x11.cpp	2007-05-06 17:54:32.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/gui/kernel/qkeymapper_x11.cpp	2007-05-17 19:09:20.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qkeymapper_x11.cpp qt4-x11-4.3.0/src/gui/kernel/qkeymapper_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qkeymapper_x11.cpp	2007-05-25 15:24:20.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qkeymapper_x11.cpp	2007-06-26 19:54:21.000000000 +0200
 @@ -1315,8 +1315,8 @@
          }
  
@@ -128,10 +128,10 @@
                  directionKeyEvent = Qt::Key_Direction_L;
              } else if (keysym == XK_Shift_R && directionKeyEvent == XK_Control_R ||
                         keysym == XK_Control_R && directionKeyEvent == XK_Shift_R) {
-diff -urNad qt4-x11-4.3.0~rc1~/src/gui/kernel/qwidget.cpp qt4-x11-4.3.0~rc1/src/gui/kernel/qwidget.cpp
---- qt4-x11-4.3.0~rc1~/src/gui/kernel/qwidget.cpp	2007-05-06 17:54:31.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/gui/kernel/qwidget.cpp	2007-05-17 19:09:20.000000000 +0200
-@@ -1804,7 +1804,7 @@
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qwidget.cpp qt4-x11-4.3.0/src/gui/kernel/qwidget.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qwidget.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qwidget.cpp	2007-06-26 19:54:21.000000000 +0200
+@@ -1808,7 +1808,7 @@
  
              for (int i = 0; i < pd->children.size(); ++i) {
                  QWidget *w = qobject_cast<QWidget *>(pd->children.at(i));
@@ -140,7 +140,7 @@
                      if (w!=q) {
                          w->create();
                      } else {
-@@ -1814,6 +1814,7 @@
+@@ -1818,6 +1818,7 @@
                          if (winid)
                              w->raise();
                      }
@@ -148,9 +148,9 @@
              }
          } else {
              q->create();
-diff -urNad qt4-x11-4.3.0~rc1~/src/gui/painting/qregion_unix.cpp qt4-x11-4.3.0~rc1/src/gui/painting/qregion_unix.cpp
---- qt4-x11-4.3.0~rc1~/src/gui/painting/qregion_unix.cpp	2007-05-06 17:54:26.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/gui/painting/qregion_unix.cpp	2007-05-17 19:09:20.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/gui/painting/qregion_unix.cpp qt4-x11-4.3.0/src/gui/painting/qregion_unix.cpp
+--- qt4-x11-4.3.0~/src/gui/painting/qregion_unix.cpp	2007-05-25 15:24:13.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/painting/qregion_unix.cpp	2007-06-26 19:54:21.000000000 +0200
 @@ -1929,7 +1929,7 @@
          else
              --isInside;
@@ -160,9 +160,9 @@
              pWETE->nextWETE = AET;
              pWETE = AET;
              inside = !inside;
-diff -urNad qt4-x11-4.3.0~rc1~/src/tools/uic/driver.cpp qt4-x11-4.3.0~rc1/src/tools/uic/driver.cpp
---- qt4-x11-4.3.0~rc1~/src/tools/uic/driver.cpp	2007-05-06 17:54:17.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/tools/uic/driver.cpp	2007-05-17 19:09:20.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/tools/uic/driver.cpp qt4-x11-4.3.0/src/tools/uic/driver.cpp
+--- qt4-x11-4.3.0~/src/tools/uic/driver.cpp	2007-05-25 15:24:02.000000000 +0200
++++ qt4-x11-4.3.0/src/tools/uic/driver.cpp	2007-06-26 19:54:21.000000000 +0200
 @@ -160,7 +160,7 @@
  
  static bool isAnsiCCharacter(const QChar& c)

Modified: trunk/packages/qt4-x11/debian/patches/00_0167-fix-group-reading.dpatch
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00_0167-fix-group-reading.dpatch	2007-06-26 18:36:09 UTC (rev 6593)
+++ trunk/packages/qt4-x11/debian/patches/00_0167-fix-group-reading.dpatch	2007-06-26 19:02:24 UTC (rev 6594)
@@ -5,9 +5,9 @@
 ## DP: In big user environments, getgrgid_r() needs more memory than sysconf() returns.
 
 @DPATCH@
-diff -urNad qt4-x11-4.3.0~rc1~/src/corelib/io/qfsfileengine_unix.cpp qt4-x11-4.3.0~rc1/src/corelib/io/qfsfileengine_unix.cpp
---- qt4-x11-4.3.0~rc1~/src/corelib/io/qfsfileengine_unix.cpp	2007-05-06 17:54:23.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/corelib/io/qfsfileengine_unix.cpp	2007-05-17 19:10:48.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/corelib/io/qfsfileengine_unix.cpp qt4-x11-4.3.0/src/corelib/io/qfsfileengine_unix.cpp
+--- qt4-x11-4.3.0~/src/corelib/io/qfsfileengine_unix.cpp	2007-05-25 15:24:09.000000000 +0200
++++ qt4-x11-4.3.0/src/corelib/io/qfsfileengine_unix.cpp	2007-06-26 19:56:03.000000000 +0200
 @@ -830,9 +830,16 @@
      } else if (own == OwnerGroup) {
          struct group *gr = 0;

Modified: trunk/packages/qt4-x11/debian/patches/00_0175-fix-s390-qatomic.dpatch
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00_0175-fix-s390-qatomic.dpatch	2007-06-26 18:36:09 UTC (rev 6593)
+++ trunk/packages/qt4-x11/debian/patches/00_0175-fix-s390-qatomic.dpatch	2007-06-26 19:02:24 UTC (rev 6594)
@@ -5,9 +5,9 @@
 ## DP: Fix s390(x) build.
 
 @DPATCH@
-diff -urNad qt4-x11-4.3.0~rc1~/src/corelib/arch/qatomic_s390.h qt4-x11-4.3.0~rc1/src/corelib/arch/qatomic_s390.h
---- qt4-x11-4.3.0~rc1~/src/corelib/arch/qatomic_s390.h	2007-05-06 17:54:22.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/corelib/arch/qatomic_s390.h	2007-05-17 19:13:18.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/corelib/arch/qatomic_s390.h qt4-x11-4.3.0/src/corelib/arch/qatomic_s390.h
+--- qt4-x11-4.3.0~/src/corelib/arch/qatomic_s390.h	2007-05-25 15:24:09.000000000 +0200
++++ qt4-x11-4.3.0/src/corelib/arch/qatomic_s390.h	2007-06-26 19:56:59.000000000 +0200
 @@ -182,10 +182,20 @@
  #endif
  }

Modified: trunk/packages/qt4-x11/debian/patches/00_0176-coverity-fixes.dpatch
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00_0176-coverity-fixes.dpatch	2007-06-26 18:36:09 UTC (rev 6593)
+++ trunk/packages/qt4-x11/debian/patches/00_0176-coverity-fixes.dpatch	2007-06-26 19:02:24 UTC (rev 6594)
@@ -5,9 +5,9 @@
 ## DP: Fix various obvious memory leaks.
 
 @DPATCH@
-diff -urNad qt4-x11-4.3.0~rc1~/src/gui/painting/qimagescale.cpp qt4-x11-4.3.0~rc1/src/gui/painting/qimagescale.cpp
---- qt4-x11-4.3.0~rc1~/src/gui/painting/qimagescale.cpp	2007-05-06 17:54:25.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/gui/painting/qimagescale.cpp	2007-05-19 08:46:30.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/gui/painting/qimagescale.cpp qt4-x11-4.3.0/src/gui/painting/qimagescale.cpp
+--- qt4-x11-4.3.0~/src/gui/painting/qimagescale.cpp	2007-05-25 15:24:12.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/painting/qimagescale.cpp	2007-06-26 19:58:23.000000000 +0200
 @@ -1005,6 +1005,7 @@
      buffer = QImage(dw, dh, src.format());
      if (buffer.isNull()) {
@@ -16,9 +16,29 @@
          return QImage();
      }
  
-diff -urNad qt4-x11-4.3.0~rc1~/src/tools/uic/cpp/cppwriteicondata.cpp qt4-x11-4.3.0~rc1/src/tools/uic/cpp/cppwriteicondata.cpp
---- qt4-x11-4.3.0~rc1~/src/tools/uic/cpp/cppwriteicondata.cpp	2007-05-06 17:54:47.000000000 +0200
-+++ qt4-x11-4.3.0~rc1/src/tools/uic/cpp/cppwriteicondata.cpp	2007-05-19 08:47:22.000000000 +0200
+diff -urNad qt4-x11-4.3.0~/src/svg/qsvghandler.cpp qt4-x11-4.3.0/src/svg/qsvghandler.cpp
+--- qt4-x11-4.3.0~/src/svg/qsvghandler.cpp	2007-05-25 15:24:21.000000000 +0200
++++ qt4-x11-4.3.0/src/svg/qsvghandler.cpp	2007-06-26 19:58:23.000000000 +0200
+@@ -1116,15 +1116,9 @@
+         if (!size.isEmpty()) {
+             QSvgHandler::LengthType type;
+             qreal len = parseLength(size, type, handler);
+-            //len = convertToPixels(len, false, type);
+             // ### org_module.svg shows that font size
+             // seems to be always in px...
+-            type  = QSvgHandler::PX;
+-            if (type == QSvgHandler::PX ||
+-                type == QSvgHandler::OTHER)
+-                font.setPixelSize(int(len));
+-            else
+-                font.setPointSizeF(len);
++            font.setPixelSize(int(len));
+         }
+         if (!style.isEmpty()) {
+             if (style == QLatin1String("normal")) {
+diff -urNad qt4-x11-4.3.0~/src/tools/uic/cpp/cppwriteicondata.cpp qt4-x11-4.3.0/src/tools/uic/cpp/cppwriteicondata.cpp
+--- qt4-x11-4.3.0~/src/tools/uic/cpp/cppwriteicondata.cpp	2007-05-25 15:24:38.000000000 +0200
++++ qt4-x11-4.3.0/src/tools/uic/cpp/cppwriteicondata.cpp	2007-06-26 19:58:23.000000000 +0200
 @@ -50,7 +50,7 @@
          ba[i] = r;
      }

Added: trunk/packages/qt4-x11/debian/patches/00_0178-transparency-window-types.dpatch
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00_0178-transparency-window-types.dpatch	                        (rev 0)
+++ trunk/packages/qt4-x11/debian/patches/00_0178-transparency-window-types.dpatch	2007-06-26 19:02:24 UTC (rev 6594)
@@ -0,0 +1,340 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 00_0178-transparency-window-types.dpatch by Lubos Lunak <l.lunak at kde.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: This patch adds Qt support for new window types used for compositing.
+
+ at DPATCH@
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qapplication_x11.cpp qt4-x11-4.3.0/src/gui/kernel/qapplication_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qapplication_x11.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qapplication_x11.cpp	2007-06-26 20:00:27.000000000 +0200
+@@ -199,6 +199,11 @@
+     "_NET_WM_WINDOW_TYPE_SPLASH\0"
+     "_NET_WM_WINDOW_TYPE_TOOLBAR\0"
+     "_NET_WM_WINDOW_TYPE_UTILITY\0"
++    "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU\0"
++    "_NET_WM_WINDOW_TYPE_POPUP_MENU\0"
++    "_NET_WM_WINDOW_TYPE_COMBO\0"
++    "_NET_WM_WINDOW_TYPE_DND\0"
++    "_NET_WM_WINDOW_TYPE_TOOLTIP\0"
+ 
+     "_KDE_NET_WM_FRAME_STRUT\0"
+ 
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qdnd_x11.cpp qt4-x11-4.3.0/src/gui/kernel/qdnd_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qdnd_x11.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qdnd_x11.cpp	2007-06-26 20:00:27.000000000 +0200
+@@ -254,6 +254,7 @@
+         QWidget(QApplication::desktop()->screen(screen),
+                 Qt::Tool | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint)
+     {
++    x11SetWindowType( X11WindowTypeDND );
+     }
+ 
+     void setPixmap(const QPixmap &pm)
+@@ -1392,6 +1393,7 @@
+         // recreate the pixmap on the new screen...
+         delete xdnd_data.deco;
+         xdnd_data.deco = new QShapedPixmapWidget(screen);
++        xdnd_data.deco->x11SetWindowTransient( object->source()->topLevelWidget());
+         if (!QWidget::mouseGrabber()) {
+             updatePixmap();
+             xdnd_data.deco->grabMouse();
+@@ -1852,6 +1854,7 @@
+     object = o;
+     object->d_func()->target = 0;
+     xdnd_data.deco = new QShapedPixmapWidget();
++    xdnd_data.deco->x11SetWindowTransient( object->source()->topLevelWidget());
+ 
+     willDrop = false;
+ 
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qt_x11_p.h qt4-x11-4.3.0/src/gui/kernel/qt_x11_p.h
+--- qt4-x11-4.3.0~/src/gui/kernel/qt_x11_p.h	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qt_x11_p.h	2007-06-26 20:00:27.000000000 +0200
+@@ -514,6 +514,11 @@
+         _NET_WM_WINDOW_TYPE_SPLASH,
+         _NET_WM_WINDOW_TYPE_TOOLBAR,
+         _NET_WM_WINDOW_TYPE_UTILITY,
++        _NET_WM_WINDOW_TYPE_DROPDOWN_MENU,
++        _NET_WM_WINDOW_TYPE_POPUP_MENU,
++        _NET_WM_WINDOW_TYPE_COMBO,
++        _NET_WM_WINDOW_TYPE_DND,
++        _NET_WM_WINDOW_TYPE_TOOLTIP,
+ 
+         _KDE_NET_WM_FRAME_STRUT,
+ 
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qtooltip.cpp qt4-x11-4.3.0/src/gui/kernel/qtooltip.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qtooltip.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qtooltip.cpp	2007-06-26 20:00:27.000000000 +0200
+@@ -134,6 +134,9 @@
+     setMouseTracking(true);
+     fadingOut = false;
+     reuseTip(text);
++#ifdef Q_WS_X11
++    x11SetWindowType( X11WindowTypeTooltip );
++#endif
+ }
+ 
+ void QTipLabel::restartHideTimer()
+@@ -351,6 +354,9 @@
+             // that is showing (removes flickering)
+             if (QTipLabel::instance->tipChanged(pos, text, w)){
+                 QTipLabel::instance->reuseTip(text);
++#ifdef Q_WS_X11
++                QTipLabel::instance->x11SetWindowTransient( w->topLevelWidget());
++#endif
+                 QTipLabel::instance->setTipRect(w, rect);
+                 QTipLabel::instance->placeTip(pos, w);
+             }
+@@ -360,6 +366,9 @@
+ 
+     if (!text.isEmpty()){ // no tip can be reused, create new tip:
+         new QTipLabel(pos, text, w); // sets QTipLabel::instance to itself
++#ifdef Q_WS_X11
++        QTipLabel::instance->x11SetWindowTransient( w->topLevelWidget());
++#endif
+         QTipLabel::instance->setTipRect(w, rect);
+         QTipLabel::instance->placeTip(pos, w);
+         QTipLabel::instance->setObjectName(QLatin1String("qtooltip_label"));
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qwidget.h qt4-x11-4.3.0/src/gui/kernel/qwidget.h
+--- qt4-x11-4.3.0~/src/gui/kernel/qwidget.h	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qwidget.h	2007-06-26 20:00:27.000000000 +0200
+@@ -339,6 +339,19 @@
+ 
+     void setWindowOpacity(qreal level);
+     qreal windowOpacity() const;
++#if defined(Q_WS_X11)
++    enum X11WindowType {
++        X11WindowTypeSelect,
++        X11WindowTypeCombo,
++        X11WindowTypeDND,
++        X11WindowTypeTooltip,
++        X11WindowTypeMenu, // torn-off
++        X11WindowTypeDropdown,
++        X11WindowTypePopup
++    };
++    void x11SetWindowType( X11WindowType type = X11WindowTypeSelect );
++    void x11SetWindowTransient( QWidget* parent );
++#endif
+ 
+     bool isWindowModified() const;
+ #ifndef QT_NO_TOOLTIP
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qwidget_x11.cpp qt4-x11-4.3.0/src/gui/kernel/qwidget_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qwidget_x11.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qwidget_x11.cpp	2007-06-26 20:00:27.000000000 +0200
+@@ -510,10 +510,6 @@
+     }
+ #endif // QT_NO_XRENDER
+ 
+-    // NET window types
+-    long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 };
+-    int curr_wintype = 0;
+-
+     QtMWMHints mwmhints;
+     mwmhints.flags = 0L;
+     mwmhints.functions = MWM_FUNC_ALL;
+@@ -524,15 +520,11 @@
+     if (topLevel) {
+         ulong wsa_mask = 0;
+         if (type == Qt::SplashScreen) {
+-            net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_SPLASH);
+         } else { //       if (customize) {
+             mwmhints.decorations = 0L;
+             mwmhints.flags |= MWM_HINTS_DECORATIONS;
+ 
+-            if (flags & Qt::FramelessWindowHint) {
+-                // override netwm type - quick and easy for KDE noborder
+-                net_wintypes[curr_wintype++] = ATOM(_KDE_NET_WM_WINDOW_TYPE_OVERRIDE);
+-            } else {
++            if ((flags & Qt::FramelessWindowHint) == 0 ) {
+                 mwmhints.decorations |= MWM_DECOR_BORDER;
+                 mwmhints.decorations |= MWM_DECOR_RESIZEH;
+ 
+@@ -554,22 +546,6 @@
+             wsa.save_under = True;
+             wsa_mask |= CWSaveUnder;
+         }
+-        // ### need a better way to do this
+-        if (q->inherits("QMenu")) {
+-            // menu netwm type
+-            net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_MENU);
+-        } else if (q->inherits("QToolBar")) {
+-            // toolbar netwm type
+-            net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_TOOLBAR);
+-        } else if (type == Qt::Tool || type == Qt::Drawer) {
+-            // utility netwm type
+-            net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_UTILITY);
+-        }
+-
+-        if (dialog) // dialog netwm type
+-            net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_DIALOG);
+-        // normal netwm type - default
+-        net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_NORMAL);
+ 
+         if (flags & Qt::X11BypassWindowManagerHint) {
+             wsa.override_redirect = True;
+@@ -588,6 +564,7 @@
+         wsa.save_under = True;
+         XChangeWindowAttributes(dpy, id, CWOverrideRedirect | CWSaveUnder,
+                                 &wsa);
++        q->x11SetWindowType();
+     } else if (topLevel && !desktop) {        // top-level widget
+         if (!X11->wm_client_leader)
+             create_wm_client_leader();
+@@ -632,12 +609,7 @@
+         // set mwm hints
+         SetMWMHints(dpy, id, mwmhints);
+ 
+-        // set _NET_WM_WINDOW_TYPE
+-        if (curr_wintype > 0)
+-            XChangeProperty(dpy, id, ATOM(_NET_WM_WINDOW_TYPE), XA_ATOM, 32, PropModeReplace,
+-                            (unsigned char *) net_wintypes, curr_wintype);
+-        else
+-            XDeleteProperty(dpy, id, ATOM(_NET_WM_WINDOW_TYPE));
++        q->x11SetWindowType(); // set _NET_WM_WINDOW_TYPE
+ 
+         // set _NET_WM_PID
+         long curr_pid = getpid();
+@@ -733,6 +705,63 @@
+         q->setAttribute(Qt::WA_OutsideWSRange, true);
+ }
+ 
++// Sets the EWMH (netwm) window type. Needed as a separate function
++// because create() may be too soon in some cases.
++void QWidget::x11SetWindowType( X11WindowType type )
++{
++    Display* dpy = X11->display;
++    // NET window types
++    long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 };
++    int curr_wintype = 0;
++    if( type == X11WindowTypeSelect ) {
++        if ( windowType() == Qt::SplashScreen ) {
++            net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_SPLASH);
++        } else if (inherits("QToolBar")) {
++	    // toolbar netwm type
++	    net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_TOOLBAR);
++        } else if (windowType() == Qt::Tool || windowType() == Qt::Drawer) {
++	    // utility netwm type
++	    net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_UTILITY);
++        } else if (windowType() == Qt::Dialog || windowType() == Qt::Sheet
++            || (windowFlags() & Qt::MSWindowsFixedSizeDialogHint)) {
++            // dialog netwm type
++            net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_DIALOG);
++        }
++    } else if( type == X11WindowTypeCombo ) {
++        // combo netwm type
++	net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_COMBO);
++    } else if( type == X11WindowTypeDND ) {
++        // dnd netwm type
++    	net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_DND);
++    } else if( type == X11WindowTypeDropdown ) {
++        // dropdown netwm type
++    	net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_DROPDOWN_MENU);
++    } else if( type == X11WindowTypePopup ) {
++        // popup netwm type
++    	net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_POPUP_MENU);
++    } else if( type == X11WindowTypeMenu ) {
++        // menu netwm type
++	net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_MENU);
++    } else if( type == X11WindowTypeTooltip ) {
++        // tooltip netwm type
++    	net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_TOOLTIP);
++    }
++
++    // normal netwm type - default
++    net_wintypes[curr_wintype++] = ATOM(_NET_WM_WINDOW_TYPE_NORMAL);
++    // set _NET_WM_WINDOW_TYPE
++    if (curr_wintype > 0)
++        XChangeProperty(dpy, winId(), ATOM(_NET_WM_WINDOW_TYPE), XA_ATOM, 32, PropModeReplace,
++			(unsigned char *) net_wintypes, curr_wintype);
++    else
++        XDeleteProperty(dpy, winId(), ATOM(_NET_WM_WINDOW_TYPE));
++}
++
++void QWidget::x11SetWindowTransient( QWidget* parent )
++{
++    XSetTransientForHint( X11->display, winId(), parent->window()->winId());
++}
++
+ /*!
+     Frees up window system resources. Destroys the widget window if \a
+     destroyWindow is true.
+diff -urNad qt4-x11-4.3.0~/src/gui/widgets/qcombobox.cpp qt4-x11-4.3.0/src/gui/widgets/qcombobox.cpp
+--- qt4-x11-4.3.0~/src/gui/widgets/qcombobox.cpp	2007-05-25 15:24:15.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/widgets/qcombobox.cpp	2007-06-26 20:00:27.000000000 +0200
+@@ -370,6 +370,10 @@
+         layout->insertSpacing(0, verticalMargin);
+         layout->addSpacing(verticalMargin);
+     }
++#ifdef Q_WS_X11
++    x11SetWindowType( X11WindowTypeCombo );
++    x11SetWindowTransient( combo->topLevelWidget());
++#endif
+ }
+ 
+ void QComboBoxPrivateContainer::scrollItemView(int action)
+diff -urNad qt4-x11-4.3.0~/src/gui/widgets/qmenu.cpp qt4-x11-4.3.0/src/gui/widgets/qmenu.cpp
+--- qt4-x11-4.3.0~/src/gui/widgets/qmenu.cpp	2007-05-25 15:24:16.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/widgets/qmenu.cpp	2007-06-26 20:00:27.000000000 +0200
+@@ -84,6 +84,9 @@
+     QTornOffMenu(QMenu *p) : QMenu(*(new QTornOffMenuPrivate(p)))
+     {
+         setParent(p, Qt::Window | Qt::Tool);
++#ifdef Q_WS_X11
++        x11SetWindowType( X11WindowTypeMenu );
++#endif
+ 	setAttribute(Qt::WA_DeleteOnClose, true);
+         setWindowTitle(p->windowTitle());
+         setEnabled(p->isEnabled());
+@@ -130,6 +133,9 @@
+     }
+     defaultMenuAction = menuAction = new QAction(q);
+     menuAction->d_func()->menu = q;
++#ifdef Q_WS_X11
++    q->x11SetWindowType( QWidget::X11WindowTypePopup );
++#endif
+ }
+ 
+ //Windows and KDE allows menus to cover the taskbar, while GNOME and Mac don't
+@@ -1611,6 +1617,32 @@
+     }
+     setGeometry(QRect(pos, size));
+ 
++#ifdef Q_WS_X11
++    QWidget* top = this;
++    for(;;) {
++        if( QMenu* m = qobject_cast< QMenu* >( top )) {
++            if( m->d_func()->causedPopup.widget == NULL )
++                break; // --->
++            top = m->d_func()->causedPopup.widget;
++        } else
++            break; // -->
++    }
++    if( QMenu* m = qobject_cast< QMenu* >( top ))
++        x11SetWindowType( X11WindowTypePopup );
++    else
++        x11SetWindowType( X11WindowTypeDropdown );
++    // hackish ... try to find the main window related to this popup
++    QWidget* parent = d_func()->causedPopup.widget;
++    if( parent == NULL )
++        parent = parentWidget() ? parentWidget()->topLevelWidget() : NULL;
++    if( parent == NULL )
++        parent = QApplication::widgetAt( pos );
++    if( parent == NULL )
++        parent = qApp->activeWindow();
++    if( parent != NULL )
++        x11SetWindowTransient( parent );
++#endif
++
+ #ifndef QT_NO_EFFECTS
+     int hGuess = qApp->layoutDirection() == Qt::RightToLeft ? QEffects::LeftScroll : QEffects::RightScroll;
+     int vGuess = QEffects::DownScroll;
+@@ -1807,6 +1839,9 @@
+     if (QMenuBar *mb = qobject_cast<QMenuBar*>(d->causedPopup.widget))
+         mb->d_func()->setCurrentAction(0);
+ #endif
++#ifdef Q_WS_X11
++    x11SetWindowType( X11WindowTypePopup ); // reset
++#endif
+     d->mouseDown = 0;
+     d->hasHadMouse = false;
+     d->causedPopup.widget = 0;

Added: trunk/packages/qt4-x11/debian/patches/00_0179-transient-hack.dpatch
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00_0179-transient-hack.dpatch	                        (rev 0)
+++ trunk/packages/qt4-x11/debian/patches/00_0179-transient-hack.dpatch	2007-06-26 19:02:24 UTC (rev 6594)
@@ -0,0 +1,22 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 00_0179-transient-hack.dpatch by Lubos Lunak <l.lunak at kde.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: qt-bugs issue : 166027
+## DP: This patch is just a hackish workaround that makes setting of WM_TRANSIENT_FOR
+## DP: work with some window types (needed basically by the 0178 patch).
+## DP: It is not a proper solution, waiting for TT to come up with something.
+
+ at DPATCH@
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qwidget_x11.cpp qt4-x11-4.3.0/src/gui/kernel/qwidget_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qwidget_x11.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qwidget_x11.cpp	2007-06-26 20:01:42.000000000 +0200
+@@ -1569,7 +1569,7 @@
+         do_size_hints(q, extra);
+ 
+         // udpate WM_TRANSIENT_FOR
+-        if (isTransient(q)) {
++        if (isTransient(q) && !( q->windowFlags() & Qt::X11BypassWindowManagerHint)) {
+             QWidget *p = q->parentWidget();
+             if (p)
+                 p = p->window();

Added: trunk/packages/qt4-x11/debian/patches/00_0180-window-role.dpatch
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00_0180-window-role.dpatch	                        (rev 0)
+++ trunk/packages/qt4-x11/debian/patches/00_0180-window-role.dpatch	2007-06-26 19:02:24 UTC (rev 6594)
@@ -0,0 +1,92 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 00_0180-window-role.dpatch by Lubos Lunak <l.lunak at kde.org
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: several problems with Qt's support for the WM_WINDOW_ROLE property.
+
+ at DPATCH@
+diff -urNad qt4-x11-4.3.0~/src/corelib/kernel/qobject.cpp qt4-x11-4.3.0/src/corelib/kernel/qobject.cpp
+--- qt4-x11-4.3.0~/src/corelib/kernel/qobject.cpp	2007-05-25 15:24:10.000000000 +0200
++++ qt4-x11-4.3.0/src/corelib/kernel/qobject.cpp	2007-06-26 20:02:32.000000000 +0200
+@@ -994,9 +994,18 @@
+ {
+     Q_D(QObject);
+     d->objectName = name;
++#if defined(Q_WS_X11)
++    d->checkWindowRole();
++#endif
+ }
+ 
+ 
++#if defined(Q_WS_X11)
++void QObjectPrivate::checkWindowRole()
++{
++}
++#endif
++
+ #ifdef QT3_SUPPORT
+ /*! \internal
+     QObject::child is compat but needs to call itself recursively,
+diff -urNad qt4-x11-4.3.0~/src/corelib/kernel/qobject_p.h qt4-x11-4.3.0/src/corelib/kernel/qobject_p.h
+--- qt4-x11-4.3.0~/src/corelib/kernel/qobject_p.h	2007-05-25 15:24:10.000000000 +0200
++++ qt4-x11-4.3.0/src/corelib/kernel/qobject_p.h	2007-06-26 20:02:32.000000000 +0200
+@@ -124,6 +124,9 @@
+     mutable quint32 connectedSignals;
+ 
+     QString objectName;
++#if defined(Q_WS_X11)
++    virtual void checkWindowRole();
++#endif
+ };
+ 
+ class QSemaphore;
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qwidget_p.h qt4-x11-4.3.0/src/gui/kernel/qwidget_p.h
+--- qt4-x11-4.3.0~/src/gui/kernel/qwidget_p.h	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qwidget_p.h	2007-06-26 20:02:32.000000000 +0200
+@@ -286,6 +286,7 @@
+ 
+ #if defined(Q_WS_X11)
+     void setWindowRole(const char *role);
++    virtual void checkWindowRole();
+     void sendStartupMessage(const char *message) const;
+ #endif
+ 
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qwidget_x11.cpp qt4-x11-4.3.0/src/gui/kernel/qwidget_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qwidget_x11.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qwidget_x11.cpp	2007-06-26 20:02:32.000000000 +0200
+@@ -647,11 +647,8 @@
+         // when we create a toplevel widget, the frame strut should be dirty
+         data.fstrut_dirty = 1;
+ 
+-        // declare the widget's object name as window role
+-        QByteArray objName = q->objectName().toLocal8Bit();
+-        XChangeProperty(dpy, id,
+-                        ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace,
+-                        (unsigned char *)objName.constData(), objName.length());
++        // declare the widget's object name as window role if not set
++        setWindowRole( !q->windowRole().isEmpty() ? q->windowRole().toUtf8() : q->objectName().toUtf8());
+ 
+         // set client leader property
+         XChangeProperty(dpy, id, ATOM(WM_CLIENT_LEADER),
+@@ -2588,12 +2585,20 @@
+ void QWidgetPrivate::setWindowRole(const char *role)
+ {
+     Q_Q(QWidget);
+-    Q_ASSERT(q->testAttribute(Qt::WA_WState_Created));
++    if( !q->testAttribute(Qt::WA_WState_Created))
++        return;
+     XChangeProperty(X11->display, q->internalWinId(),
+                     ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace,
+                     (unsigned char *)role, qstrlen(role));
+ }
+ 
++void QWidgetPrivate::checkWindowRole()
++{
++    Q_Q(QWidget);
++    if( q->windowRole().isEmpty())
++        setWindowRole( objectName.toUtf8());
++}
++
+ Q_GLOBAL_STATIC(QX11PaintEngine, qt_widget_paintengine)
+ QPaintEngine *QWidget::paintEngine() const
+ {

Added: trunk/packages/qt4-x11/debian/patches/00_0181-qdnd-x11-fix.dpatch
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00_0181-qdnd-x11-fix.dpatch	                        (rev 0)
+++ trunk/packages/qt4-x11/debian/patches/00_0181-qdnd-x11-fix.dpatch	2007-06-26 19:02:24 UTC (rev 6594)
@@ -0,0 +1,94 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 00_0181-qdnd-x11-fix.diff.dpatch by Matthias Kretz <kretz at kde.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: qt-bugs issue : 166518
+## Trolltech task ID : 167509
+## DP: This patch makes the algorithm look at _all_ widgets that contain the QPoint.
+
+ at DPATCH@
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qdnd_x11.cpp qt4-x11-4.3.0/src/gui/kernel/qdnd_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qdnd_x11.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qdnd_x11.cpp	2007-06-26 20:05:15.000000000 +0200
+@@ -42,6 +42,7 @@
+ #include "qdebug.h"
+ #include "qimagewriter.h"
+ #include "qbuffer.h"
++#include "qstack.h"
+ 
+ #include "qdnd_p.h"
+ #include "qt_x11_p.h"
+@@ -668,7 +669,44 @@
+ }
+ 
+ 
+-static QWidget *find_child(QWidget *tlw, QPoint & p)
++static QWidget *find_next_child(QWidget *child, QPoint &p, QStack<int> &chosenLine)
++{
++    p = child->mapToParent(p);
++    QWidget *widget = child->parentWidget();
++    if (!widget) {
++        return widget;
++    }
++
++    bool done = false;
++    bool backwards = true;
++    while (!done) {
++        done = true;
++        if (((QExtraWidget*)widget)->extraData() &&
++             ((QExtraWidget*)widget)->extraData()->xDndProxy != 0)
++            break; // stop searching for widgets under the mouse cursor if found widget is a proxy.
++        QObjectList children = widget->children();
++        if (!chosenLine.isEmpty() && !children.isEmpty()) {
++            for(int i = backwards ? chosenLine.pop() : children.size(); i > 0;) {
++                --i;
++                QWidget *w = qobject_cast<QWidget *>(children.at(i));
++                if (!w)
++                    continue;
++                if (w->isVisible() &&
++                     w->geometry().contains(p) &&
++                     !w->isWindow()) {
++                    widget = w;
++                    done = false;
++                    backwards = false;
++                    p = widget->mapFromParent(p);
++                    chosenLine << i;
++                    break;
++                }
++            }
++        }
++    }
++    return widget;
++}
++static QWidget *find_child(QWidget *tlw, QPoint & p, QStack<int> &chosenLine)
+ {
+     QWidget *widget = tlw;
+ 
+@@ -692,6 +730,7 @@
+                     widget = w;
+                     done = false;
+                     p = widget->mapFromParent(p);
++                    chosenLine.push(i);
+                     break;
+                 }
+             }
+@@ -780,7 +819,8 @@
+     const unsigned long *l = (const unsigned long *)xe->xclient.data.l;
+ 
+     QPoint p((l[2] & 0xffff0000) >> 16, l[2] & 0x0000ffff);
+-    QWidget * c = find_child(w, p); // changes p to to c-local coordinates
++    QStack<int> chosenLine;
++    QWidget * c = find_child(w, p, chosenLine); // changes p to to c-local coordinates
+ 
+     if (!passive && checkEmbedded(c, xe))
+         return;
+@@ -814,8 +854,7 @@
+ 
+     if (!passive) { // otherwise just reject
+         while (c && !c->acceptDrops() && !c->isWindow()) {
+-            p = c->mapToParent(p);
+-            c = c->parentWidget();
++            c = find_next_child(c, p, chosenLine);
+         }
+         QWidget *target_widget = c && c->acceptDrops() ? c : 0;
+ 

Added: trunk/packages/qt4-x11/debian/patches/00_0182-argb-visuals-default.dpatch
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00_0182-argb-visuals-default.dpatch	                        (rev 0)
+++ trunk/packages/qt4-x11/debian/patches/00_0182-argb-visuals-default.dpatch	2007-06-26 19:02:24 UTC (rev 6594)
@@ -0,0 +1,135 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 00_0182-argb-visuals-default.diff.dpatch by Zack Rusin <zrusin at trolltech.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Trolltech task ID : 120338
+## DP: Qt handling argb visuals on X11. in Qt 4.4 already.
+
+ at DPATCH@
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qapplication_x11.cpp qt4-x11-4.3.0/src/gui/kernel/qapplication_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qapplication_x11.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qapplication_x11.cpp	2007-06-26 20:05:47.000000000 +0200
+@@ -1547,6 +1547,30 @@
+                            / (DisplayHeightMM(X11->display, s)*10);
+         }
+ 
++
++#ifndef QT_NO_XRENDER
++        int xrender_eventbase,  xrender_errorbase;
++        // See if XRender is supported on the connected display
++        if (XQueryExtension(X11->display, "RENDER", &X11->xrender_major,
++                            &xrender_eventbase, &xrender_errorbase)
++            && XRenderQueryExtension(X11->display, &xrender_eventbase,
++                                     &xrender_errorbase)) {
++            // Check the version as well - we need v0.4 or higher
++            int major = 0;
++            int minor = 0;
++            XRenderQueryVersion(X11->display, &major, &minor);
++            if (qgetenv("QT_X11_NO_XRENDER").isNull()) {
++                X11->use_xrender = (major >= 0 && minor >= 5);
++                X11->xrender_version = major*100+minor;
++                // workaround for broken XServer on Ubuntu Breezy (6.8 compiled with 7.0
++                // protocol headers)
++                if (X11->xrender_version == 10
++                    && VendorRelease(X11->display) < 60900000
++                    && QByteArray(ServerVendor(X11->display)).contains("X.Org"))
++                    X11->xrender_version = 9;
++            }
++        }
++#endif // QT_NO_XRENDER
+         QColormap::initialize();
+ 
+         // Support protocols
+@@ -1570,30 +1594,15 @@
+ #endif // QT_NO_XRANDR
+ 
+ #ifndef QT_NO_XRENDER
+-        int xrender_eventbase,  xrender_errorbase;
+-        // See if XRender is supported on the connected display
+-        if (XQueryExtension(X11->display, "RENDER", &X11->xrender_major,
+-                            &xrender_eventbase, &xrender_errorbase)
+-            && XRenderQueryExtension(X11->display, &xrender_eventbase,
+-                                     &xrender_errorbase)) {
++        if (X11->use_xrender) {
+             // XRender is supported, let's see if we have a PictFormat for the
+             // default visual
+             XRenderPictFormat *format =
+                 XRenderFindVisualFormat(X11->display,
+                                         (Visual *) QX11Info::appVisual(X11->defaultScreen));
+-            // Check the version as well - we need v0.4 or higher
+-            int major = 0;
+-            int minor = 0;
+-            XRenderQueryVersion(X11->display, &major, &minor);
+-            if (qgetenv("QT_X11_NO_XRENDER").isNull() && format != 0) {
+-                X11->use_xrender = (major >= 0 && minor >= 5);
+-                X11->xrender_version = major*100+minor;
+-                // workaround for broken XServer on Ubuntu Breezy (6.8 compiled with 7.0
+-                // protocol headers)
+-                if (X11->xrender_version == 10
+-                    && VendorRelease(X11->display) < 60900000
+-                    && QByteArray(ServerVendor(X11->display)).contains("X.Org"))
+-                    X11->xrender_version = 9;
++
++            if (!format) {
++                X11->use_xrender = false;
+             }
+         }
+ #endif // QT_NO_XRENDER
+diff -urNad qt4-x11-4.3.0~/src/gui/kernel/qwidget_x11.cpp qt4-x11-4.3.0/src/gui/kernel/qwidget_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/kernel/qwidget_x11.cpp	2007-05-25 15:24:19.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/kernel/qwidget_x11.cpp	2007-06-26 20:05:47.000000000 +0200
+@@ -503,7 +503,7 @@
+         picture = 0;
+     }
+ 
+-    if (X11->use_xrender) {
++    if (X11->use_xrender && !desktop) {
+         XRenderPictFormat *format = XRenderFindVisualFormat(dpy, (Visual *) xinfo.visual());
+         if (format)
+             picture = XRenderCreatePicture(dpy, id, format, 0, 0);
+diff -urNad qt4-x11-4.3.0~/src/gui/painting/qcolormap_x11.cpp qt4-x11-4.3.0/src/gui/painting/qcolormap_x11.cpp
+--- qt4-x11-4.3.0~/src/gui/painting/qcolormap_x11.cpp	2007-05-25 15:24:12.000000000 +0200
++++ qt4-x11-4.3.0/src/gui/painting/qcolormap_x11.cpp	2007-06-26 20:05:47.000000000 +0200
+@@ -386,7 +386,33 @@
+         } else if (!X11->custom_cmap) {
+             XStandardColormap *stdcmap = 0;
+             int ncmaps = 0;
+-            if (XGetRGBColormaps(display, RootWindow(display, i),
++
++            bool foundArgbVisual = false;
++#ifndef QT_NO_XRENDER
++            if (X11->use_xrender) {
++                int nvi;
++                XVisualInfo templ;
++                templ.screen  = i;
++                templ.depth   = 32;
++                templ.c_class = TrueColor;
++                XVisualInfo *xvi = XGetVisualInfo(X11->display, VisualScreenMask |
++                                                  VisualDepthMask |
++                                                  VisualClassMask, &templ, &nvi);
++                for (int idx = 0; idx < nvi; ++idx) {
++                    XRenderPictFormat *format = XRenderFindVisualFormat(X11->display,
++                                                                        xvi[idx].visual);
++                    if (format->type == PictTypeDirect && format->direct.alphaMask) {
++                        d->visual = xvi[idx].visual;
++                        d->depth = 32;
++                        d->defaultVisual = false;
++                        foundArgbVisual = true;
++                        break;
++                    }
++                }
++            }
++#endif
++            if (!foundArgbVisual &&
++                XGetRGBColormaps(display, RootWindow(display, i),
+                                  &stdcmap, &ncmaps, XA_RGB_DEFAULT_MAP)) {
+                 if (stdcmap) {
+                     for (int c = 0; c < ncmaps; ++c) {
+@@ -444,7 +470,6 @@
+                 }
+             }
+         }
+-
+         if (!use_stdcmap) {
+             switch (d->visual->c_class) {
+             case StaticGray:

Modified: trunk/packages/qt4-x11/debian/patches/00list
===================================================================
--- trunk/packages/qt4-x11/debian/patches/00list	2007-06-26 18:36:09 UTC (rev 6593)
+++ trunk/packages/qt4-x11/debian/patches/00list	2007-06-26 19:02:24 UTC (rev 6594)
@@ -2,6 +2,11 @@
 00_0167-fix-group-reading
 00_0175-fix-s390-qatomic
 00_0176-coverity-fixes
+00_0178-transparency-window-types
+00_0179-transient-hack
+00_0180-window-role
+00_0181-qdnd-x11-fix
+00_0182-argb-visuals-default
 01_qmake_for_debian
 02_launch_assistant-qt4
 03_launch_moc-qt4




More information about the pkg-kde-commits mailing list