sync with kdelibs3/devel, for flash fix, mostly.

* Thu Dec 13 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 3.5.8-19
- flash fix (#410651, kde#132138, kde#146784)
- simplify crystalsvg-icon-theme handling
This commit is contained in:
Rex Dieter 2007-12-14 17:56:17 +00:00
parent de58498a93
commit c77ac417d8
2 changed files with 210 additions and 54 deletions

View File

@ -0,0 +1,114 @@
--- kdeui/qxembed.cpp.sav 2007-10-05 15:24:40.000000000 +0200
+++ kdeui/qxembed.cpp 2007-12-12 15:16:00.000000000 +0100
@@ -1013,6 +1013,44 @@ void QXEmbed::embed(WId w)
}
}
+// 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
@@ -1051,6 +1089,13 @@ bool QXEmbed::x11Event( XEvent* e)
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
@@ -1067,40 +1112,8 @@ bool QXEmbed::x11Event( XEvent* e)
XRemoveFromSaveSet( qt_xdisplay(), window );
} else if ( e->xreparent.parent == winId()){
// 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:
--- kdeui/qxembed.h.sav 2005-09-29 21:32:29.000000000 +0200
+++ kdeui/qxembed.h 2001-01-01 01:01:00.000000000 +0100
@@ -226,6 +226,7 @@ private:
QXEmbedData* d;
void checkGrab();
void sendSyntheticConfigureNotifyEvent();
+ void handleEmbed();
};

View File

