rev 9155 - in branches/etch/packages/kdelibs/debian: . patches

Fathi Boudra fabo at alioth.debian.org
Sat Jan 26 14:58:11 UTC 2008


Author: fabo
Date: 2008-01-26 14:58:11 +0000 (Sat, 26 Jan 2008)
New Revision: 9155

Added:
   branches/etch/packages/kdelibs/debian/patches/01_qxembed-create-fix_branch_r763109.diff
Modified:
   branches/etch/packages/kdelibs/debian/changelog
   branches/etch/packages/kdelibs/debian/control
Log:
Prepare next stable release update:
* Add patch to support latest flash plugin. It consists of 2 parts patches.
  This is the first part. Second part is in kdebase.


Modified: branches/etch/packages/kdelibs/debian/changelog
===================================================================
--- branches/etch/packages/kdelibs/debian/changelog	2008-01-26 14:20:50 UTC (rev 9154)
+++ branches/etch/packages/kdelibs/debian/changelog	2008-01-26 14:58:11 UTC (rev 9155)
@@ -1,3 +1,10 @@
+kdelibs (4:3.5.5a.dfsg.1-8etch1) stable; urgency=low
+
+  * Add patch to support latest flash plugin. It consists of 2 parts patches.
+    This is the first part. Second part is in kdebase.
+
+ -- Fathi Boudra <fabo at debian.org>  Sat, 26 Jan 2008 15:27:13 +0100
+
 kdelibs (4:3.5.5a.dfsg.1-8) unstable; urgency=high
 
   * Add patch to fix utf8-parsing vulnerability.

Modified: branches/etch/packages/kdelibs/debian/control
===================================================================
--- branches/etch/packages/kdelibs/debian/control	2008-01-26 14:20:50 UTC (rev 9154)
+++ branches/etch/packages/kdelibs/debian/control	2008-01-26 14:58:11 UTC (rev 9155)
@@ -5,7 +5,9 @@
 Uploaders: Isaac Clerencia <isaac at debian.org>,
  Pierre Habouzit <madcoder at debian.org>,
  Christopher Martin <chrsmrtn at debian.org>,
- Adeodato Simó <dato at net.com.org.es>, Josh Metzler <joshdeb at metzlers.org>
+ Adeodato Simó <dato at net.com.org.es>,
+ Josh Metzler <joshdeb at metzlers.org>,
+ Fathi Boudra <fabo at debian.org>
 Build-Depends: cdbs (>= 0.4.39-0.1), debhelper (>= 5.0.31), autotools-dev,
  binutils (>= 2.14.90.0.7), docbook-to-man, gawk, gettext,
  libart-2.0-dev (>= 2.3.17), libarts1-dev (>= 1.5.0), libacl1-dev,

