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