@ -19,9 +19,9 @@
%define apidocs 1
Summary: K Desktop Environment - Libraries
Summary: K Desktop Environment 3 - Libraries
Version: 3.5.8
Release: 7%{?dist}
Release: 19%{?dist}
%if 0%{?fedora} > 8
Name: kdelibs3
@ -32,6 +32,7 @@ Name: kdelibs
Epoch: 6
Obsoletes: kdelibs3 = %{version}-%{release}
Provides: kdelibs3 = %{version}-%{release}
%define include_crystalsvg 1
%endif
License: LGPLv2
@ -61,6 +62,7 @@ Patch41: kdelibs-3.5.6-utempter.patch
Patch43: kdelibs-3.5.6-lang.patch
Patch45: kdelibs-3.5.7-autostart.patch
Patch46: kdelibs-3.5.8-kate-vhdl.patch
Patch47: kdelibs-3.5.8-new-flash.patch
# use /etc/kde in addition to /usr/share/config, borrowed from debian
Patch100: kdelibs-3.5.5-kstandarddirs.patch
@ -149,8 +151,16 @@ BuildRequires: automake libtool
Obsoletes: kdelibs-apidocs < 6:%{version}-%{release}
%endif
%if 0%{?include_crystalsvg}
Provides: crystalsvg-icon-theme = %{version}-%{release}
%else
# this Requires could be made unconditional -- Rex
Requires: crystalsvg-icon-theme
%endif
%description
Libraries for the K Desktop Environment:
Libraries for the K Desktop Environment 3:
KDE Libraries included: kdecore (KDE core library), kdeui (user interface),
kfm (file manager), khtmlw (HTML widget), kio (Input/Output, networking),
kspell (spelling checker), jscript (javascript), kab (addressbook),
@ -158,7 +168,7 @@ kimgio (image manipulation).
%package devel
Group: Development/Libraries
Summary: Header files and documentation for compiling KDE applications.
Summary: Header files and documentation for compiling KDE 3 applications.
%if "%{name}" == "kdelibs"
Obsoletes: kdelibs3-devel < %{version}-%{release}
Provides: kdelibs3-devel = %{version}-%{release}
@ -171,26 +181,13 @@ Requires: qt-devel
Requires: openssl-devel
%{?arts:Requires: arts-devel}
%{?libkdnssd:Requires: libkdnssd-devel}
## those below can/should be omitted from future(f8?) builds -- Rex
%if 0
Requires: bzip2-devel
Requires: libacl-devel
Requires: libart_lgpl-devel
Requires: libidn-devel
Requires: libxslt-devel
Requires: libjpeg-devel
Requires: libtiff-devel
%{?_with_libutempter:Requires: libutempter-devel}
Requires: pcre-devel
Requires: zlib-devel
%endif
%description devel
This package includes the header files you will need to compile
applications for KDE.
applications for KDE 3.
%package apidocs
Group: Development/Documentation
Summary: KDE API documentation.
Summary: KDE 3 API documentation.
Requires: %{name} = %{?epoch:%{epoch}:}%{version}
%if "%{name}" == "kdelibs"
Provides: kdelibs3-apidocs = %{version}-%{release}
@ -200,7 +197,7 @@ Provides: kdelibs-apidocs = 6:%{version}-%{release}
%endif
%description apidocs
This package includes the KDE API documentation in HTML
This package includes the KDE 3 API documentation in HTML
format for easy browsing
@ -224,6 +221,7 @@ format for easy browsing
%patch43 -p1 -b .lang
%patch45 -p1 -b .xdg-autostart
%patch46 -p1 -b .kate-vhdl
%patch47 -p0 -b .new-flash
%patch100 -p1 -b .kstandarddirs
%patch101 -p1 -b .libtool-shlibext
@ -310,14 +308,11 @@ for i in *; do
done
popd
%if "%{name}" == "kdelibs3"
install -p -m 755 -D %{SOURCE1} %{buildroot}%{_sysconfdir}/profile.d/kde3.sh
install -p -m 755 -D %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/kde3.csh
%else
install -p -m 755 -D %{SOURCE1} %{buildroot}%{_sysconfdir}/profile.d/kde.sh
install -p -m 755 -D %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/kde.csh
# menus
install -p -m 644 -D %{SOURCE1} %{buildroot}%{_sysconfdir}/profile.d/kde.sh
install -p -m 644 -D %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/kde.csh
%if "%{name}" == "kdelibs"
# menus
mkdir -p %{buildroot}%{_sysconfdir}/kde/xdg/menus
mv %{buildroot}%{_sysconfdir}/xdg/menus/applications.menu \
%{buildroot}%{_sysconfdir}/xdg/menus/kde-applications.menu
@ -362,27 +357,22 @@ rm -f %{buildroot}%{_libdir}/libkdnssd.la
%if "%{name}" != "kdelibs"
# remove conflicts with kdelibs-4
pushd %{buildroot}%{_bindir}
rm -f cupsdconf cupsdoprint imagetops kaddprinterwizard kconf_update kcookiejar \
kde-menu kdesu_stub kdontchangethehostname kdostartupconfig kio_http_cache_cleaner kioslave \
klauncher kpac_dhcp_helper ksendbugmail kstartupconfig ktradertest \
make_driver_db_cups make_driver_db_lpr meinproc preparetips \
khotnewstuff kinstalltheme kcmshell kfile kioexec
# devel stuff (skip for now)
#rm -f checkXML kconfig_compiler ksvgtopng kunittestmodrunner makekdewidgets
popd
rm -f %{buildroot}%{_datadir}/config/* \
%{buildroot}%{_datadir}/config/ui/kprintpreviewui.rc || :
rm -f %{buildroot}%{_bindir}/checkXML
rm -f %{buildroot}%{_bindir}/ksvgtopng
rm -f %{buildroot}%{_bindir}/kunittestmodrunner
rm -f %{buildroot}%{_datadir}/config/kdebug.areas
rm -f %{buildroot}%{_datadir}/config/kdebugrc
rm -f %{buildroot}%{_datadir}/config/ui/ui_standards.rc
rm -rf %{buildroot}%{_datadir}/doc/HTML/en/common/
rm -rf %{buildroot}%{_datadir}/locale/all_languages
# These files are not conflicting (yet) but may not be really useful in KDE4
rm -rf %{buildroot}%{_sysconfdir}/xdg/menus/
rm -rf %{buildroot}%{_datadir}/autostart/
%endif
rm -rf %{buildroot}%{_datadir}/config/colors \
%{buildroot}%{_datadir}/apps/k* \
%{buildroot}%{_datadir}/apps/LICENSES \
%{buildroot}%{_datadir}/apps/proxyscout \
%{buildroot}%{_datadir}/locale \
%{buildroot}%{_datadir}/autostart \
%{buildroot}/etc/xdg \
%{buildroot}%{_docdir}/HTML \
%{buildroot}%{_datadir}/emoticons
%if 0%{?include_crystalsvg} == 0
# remove all crystalsvg icons for now
rm -rf %{buildroot}%{_datadir}/icons/crystalsvg/
%endif
@ -392,14 +382,18 @@ rm -rf %{buildroot}
%post
/sbin/ldconfig
%if 0%{?include_crystalsvg}
touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
%endif
%{_bindir}/update-desktop-database > /dev/null 2>&1 || :
%postun
/sbin/ldconfig
%if 0%{?include_crystalsvg}
touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
%endif
%{_bindir}/update-desktop-database > /dev/null 2>&1 || :
@ -448,6 +442,7 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/kioslave
%{_bindir}/klauncher
%{_bindir}/kmailservice
%attr(4755,root,root) %{_bindir}/kpac_dhcp_helper
%{_bindir}/ksendbugmail
%{_bindir}/kshell
%{_bindir}/kstartupconfig
@ -472,30 +467,35 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%exclude %{_datadir}/apps/kdewidgets/
%exclude %{_libdir}/kde3/plugins/designer/kdewidgets.*
%config(noreplace) %{_datadir}/config/*
%{_datadir}/icons/crystalsvg/
%{_datadir}/emoticons/*
%{_datadir}/icons/default.kde
%{_datadir}/mimelnk/magic
%{_datadir}/mimelnk/*/*.desktop
%{_datadir}/services/*
%{_datadir}/servicetypes/*
%ghost %{_datadir}/services/ksycoca
%{_docdir}/HTML/en/kspell
%if "%{name}" == "kdelibs"
%{_sysconfdir}/xdg/menus/*.menu
%attr(4755,root,root) %{_bindir}/kpac_dhcp_helper
%{_datadir}/autostart/*
%{_datadir}/emoticons/*
%{_datadir}/locale/all_languages
# include also the conflicting file in kdelibs fedora < 9
%{_docdir}/HTML/en/common
%{_docdir}/HTML/en/kspell
%{_datadir}/locale/all_languages
%endif
%if 0%{?include_crystalsvg}
%{_datadir}/icons/crystalsvg/
%endif
%files devel
%defattr(-,root,root,-)
# include also the conflicting file in kdelibs-devel fedora < 9
%if "%{name}" == "kdelibs"
%{_bindir}/checkXML
%{_bindir}/dcopidl*
%{_bindir}/kconfig_compiler
%{_bindir}/ksvgtopng
%{_bindir}/kunittestmodrunner
%endif
%{_bindir}/dcopidl*
%{_bindir}/kconfig_compiler
%{_bindir}/makekdewidgets
%{_datadir}/apps/kdewidgets/
%dir %{_libdir}/kde3/plugins/designer
@ -515,6 +515,48 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%changelog
* Thu Dec 13 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 3.5.8-19
- flash fix (#410651, kde#132138, kde#146784)
- simplify crystalsvg-icon-theme handling
* Tue Dec 11 2007 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.8-18
- set include_crystalsvg to 0 on F9+ (it comes from kdeartwork now)
* Tue Dec 04 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 3.5.8-17
- update openssl patch
* Sat Dec 01 2007 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.8-16
- install profile scripts as 644 instead of 755 (Ville Skyttä, #407521)
- don't rename profile scripts to kde3.(c)sh (not worth the breakage)
* Sat Dec 01 2007 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.8-15
- separate include_crystalsvg conditional, set to 1 until we have kdeartwork 4
- don't run icon %%post/%%postun snippets for crystalsvg if we don't ship it
- add "3" in all summaries and descriptions
* Sat Dec 01 2007 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.8-14
- fix inverted logic for Requires: crystalsvg-icon-theme
* Sat Dec 01 2007 Kevin Kofler <Kevin@tigcc.ticalc.org> - 3.5.8-13
- don't hardcode %%fedora
* Wed Nov 21 2007 Sebastian Vahl <fedora@deadbabylon.de> 3.5.8-12
- renew the list of file conflicts and removals
* Tue Nov 20 2007 Sebastian Vahl <fedora@deadbabylon.de> 3.5.8-11
- preserve makekdewidgets and kconf_compiler for fedora > 9
- add Requires: crystalsvg-icon-theme (for kdelibs3)
* Sun Nov 18 2007 Sebastian Vahl <fedora@deadbabylon.de> 3.5.8-10
- only include and provide crystalsvg-icon-theme for fedora < 9
* Sun Nov 18 2007 Sebastian Vahl <fedora@deadbabylon.de> 3.5.8-9
- add switch to force rpmbuild behavior for testing
- prepare %%files for non-conflicting kdelibs3
* Tue Oct 30 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 3.5.8-8
- Provides: crystalsvg-icon-theme
* Thu Oct 25 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 3.5.8-7
- fix application of custom zoom patch (rh#335461)