Added: branches/etch/packages/kdelibs/debian/patches/01_qxembed-create-fix_branch_r763109.diff
===================================================================
--- branches/etch/packages/kdelibs/debian/patches/01_qxembed-create-fix_branch_r763109.diff	                        (rev 0)
+++ branches/etch/packages/kdelibs/debian/patches/01_qxembed-create-fix_branch_r763109.diff	2008-01-26 14:58:11 UTC (rev 9155)
@@ -0,0 +1,179 @@
+#DPATCHLEVEL=0
+--- kdeui/qxembed.cpp	(.../tags/KDE/3.5.5/kdelibs/kdeui)	(revision 763109)
++++ kdeui/qxembed.cpp	(.../branches/KDE/3.5/kdelibs/kdeui)	(revision 763109)
+@@ -136,7 +136,7 @@
+         mapAfterRelease = false;
+         lastPos = QPoint(0,0);
+     }
+-    ~QXEmbedData(){};
++    ~QXEmbedData(){}
+ 
+     bool autoDelete;      // L0101: See L2600
+     bool xplain;          // L0102: See L1100
+@@ -154,7 +154,7 @@
+     {
+     public:
+         QXEmbedAppFilter()  { qApp->installEventFilter( this ); } 
+-        ~QXEmbedAppFilter() { };
++        ~QXEmbedAppFilter() { }
+         bool eventFilter( QObject *, QEvent * );
+     };
+ }
+@@ -973,8 +973,14 @@
+             XWithdrawWindow(qt_xdisplay(), window, qt_xscreen());
+             QApplication::flushX();
+             // L1711: See L1610
+-            while (!wstate_withdrawn(window))
++            for (int i=0; i < 10000; ++i) {
++                if (wstate_withdrawn(window)) {
++                    Window parent = 0;
++                    get_parent(w, &parent);
++                    if (parent == qt_xrootwin()) break;
++                }
+                 USLEEP(1000);
++            }
+         }
+         // L1710: It would be sufficient in principle to reparent
+         //        window w into winId(). Everything else happens in L2020.
+@@ -1007,6 +1013,44 @@
+     }
+ }
+ 
++// When a window is reparented into QXEmbed (or created inside of it), this function
++// sets up the actual embedding.
++void QXEmbed::handleEmbed()
++{
++    // only XEMBED apps can survive crash,
++    // see http://lists.kde.org/?l=kfm-devel&m=106752026501968&w=2
++    if( !d->xplain )
++        XAddToSaveSet( qt_xdisplay(), window );
++    XResizeWindow(qt_xdisplay(), window, width(), height());
++    XMapRaised(qt_xdisplay(), window);
++    // L2024: see L2900.
++    sendSyntheticConfigureNotifyEvent();
++    // L2025: ??? [any idea about drag&drop?] 
++    extraData()->xDndProxy = window;
++    if ( parent() ) {
++        // L2030: embedded window might have new size requirements.
++        //        see L2500, L2520, L2550.
++        QEvent * layoutHint = new QEvent( QEvent::LayoutHint );
++        QApplication::postEvent( parent(), layoutHint );
++    }
++    windowChanged( window );
++    if (d->xplain) {
++        // L2040: Activation has changed. Grab state might change. See L2800.
++        checkGrab();
++        if ( hasFocus() )
++            // L2041: Send fake focus message to inform the client. See L1521.
++            sendFocusMessage(window, XFocusIn, NotifyNormal, NotifyPointer );
++    } else {
++        // L2050: Send XEMBED messages (see L0670, L1312, L1322, L1530)
++        sendXEmbedMessage( window, XEMBED_EMBEDDED_NOTIFY, 0, (long) winId() );
++        if (isActiveWindow())
++            sendXEmbedMessage( window, XEMBED_WINDOW_ACTIVATE);
++        else
++            sendXEmbedMessage( window, XEMBED_WINDOW_DEACTIVATE);
++        if ( hasFocus() )
++            sendXEmbedMessage( window, XEMBED_FOCUS_IN, XEMBED_FOCUS_CURRENT );
++    }
++}
+ 
+ // L1800: Returns the window identifier of the embedded window
+ WId QXEmbed::embeddedWinId() const
+@@ -1045,6 +1089,13 @@
+             emit embeddedWindowDestroyed();
+         }
+         break;
++    case CreateNotify:
++        // A window was created inside of QXEmbed, handle it as embedded
++        if( window == 0 ) { // only one window
++            window = e->xcreatewindow.window;
++            handleEmbed();
++        }
++        break;
+     case ReparentNotify:
+         if ( e->xreparent.window == d->focusProxy->winId() )
+             break; // ignore proxy
+@@ -1060,41 +1111,11 @@
+             if( !d->xplain )
+                 XRemoveFromSaveSet( qt_xdisplay(), window );
+         } else if ( e->xreparent.parent == winId()){
++            if( window == 0 ) // something started embedding from the outside
++                window = e->xreparent.window;
+             // L2020: We got a window. Complete the embedding process.
+-            window = e->xreparent.window;
+-            // only XEMBED apps can survive crash,
+-            // see http://lists.kde.org/?l=kfm-devel&m=106752026501968&w=2
+-            if( !d->xplain )
+-                XAddToSaveSet( qt_xdisplay(), window );
+-            XResizeWindow(qt_xdisplay(), window, width(), height());
+-            XMapRaised(qt_xdisplay(), window);
+-            // L2024: see L2900.
+-            sendSyntheticConfigureNotifyEvent();
+-            // L2025: ??? [any idea about drag&drop?] 
+-            extraData()->xDndProxy = window;
+-            if ( parent() ) {
+-                // L2030: embedded window might have new size requirements.
+-                //        see L2500, L2520, L2550.
+-                QEvent * layoutHint = new QEvent( QEvent::LayoutHint );
+-                QApplication::postEvent( parent(), layoutHint );
+-            }
+-            windowChanged( window );
+-            if (d->xplain) {
+-                // L2040: Activation has changed. Grab state might change. See L2800.
+-                checkGrab();
+-                if ( hasFocus() )
+-                    // L2041: Send fake focus message to inform the client. See L1521.
+-                    sendFocusMessage(window, XFocusIn, NotifyNormal, NotifyPointer );
+-            } else {
+-                // L2050: Send XEMBED messages (see L0670, L1312, L1322, L1530)
+-                sendXEmbedMessage( window, XEMBED_EMBEDDED_NOTIFY, 0, (long) winId() );
+-                if (isActiveWindow())
+-                    sendXEmbedMessage( window, XEMBED_WINDOW_ACTIVATE);
+-                else
+-                    sendXEmbedMessage( window, XEMBED_WINDOW_DEACTIVATE);
+-                if ( hasFocus() )
+-                    sendXEmbedMessage( window, XEMBED_FOCUS_IN, XEMBED_FOCUS_CURRENT );
+-            }
++            if( e->xreparent.window == window )
++                handleEmbed();
+         }
+         break;
+     case ButtonPress:
+@@ -1325,13 +1346,14 @@
+     //        See http://lists.kde.org/?l=kfm-devel&m=107090222032378
+     QPoint globalPos = mapToGlobal(QPoint(0,0));
+     if (window) {
++#if 0
+         XConfigureEvent c;
+         memset(&c, 0, sizeof(c));
+         c.type = ConfigureNotify;
+         c.display = qt_xdisplay();
+         c.send_event = True;
+         c.event = window;
+-        c.window = winId();
++        c.window = window;
+         c.x = globalPos.x();
+         c.y = globalPos.y();
+         c.width = width();
+@@ -1340,6 +1362,10 @@
+         c.above = None;
+         c.override_redirect = 0;
+         XSendEvent( qt_xdisplay(), c.event, true, StructureNotifyMask, (XEvent*)&c );
++#endif
++        // Yes, this doesn't make sense at all. See the commit message.
++        XSetWindowBorderWidth( qt_xdisplay(), window, 1 );
++        XSetWindowBorderWidth( qt_xdisplay(), window, 0 );
+     }
+ }
+ 
+--- kdeui/qxembed.h	(.../tags/KDE/3.5.5/kdelibs/kdeui)	(revision 763109)
++++ kdeui/qxembed.h	(.../branches/KDE/3.5/kdelibs/kdeui)	(revision 763109)
+@@ -226,6 +226,7 @@
+     QXEmbedData* d;
+     void checkGrab();
+     void sendSyntheticConfigureNotifyEvent();
++    void handleEmbed();
+ };
+ 
+ 
\ No newline at end of file




More information about the pkg-kde-commits mailing list