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 %define apidocs 1
Summary: K Desktop Environment - Libraries Summary: K Desktop Environment 3 - Libraries
Version: 3.5.8 Version: 3.5.8
Release: 7%{?dist} Release: 19%{?dist}
%if 0%{?fedora} > 8 %if 0%{?fedora} > 8
Name: kdelibs3 Name: kdelibs3
@ -32,6 +32,7 @@ Name: kdelibs
Epoch: 6 Epoch: 6
Obsoletes: kdelibs3 = %{version}-%{release} Obsoletes: kdelibs3 = %{version}-%{release}
Provides: kdelibs3 = %{version}-%{release} Provides: kdelibs3 = %{version}-%{release}
%define include_crystalsvg 1
%endif %endif
License: LGPLv2 License: LGPLv2
@ -61,6 +62,7 @@ Patch41: kdelibs-3.5.6-utempter.patch
Patch43: kdelibs-3.5.6-lang.patch Patch43: kdelibs-3.5.6-lang.patch
Patch45: kdelibs-3.5.7-autostart.patch Patch45: kdelibs-3.5.7-autostart.patch
Patch46: kdelibs-3.5.8-kate-vhdl.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 # use /etc/kde in addition to /usr/share/config, borrowed from debian
Patch100: kdelibs-3.5.5-kstandarddirs.patch Patch100: kdelibs-3.5.5-kstandarddirs.patch
@ -149,8 +151,16 @@ BuildRequires: automake libtool
Obsoletes: kdelibs-apidocs < 6:%{version}-%{release} Obsoletes: kdelibs-apidocs < 6:%{version}-%{release}
%endif %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 %description
Libraries for the K Desktop Environment: Libraries for the K Desktop Environment 3:
KDE Libraries included: kdecore (KDE core library), kdeui (user interface), KDE Libraries included: kdecore (KDE core library), kdeui (user interface),
kfm (file manager), khtmlw (HTML widget), kio (Input/Output, networking), kfm (file manager), khtmlw (HTML widget), kio (Input/Output, networking),
kspell (spelling checker), jscript (javascript), kab (addressbook), kspell (spelling checker), jscript (javascript), kab (addressbook),
@ -158,7 +168,7 @@ kimgio (image manipulation).
%package devel %package devel
Group: Development/Libraries 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" %if "%{name}" == "kdelibs"
Obsoletes: kdelibs3-devel < %{version}-%{release} Obsoletes: kdelibs3-devel < %{version}-%{release}
Provides: kdelibs3-devel = %{version}-%{release} Provides: kdelibs3-devel = %{version}-%{release}
@ -171,26 +181,13 @@ Requires: qt-devel
Requires: openssl-devel Requires: openssl-devel
%{?arts:Requires: arts-devel} %{?arts:Requires: arts-devel}
%{?libkdnssd:Requires: libkdnssd-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 %description devel
This package includes the header files you will need to compile This package includes the header files you will need to compile
applications for KDE. applications for KDE 3.
%package apidocs %package apidocs
Group: Development/Documentation Group: Development/Documentation
Summary: KDE API documentation. Summary: KDE 3 API documentation.
Requires: %{name} = %{?epoch:%{epoch}:}%{version} Requires: %{name} = %{?epoch:%{epoch}:}%{version}
%if "%{name}" == "kdelibs" %if "%{name}" == "kdelibs"
Provides: kdelibs3-apidocs = %{version}-%{release} Provides: kdelibs3-apidocs = %{version}-%{release}
@ -200,7 +197,7 @@ Provides: kdelibs-apidocs = 6:%{version}-%{release}
%endif %endif
%description apidocs %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 format for easy browsing
@ -224,6 +221,7 @@ format for easy browsing
%patch43 -p1 -b .lang %patch43 -p1 -b .lang
%patch45 -p1 -b .xdg-autostart %patch45 -p1 -b .xdg-autostart
%patch46 -p1 -b .kate-vhdl %patch46 -p1 -b .kate-vhdl
%patch47 -p0 -b .new-flash
%patch100 -p1 -b .kstandarddirs %patch100 -p1 -b .kstandarddirs
%patch101 -p1 -b .libtool-shlibext %patch101 -p1 -b .libtool-shlibext
@ -310,14 +308,11 @@ for i in *; do
done done
popd popd
%if "%{name}" == "kdelibs3" install -p -m 644 -D %{SOURCE1} %{buildroot}%{_sysconfdir}/profile.d/kde.sh
install -p -m 755 -D %{SOURCE1} %{buildroot}%{_sysconfdir}/profile.d/kde3.sh install -p -m 644 -D %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/kde.csh
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
%if "%{name}" == "kdelibs"
# menus
mkdir -p %{buildroot}%{_sysconfdir}/kde/xdg/menus mkdir -p %{buildroot}%{_sysconfdir}/kde/xdg/menus
mv %{buildroot}%{_sysconfdir}/xdg/menus/applications.menu \ mv %{buildroot}%{_sysconfdir}/xdg/menus/applications.menu \
%{buildroot}%{_sysconfdir}/xdg/menus/kde-applications.menu %{buildroot}%{_sysconfdir}/xdg/menus/kde-applications.menu
@ -362,27 +357,22 @@ rm -f %{buildroot}%{_libdir}/libkdnssd.la
%if "%{name}" != "kdelibs" %if "%{name}" != "kdelibs"
# remove conflicts with kdelibs-4 # remove conflicts with kdelibs-4
pushd %{buildroot}%{_bindir} rm -f %{buildroot}%{_bindir}/checkXML
rm -f cupsdconf cupsdoprint imagetops kaddprinterwizard kconf_update kcookiejar \ rm -f %{buildroot}%{_bindir}/ksvgtopng
kde-menu kdesu_stub kdontchangethehostname kdostartupconfig kio_http_cache_cleaner kioslave \ rm -f %{buildroot}%{_bindir}/kunittestmodrunner
klauncher kpac_dhcp_helper ksendbugmail kstartupconfig ktradertest \ rm -f %{buildroot}%{_datadir}/config/kdebug.areas
make_driver_db_cups make_driver_db_lpr meinproc preparetips \ rm -f %{buildroot}%{_datadir}/config/kdebugrc
khotnewstuff kinstalltheme kcmshell kfile kioexec rm -f %{buildroot}%{_datadir}/config/ui/ui_standards.rc
# devel stuff (skip for now) rm -rf %{buildroot}%{_datadir}/doc/HTML/en/common/
#rm -f checkXML kconfig_compiler ksvgtopng kunittestmodrunner makekdewidgets rm -rf %{buildroot}%{_datadir}/locale/all_languages
popd # These files are not conflicting (yet) but may not be really useful in KDE4
rm -f %{buildroot}%{_datadir}/config/* \ rm -rf %{buildroot}%{_sysconfdir}/xdg/menus/
%{buildroot}%{_datadir}/config/ui/kprintpreviewui.rc || : rm -rf %{buildroot}%{_datadir}/autostart/
%endif
rm -rf %{buildroot}%{_datadir}/config/colors \ %if 0%{?include_crystalsvg} == 0
%{buildroot}%{_datadir}/apps/k* \ # remove all crystalsvg icons for now
%{buildroot}%{_datadir}/apps/LICENSES \ rm -rf %{buildroot}%{_datadir}/icons/crystalsvg/
%{buildroot}%{_datadir}/apps/proxyscout \
%{buildroot}%{_datadir}/locale \
%{buildroot}%{_datadir}/autostart \
%{buildroot}/etc/xdg \
%{buildroot}%{_docdir}/HTML \
%{buildroot}%{_datadir}/emoticons
%endif %endif
@ -392,14 +382,18 @@ rm -rf %{buildroot}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if 0%{?include_crystalsvg}
touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || : touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/gtk-update-icon-cache --quiet %{_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 || : %{_bindir}/update-desktop-database > /dev/null 2>&1 || :
%postun %postun
/sbin/ldconfig /sbin/ldconfig
%if 0%{?include_crystalsvg}
touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || : touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/gtk-update-icon-cache --quiet %{_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 || : %{_bindir}/update-desktop-database > /dev/null 2>&1 || :
@ -448,6 +442,7 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%{_bindir}/kioslave %{_bindir}/kioslave
%{_bindir}/klauncher %{_bindir}/klauncher
%{_bindir}/kmailservice %{_bindir}/kmailservice
%attr(4755,root,root) %{_bindir}/kpac_dhcp_helper
%{_bindir}/ksendbugmail %{_bindir}/ksendbugmail
%{_bindir}/kshell %{_bindir}/kshell
%{_bindir}/kstartupconfig %{_bindir}/kstartupconfig
@ -472,30 +467,35 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%exclude %{_datadir}/apps/kdewidgets/ %exclude %{_datadir}/apps/kdewidgets/
%exclude %{_libdir}/kde3/plugins/designer/kdewidgets.* %exclude %{_libdir}/kde3/plugins/designer/kdewidgets.*
%config(noreplace) %{_datadir}/config/* %config(noreplace) %{_datadir}/config/*
%{_datadir}/icons/crystalsvg/ %{_datadir}/emoticons/*
%{_datadir}/icons/default.kde %{_datadir}/icons/default.kde
%{_datadir}/mimelnk/magic %{_datadir}/mimelnk/magic
%{_datadir}/mimelnk/*/*.desktop %{_datadir}/mimelnk/*/*.desktop
%{_datadir}/services/* %{_datadir}/services/*
%{_datadir}/servicetypes/* %{_datadir}/servicetypes/*
%ghost %{_datadir}/services/ksycoca %ghost %{_datadir}/services/ksycoca
%{_docdir}/HTML/en/kspell
%if "%{name}" == "kdelibs" %if "%{name}" == "kdelibs"
%{_sysconfdir}/xdg/menus/*.menu %{_sysconfdir}/xdg/menus/*.menu
%attr(4755,root,root) %{_bindir}/kpac_dhcp_helper
%{_datadir}/autostart/* %{_datadir}/autostart/*
%{_datadir}/emoticons/* # include also the conflicting file in kdelibs fedora < 9
%{_datadir}/locale/all_languages
%{_docdir}/HTML/en/common %{_docdir}/HTML/en/common
%{_docdir}/HTML/en/kspell %{_datadir}/locale/all_languages
%endif
%if 0%{?include_crystalsvg}
%{_datadir}/icons/crystalsvg/
%endif %endif
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
# include also the conflicting file in kdelibs-devel fedora < 9
%if "%{name}" == "kdelibs"
%{_bindir}/checkXML %{_bindir}/checkXML
%{_bindir}/dcopidl*
%{_bindir}/kconfig_compiler
%{_bindir}/ksvgtopng %{_bindir}/ksvgtopng
%{_bindir}/kunittestmodrunner %{_bindir}/kunittestmodrunner
%endif
%{_bindir}/dcopidl*
%{_bindir}/kconfig_compiler
%{_bindir}/makekdewidgets %{_bindir}/makekdewidgets
%{_datadir}/apps/kdewidgets/ %{_datadir}/apps/kdewidgets/
%dir %{_libdir}/kde3/plugins/designer %dir %{_libdir}/kde3/plugins/designer
@ -515,6 +515,48 @@ touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
%changelog %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 * Thu Oct 25 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 3.5.8-7
- fix application of custom zoom patch (rh#335461) - fix application of custom zoom patch (rh#335461)