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

Fathi Boudra fabo at alioth.debian.org
Tue Jan 15 16:45:57 UTC 2008


Author: fabo
Date: 2008-01-15 16:45:57 +0000 (Tue, 15 Jan 2008)
New Revision: 8970

Modified:
   trunk/packages/qt4-x11/debian/changelog
   trunk/packages/qt4-x11/debian/patches/0172-prefer-xrandr-over-xinerama.diff
   trunk/packages/qt4-x11/debian/patches/series
Log:
* Refresh and enable 0172-prefer-xrandr-over-xinerama patch.


Modified: trunk/packages/qt4-x11/debian/changelog
===================================================================
--- trunk/packages/qt4-x11/debian/changelog	2008-01-15 16:21:54 UTC (rev 8969)
+++ trunk/packages/qt4-x11/debian/changelog	2008-01-15 16:45:57 UTC (rev 8970)
@@ -2,6 +2,7 @@
 
   * Add 0205-fast-qpixmap-fill qt-copy patch:
     Fix a performance issue in QPixmap::fill()
+  * Refresh and enable 0172-prefer-xrandr-over-xinerama patch.
 
  -- Fathi Boudra <fabo at debian.org>  Wed, 02 Jan 2008 09:45:31 +0100
 

Modified: trunk/packages/qt4-x11/debian/patches/0172-prefer-xrandr-over-xinerama.diff
===================================================================
--- trunk/packages/qt4-x11/debian/patches/0172-prefer-xrandr-over-xinerama.diff	2008-01-15 16:21:54 UTC (rev 8969)
+++ trunk/packages/qt4-x11/debian/patches/0172-prefer-xrandr-over-xinerama.diff	2008-01-15 16:45:57 UTC (rev 8970)
@@ -13,30 +13,55 @@
 given that qt can't deal with dynamically changing number of screens,
 this is for "when I have time".
 
+also includes a race fix that can cause the whole KDE session to crash
+when you resize the screen.
+
 --- a/src/gui/kernel/qdesktopwidget_x11.cpp
 +++ b/src/gui/kernel/qdesktopwidget_x11.cpp
-@@ -140,7 +140,8 @@
+@@ -122,13 +122,16 @@
+     int unused;
+     use_xinerama = (XineramaQueryExtension(X11->display, &unused, &unused) && XineramaIsActive(X11->display));
  
+-    if (use_xinerama) {
++    if (use_xinerama)
+         xinerama_screeninfo =
+             XineramaQueryScreens(X11->display, &screenCount);
++
++    if (use_xinerama && xinerama_screeninfo) {
+         defaultScreen = 0;
+     } else
+ #endif // QT_NO_XINERAMA
+     {
++        use_xinerama = false;
+         defaultScreen = DefaultScreen(X11->display);
+         screenCount = ScreenCount(X11->display);
+     }
+@@ -139,8 +142,8 @@
+     workareas = new QRect[screenCount];
+ 
      // get the geometry of each screen
-     int i, x, y, w, h;
+-    int i, x, y, w, h;
 -    for (i = 0; i < screenCount; i++) {
-+    int itScreenCount = screenCount;
-+    for (i = 0; i < itScreenCount; i++) {
++    int i, j, x, y, w, h;
++    for (i = 0, j = 0; i < screenCount; i++, j++) {
  
  #ifndef QT_NO_XINERAMA
          if (use_xinerama) {
-@@ -158,10 +159,19 @@
+@@ -157,11 +160,21 @@
+                 h = HeightOfScreen(ScreenOfDisplay(X11->display, i));
              }
  
-         rects[i].setRect(x, y, w, h);
-+        if (i > 0 && rects[i-1].intersects(rects[i]) &&
-+                (rects[i].width()*rects[i].height()) >
-+                (rects[i-1].width()*rects[i-1].height())) {
-+            rects[i-1] = rects[i];
-+           screenCount--;
+-        rects[i].setRect(x, y, w, h);
++        rects[j].setRect(x, y, w, h);
++        if (j > 0 && rects[j-1].intersects(rects[j]) &&
++                (rects[j].width()*rects[j].height()) >
++                (rects[j-1].width()*rects[j-1].height())) {
++            rects[j-1] = rects[j];
++           j--;
 +        }
          workareas[i] = QRect();
      }
++    screenCount = j;
  
  #ifndef QT_NO_XINERAMA
 +    if (use_xinerama && screenCount == 1)

Modified: trunk/packages/qt4-x11/debian/patches/series
===================================================================
--- trunk/packages/qt4-x11/debian/patches/series	2008-01-15 16:21:54 UTC (rev 8969)
+++ trunk/packages/qt4-x11/debian/patches/series	2008-01-15 16:45:57 UTC (rev 8970)
@@ -1,6 +1,6 @@
 # qt-copy patches
 0167-fix-group-reading.diff
-#0172-prefer-xrandr-over-xinerama.diff
+0172-prefer-xrandr-over-xinerama.diff
 0175-fix-s390-qatomic.diff
 0176-coverity-fixes.diff
 0178-transparency-window-types.diff




More information about the pkg-kde-commits mailing list