summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Proschofsky <suka@gentoo.org>2005-06-29 20:48:50 +0000
committerAndreas Proschofsky <suka@gentoo.org>2005-06-29 20:48:50 +0000
commitd19c18fe7e58ea219564b88f3b08b1355cfce248 (patch)
tree7889f6fb5a77382804d24b61fcf7713ac13ab52e /app-office/openoffice-ximian
parentFix bug 94719: add patch from upstream branch cvs allowing kwifimanager to co... (diff)
downloadhistorical-d19c18fe7e58ea219564b88f3b08b1355cfce248.tar.gz
historical-d19c18fe7e58ea219564b88f3b08b1355cfce248.tar.bz2
historical-d19c18fe7e58ea219564b88f3b08b1355cfce248.zip
Fix for bug #88868
Package-Manager: portage-2.0.51.22-r1
Diffstat (limited to 'app-office/openoffice-ximian')
-rw-r--r--app-office/openoffice-ximian/ChangeLog6
-rw-r--r--app-office/openoffice-ximian/Manifest5
-rw-r--r--app-office/openoffice-ximian/files/1.1.4/vcl-unx-gtk-frame-m110.diff216
-rw-r--r--app-office/openoffice-ximian/openoffice-ximian-1.3.14.ebuild5
4 files changed, 228 insertions, 4 deletions
diff --git a/app-office/openoffice-ximian/ChangeLog b/app-office/openoffice-ximian/ChangeLog
index d534d75676f4..9bb10140ca05 100644
--- a/app-office/openoffice-ximian/ChangeLog
+++ b/app-office/openoffice-ximian/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for app-office/openoffice-ximian
# Copyright 2000-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice-ximian/ChangeLog,v 1.134 2005/06/24 06:18:31 suka Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice-ximian/ChangeLog,v 1.135 2005/06/29 20:48:49 suka Exp $
+
+ 29 Jun 2005; Andreas Proschofsky <suka@gentoo.org>
+ +files/1.1.4/vcl-unx-gtk-frame-m110.diff, openoffice-ximian-1.3.14.ebuild:
+ Fix for non-working dead keys, this closes bug #88868
24 Jun 2005; Andreas Proschofsky <suka@gentoo.org>
+files/1.1.4/vcl-gtk-mainloop-m79.diff, openoffice-ximian-1.3.14.ebuild:
diff --git a/app-office/openoffice-ximian/Manifest b/app-office/openoffice-ximian/Manifest
index d4253d51404d..731f6f34ff9d 100644
--- a/app-office/openoffice-ximian/Manifest
+++ b/app-office/openoffice-ximian/Manifest
@@ -1,7 +1,7 @@
-MD5 7a718b7002feb46ed1a9817261e02e24 openoffice-ximian-1.3.14.ebuild 17901
+MD5 079f615da6f0aac32471416c17c700f6 openoffice-ximian-1.3.14.ebuild 17989
MD5 ce67e2b1dc445c93428e0abc29835bee openoffice-ximian-1.3.6-r1.ebuild 17073
MD5 ca8add812e406335562b69941a364865 openoffice-ximian-1.3.9-r1.ebuild 17907
-MD5 2b59c723d76c0427398f73132b779b98 ChangeLog 32779
+MD5 79091848c512175291e5063c19f30cd9 ChangeLog 32966
MD5 f3942f82433bf5ae16461240cbcc4984 metadata.xml 300
MD5 2595967ac130a541e50bffc75e105041 files/digest-openoffice-ximian-1.3.6-r1 502
MD5 e84e07ee231b9ceaabacc5556a63f647 files/digest-openoffice-ximian-1.3.9-r1 492
@@ -27,6 +27,7 @@ MD5 ddb36dfd1d142b8a03850e3bee62a8c3 files/1.1.4/hardened-link.patch 576
MD5 e08721c60cf0f7bc7ea0a714baeac120 files/1.1.4/getcompver.awk.patch 418
MD5 964398ef88829e5a2935d0c0f8389c9d files/1.1.4/xooffice-wrapper-1.3 6091
MD5 b2ea5c34d4a5e430c21a2da7426b9e39 files/1.1.4/cws-heapbug_CAN-2005-0941.diff 598
+MD5 622aff56239fa55eb653a16645b6a3f2 files/1.1.4/vcl-unx-gtk-frame-m110.diff 7858
MD5 d14fafce0cfe0c8d399902a2c3d83e64 files/1.1.4/vcl-gtk-mainloop-m79.diff 1130
MD5 6938dc2e28e840cebf4fdbde9d6e2d4b files/1.1.4/gentoo-1.3.9.patch 859
MD5 3d3555a66a2d8a66613d4e4471701eb8 files/1.1.4/pthreadlink-fix.patch 1163
diff --git a/app-office/openoffice-ximian/files/1.1.4/vcl-unx-gtk-frame-m110.diff b/app-office/openoffice-ximian/files/1.1.4/vcl-unx-gtk-frame-m110.diff
new file mode 100644
index 000000000000..9a84a648985a
--- /dev/null
+++ b/app-office/openoffice-ximian/files/1.1.4/vcl-unx-gtk-frame-m110.diff
@@ -0,0 +1,216 @@
+--- vcl/unx/gtk/window/gtkframe.cxx
++++ vcl/unx/gtk/window/gtkframe.cxx
+@@ -185,8 +184,9 @@
+ void GtkSalFrame::doKeyCallback( guint state,
+ guint keyval,
+ guint16 hardware_keycode,
+ guint8 group,
+ guint32 time,
++ sal_Unicode aOrigCode,
+ bool bDown,
+ bool bSendRelease
+ )
+@@ -208,20 +226,21 @@
+ SalKeyEvent aEvent;
+
+ aEvent.mnTime = time;
+- aEvent.mnCode = GetKeyCode( keyval ) | GetModCode( state );
+- aEvent.mnCharCode = (USHORT)gdk_keyval_to_unicode( keyval );
++ aEvent.mnCode = GetKeyCode( keyval ) | GetModCode( state );
++ aEvent.mnCharCode = aOrigCode;
+ aEvent.mnRepeat = 0;
+
+ vcl::DeletionListener aDel( this );
+- bool bHandled = CallCallback( bDown ? SALEVENT_KEYINPUT : SALEVENT_KEYUP, &aEvent );
+- if( bDown && ! aDel.isDeleted() )
++ if( bDown )
+ {
+- /* #i42122# if application cannot handle the event (e.g. for a shortcut key)
+- * then try the same key with the default keymap in group 0, so e.g. cyrillic
+- * keys get translated to the english keyboard layout and can be recognized
+- * as shortcuts (see also generic plugin)
++ /* #i42122# translate all keys with Ctrl and/or Alt to group 0
++ * else shortcuts (e.g. Ctrl-o) will not work but be inserted by
++ * the application
+ */
+- if( ! bHandled && group != 0)
++ bool bHandled = false;
++ if( (aEvent.mnCode & (KEY_MOD1|KEY_MOD2)) == 0 || group == 0 )
++ bHandled = CallCallback( SALEVENT_KEYINPUT, &aEvent );
++ else
+ {
+ // check other mapping
+ gint eff_group, level;
+@@ -236,9 +255,9 @@
+ &level,
+ &consumed ) )
+ {
+- aEvent.mnCode = GetKeyCode( updated_keyval ) | GetModCode( state );
++ aEvent.mnCode = GetKeyCode( updated_keyval ) | GetModCode( state );
+ aEvent.mnCharCode = (USHORT)gdk_keyval_to_unicode( updated_keyval );
+- CallCallback( SALEVENT_KEYINPUT, &aEvent );
++ bHandled = CallCallback( SALEVENT_KEYINPUT, &aEvent );
+ }
+ }
+ if( bSendRelease && ! aDel.isDeleted() )
+@@ -246,6 +277,8 @@
+ CallCallback( SALEVENT_KEYUP, &aEvent );
+ }
+ }
++ else
++ CallCallback( SALEVENT_KEYUP, &aEvent );
+ }
+
+ GtkSalFrame::GraphicsHolder::~GraphicsHolder()
+@@ -352,6 +394,7 @@
+ m_pIMContext = NULL;
+ m_bWasPreedit = false;
+ m_bIgnoreCommit = false;
++ m_bIgnorePreedit = false;
+ m_aPrevKeyPresses.clear();
+ m_nPrevKeyPresses = 0;
+
+@@ -1071,7 +1454,8 @@
+ void GtkSalFrame::createIMContext()
+ {
+ if( ! m_pIMContext )
+ {
++ m_bIgnorePreedit = true;
+ m_pIMContext = gtk_im_multicontext_new ();
+ g_signal_connect( m_pIMContext, "commit",
+ G_CALLBACK (signalIMCommit), this );
+@@ -1102,6 +1488,7 @@
+ gtk_im_context_set_client_window( m_pIMContext, GTK_WIDGET(m_pWindow)->window );
+ gtk_im_context_focus_in( m_pIMContext );
+ m_bWasPreedit = false;
++ m_bIgnorePreedit = false;
+ }
+ }
+
+@@ -2006,7 +2262,14 @@
+ }
+ else
+ {
+- pThis->doKeyCallback( pEvent->state, pEvent->keyval, pEvent->hardware_keycode, pEvent->group, pEvent->time, (pEvent->type == GDK_KEY_PRESS), false );
++ pThis->doKeyCallback( pEvent->state,
++ pEvent->keyval,
++ pEvent->hardware_keycode,
++ pEvent->group,
++ pEvent->time,
++ sal_Unicode(gdk_keyval_to_unicode( pEvent->keyval )),
++ (pEvent->type == GDK_KEY_PRESS),
++ false );
+ if( ! aDel.isDeleted() )
+ {
+ pThis->m_bSendModChangeOnRelease = false;
+@@ -2068,7 +2341,34 @@
+ return FALSE;
+ }
+
++/* FIXME:
++* #122282# still more hacking: some IMEs never start a preedit but simply commit
++* in this case we cannot commit a single character. Workaround: do not do the
++* single key hack for enter or space if the unicode commited does not match
++*/
++
++static bool checkSinkleKeyCommitHack( guint keyval, sal_Unicode cCode )
++{
++ bool bRet = true;
++ switch( keyval )
++ {
++ case GDK_KP_Enter:
++ case GDK_Return:
++ if( cCode != '\n' && cCode != '\r' )
++ bRet = false;
++ break;
++ case GDK_space:
++ case GDK_KP_Space:
++ if( cCode != ' ' )
++ bRet = false;
++ break;
++ default:
++ break;
++ }
++ return bRet;
++}
++
+ void GtkSalFrame::signalIMCommit( GtkIMContext* pContext, gchar* pText, gpointer frame )
+ {
+ GtkSalFrame* pThis = (GtkSalFrame*)frame;
+
+@@ -2109,11 +2405,18 @@
+ )
+ {
+ const PreviousKeyPress& rKP = pThis->m_aPrevKeyPresses.back();
++ sal_Unicode aOrigCode = aTextEvent.maText.GetChar(0);
+
++ if( checkSinkleKeyCommitHack( rKP.keyval, aOrigCode ) )
++ {
++ #if OSL_DEBUG_LEVEL > 1
++ fprintf( stderr, ":signalIMCommit (as key): '%s'\n", pText );
++ #endif
+ pThis->m_bWasPreedit = false;
+- pThis->doKeyCallback( rKP.state, rKP.keyval, rKP.hardware_keycode, rKP.group, rKP.time, true, true );
++ pThis->doKeyCallback( rKP.state, rKP.keyval, rKP.hardware_keycode, rKP.group, rKP.time, aOrigCode, true, true );
+ return;
+ }
++ }
+
+ #if OSL_DEBUG_LEVEL > 1
+ fprintf( stderr, ":signalIMCommit '%s'\n", pText );
+@@ -2128,6 +2431,8 @@
+ void GtkSalFrame::signalIMPreeditChanged( GtkIMContext* pContext, gpointer frame )
+ {
+ GtkSalFrame* pThis = (GtkSalFrame*)frame;
++ if( pThis->m_bIgnorePreedit )
++ return;
+
+ char* pText = NULL;
+ PangoAttrList* pAttrs = NULL;
+@@ -2221,18 +2526,27 @@
+
+ void GtkSalFrame::signalIMPreeditStart( GtkIMContext* pContext, gpointer frame )
+ {
+-// GtkSalFrame* pThis = (GtkSalFrame*)frame;
++ GtkSalFrame* pThis = (GtkSalFrame*)frame;
++ if( ! pThis->m_bIgnorePreedit )
++ {
++ #if OSL_DEBUG_LEVEL > 1
++ fprintf( stderr, ":signalImPreeditStart\n" );
++ #endif
++ }
+ }
+
+ void GtkSalFrame::signalIMPreeditEnd( GtkIMContext* pContext, gpointer frame )
+ {
+ GtkSalFrame* pThis = (GtkSalFrame*)frame;
++ if( ! pThis->m_bIgnorePreedit )
++ {
+ #if OSL_DEBUG_LEVEL > 1
+ fprintf( stderr, ":signalImPreeditEnd\n" );
+ #endif
+ GTK_YIELD_GRAB();
+ pThis->CallCallback( SALEVENT_ENDEXTTEXTINPUT, NULL );
+ }
++}
+
+ gboolean GtkSalFrame::signalIMRetrieveSurrounding( GtkIMContext* pContext, gpointer frame )
+ {
+--- /opt/OpenOffice/DEVEL/ooo-build/build/OOO_1_1_4/vcl/unx/inc/plugins/gtk/gtkframe.hxx 2005-06-15 15:05:25.000000000 +0100
++++ vcl/unx/inc/plugins/gtk/gtkframe.hxx 2005-06-28 15:05:42.664084120 +0100
+@@ -183,6 +183,7 @@
+ bool m_bSendModChangeOnRelease;
+ bool m_bWasPreedit;
+ bool m_bIgnoreCommit;
++ bool m_bIgnorePreedit;
+
+ Size m_aMaxSize;
+ Size m_aMinSize;
+@@ -234,6 +235,7 @@
+ guint16 hardware_keycode,
+ guint8 group,
+ guint32 time,
++ sal_Unicode aOrigCode,
+ bool bDown,
+ bool bSendRelease
+ );
diff --git a/app-office/openoffice-ximian/openoffice-ximian-1.3.14.ebuild b/app-office/openoffice-ximian/openoffice-ximian-1.3.14.ebuild
index f665a3e5947e..7047ea6b3ca5 100644
--- a/app-office/openoffice-ximian/openoffice-ximian-1.3.14.ebuild
+++ b/app-office/openoffice-ximian/openoffice-ximian-1.3.14.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice-ximian/openoffice-ximian-1.3.14.ebuild,v 1.2 2005/06/24 06:18:31 suka Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-office/openoffice-ximian/openoffice-ximian-1.3.14.ebuild,v 1.3 2005/06/29 20:48:50 suka Exp $
# Notes:
#
@@ -307,6 +307,9 @@ src_unpack() {
einfo "Applying Ximian OO.org Patches"
${PATCHDIR}/patches/apply.pl ${PATCHDIR}/patches/${PATCHLEVEL} ${S} -f --distro=${DISTRO} || die "Ximian patches failed"
+ #Dead keys fix
+ use gnome && epatch ${FILESDIR}/${OO_VER}/vcl-unx-gtk-frame-m110.diff
+
#Fix for hardened
if use hardened; then
epatch ${FILESDIR}/${OO_VER}/pthreadlink-fix.patch