diff options
author | nobody <nobody@gnome.org> | 2004-09-29 15:29:47 +0000 |
---|---|---|
committer | nobody <nobody@gnome.org> | 2004-09-29 15:29:47 +0000 |
commit | a277c2adf427964192dee990bd9722fa332ce840 (patch) | |
tree | 70e1a2a014786426e0f637c5429c6a02ae611051 | |
parent | 6bcf656ff664e2b902d8671d9689c95dcce90218 (diff) |
This commit was manufactured by cvs2svn to create tagOOO_BUILD_1_3_5_3
'OOO_BUILD_1_3_5_3'.
-rw-r--r-- | NEWS | 39 | ||||
-rw-r--r-- | patches/Makefile.am | 1 | ||||
-rw-r--r-- | patches/OOO_1_1/crash-sw-redline.diff | 17 | ||||
-rw-r--r-- | patches/OOO_1_1/fpicker-common.diff | 54 | ||||
-rw-r--r-- | patches/OOO_1_1/fpicker-kde.diff | 50 | ||||
-rw-r--r-- | patches/OOO_1_1/novell-japanese-fonts.diff | 35 | ||||
-rw-r--r-- | patches/evo2/connectivity-source-drivers-evoab1-5-nstatement-hxx.diff | 2 | ||||
-rw-r--r-- | patches/vclplug/crash-deletion.diff | 639 | ||||
-rw-r--r-- | patches/vclplug/crash-ppd-parse.diff | 22 | ||||
-rw-r--r-- | patches/vclplug/vcl-unx-kde-data-cxx.diff | 4 |
10 files changed, 808 insertions, 55 deletions
@@ -1,3 +1,42 @@ +ooo-build-1.3.5.3 + + + bug fixes + + update symlinks fix (Petr) + + font settings in KDE fix (Kendy) + + CUPS ppd parse failure crash fix (Michael) + + pending + + lwp type detection (Ashwanth) + +ooo-build-1.3.5.2 + + + bug fixes + + configure JRE in the default java configuration (Petr) + + event emmission fix (Michael) + + Evo2 fixes (Jayant) + + rework authentication process + + sexpr mapping fix + + queries on local addressbooks improve + + prune stale/unused code + + pending + + lwp type detection (Ashwanth) + +ooo-build-1.3.5.1 + + + bug fixes + + .doc import crasher (Caolan) + + KDE fpicker *.*" filter fix (Kendy) + + KDE port fixes (Kendy) + + *.*" filter in fpicker + + mimimal font size + + desktop detection + + prevent kdcop from hanging + + destruction of objects + + features + + add Hindi to list of known languages (Dan) + + configure more Japanese fonts (Petr) + + pending + + lwp type detection (Ashwanth) + ooo-build-1.3.5 + bug fixes diff --git a/patches/Makefile.am b/patches/Makefile.am index 883f59337..b81bb6dfe 100644 --- a/patches/Makefile.am +++ b/patches/Makefile.am @@ -2,7 +2,6 @@ SUBDIRS=\ wpd \ evo2 \ vclplug \ - mscodec \ OOO_1_1 \ OOO_1_1_2 \ OOO_1_1_3 diff --git a/patches/OOO_1_1/crash-sw-redline.diff b/patches/OOO_1_1/crash-sw-redline.diff new file mode 100644 index 000000000..a23ec1b90 --- /dev/null +++ b/patches/OOO_1_1/crash-sw-redline.diff @@ -0,0 +1,17 @@ +Index: sw/source/filter/ww8/ww8par2.cxx +=================================================================== +RCS file: /cvs/sw/sw/source/filter/ww8/ww8par2.cxx,v +retrieving revision 1.87.66.4 +diff -u -r1.87.66.4 ww8par2.cxx +--- sw/source/filter/ww8/ww8par2.cxx 18 Mar 2004 12:18:26 -0000 1.87.66.4 ++++ sw/source/filter/ww8/ww8par2.cxx 20 Sep 2004 07:56:45 -0000 +@@ -2387,7 +2387,8 @@ void WW8TabDesc::MergeCells() + + void WW8TabDesc::FinishSwTable() + { +- pIo->mpRedlineStack->closeall(*pIo->pPaM->GetPoint()); ++ if (pIo->mpRedlineStack) ++ pIo->mpRedlineStack->closeall(*pIo->pPaM->GetPoint()); + delete pIo->mpRedlineStack; + pIo->mpRedlineStack = mpOldRedlineStack; + mpOldRedlineStack = 0; diff --git a/patches/OOO_1_1/fpicker-common.diff b/patches/OOO_1_1/fpicker-common.diff index cb43b532c..f1f03983d 100644 --- a/patches/OOO_1_1/fpicker-common.diff +++ b/patches/OOO_1_1/fpicker-common.diff @@ -3,11 +3,11 @@ @@ -0,0 +1,169 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -175,11 +175,11 @@ @@ -0,0 +1,77 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -309,11 +309,11 @@ @@ -0,0 +1,100 @@ +#************************************************************************* +# -+# $RCSfile$ +# -+# $Revision$ +# -+# last change: $Author$ $Date$ ++# ++# ++# +# +# The Contents of this file are made available subject to the terms of +# either of the following licenses @@ -412,11 +412,11 @@ @@ -0,0 +1,351 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -766,11 +766,11 @@ @@ -0,0 +1,142 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -911,11 +911,11 @@ @@ -0,0 +1,978 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -1892,11 +1892,11 @@ @@ -0,0 +1,238 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -2133,11 +2133,11 @@ @@ -0,0 +1,150 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -2286,11 +2286,11 @@ @@ -0,0 +1,132 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses diff --git a/patches/OOO_1_1/fpicker-kde.diff b/patches/OOO_1_1/fpicker-kde.diff index 6ab4aa62b..d18f37cf6 100644 --- a/patches/OOO_1_1/fpicker-kde.diff +++ b/patches/OOO_1_1/fpicker-kde.diff @@ -3,11 +3,11 @@ @@ -0,0 +1,207 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -213,11 +213,11 @@ @@ -0,0 +1,127 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -343,11 +343,11 @@ @@ -0,0 +1,572 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -827,7 +827,7 @@ +{ + // Filters are separated by ';' + QString qFilter( rFilter ); -+ qFilter.replace( QChar( ';' ), QChar( ' ' ) ); ++ qFilter.replace( QChar( ';' ), QChar( ' ' ) ).replace( "*.*", "*" ); + + m_aFilters.push_back( qMakePair( rTitle, qFilter ) ); +} @@ -918,11 +918,11 @@ @@ -0,0 +1,125 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -1046,11 +1046,11 @@ @@ -0,0 +1,105 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -1154,11 +1154,11 @@ @@ -0,0 +1,100 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -1257,11 +1257,11 @@ @@ -0,0 +1,79 @@ +/************************************************************************* + * -+ * $RCSfile$ + * -+ * $Revision$ + * -+ * last change: $Author$ $Date$ ++ * ++ * ++ * + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses @@ -1339,11 +1339,11 @@ @@ -0,0 +1,103 @@ +#************************************************************************* +# -+# $RCSfile$ +# -+# $Revision$ +# -+# last change: $Author$ $Date$ ++# ++# ++# +# +# The Contents of this file are made available subject to the terms of +# either of the following licenses diff --git a/patches/OOO_1_1/novell-japanese-fonts.diff b/patches/OOO_1_1/novell-japanese-fonts.diff new file mode 100644 index 000000000..f3af8fd26 --- /dev/null +++ b/patches/OOO_1_1/novell-japanese-fonts.diff @@ -0,0 +1,35 @@ +--- officecfg/registry/data/org/openoffice/VCL.xcu.orig 2004-09-23 17:24:21.660322994 +0200 ++++ officecfg/registry/data/org/openoffice/VCL.xcu 2004-09-23 17:33:21.481583768 +0200 +@@ -452,25 +452,25 @@ + </node> + <node oor:name="ja-jp" oor:op="replace"> + <prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace"> +- <value>HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;東風ゴシック;Kochi Gothic;Gothic;MS Mincho;HG Mincho J;HG Mincho L;HG Mincho;Mincho;MS PMincho;HG Mincho Light J;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value> ++ <value>HG Mincho Light J;MS P ゴシック;HGPGothicB;TLPゴシック;LXゴシック;IPAPGothic;Sazanami Gothic;東風ゴシック;Kochi Gothic;Gothic;MS Mincho;HG Mincho J;HG Mincho L;HG Mincho;Mincho;MS PMincho;HG Mincho Light J;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value> + </prop> + <prop oor:name="CJK_PRESENTATION" oor:type="xs:string" oor:op="replace"> +- <value>HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;東風ゴシック;kochigothic;Gothic;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value> ++ <value>HG Mincho Light J;MS P ゴシック;HGPGothicB;TLPゴシック;LXゴシック;IPAPGothic;Sazanami Gothic;東風ゴシック;kochigothic;Gothic;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value> + </prop> + <prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace"> +- <value>Andale Sans UI;MS P ゴシック;TLPゴシック;LXゴシック;東風ゴシック;kochigothic;Gothic;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value> ++ <value>Andale Sans UI;MS P ゴシック;HGPGothicB;TLPゴシック;LXゴシック;IPAPGothic;Sazanami Gothic;東風ゴシック;kochigothic;Gothic;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value> + </prop> + <prop oor:name="CJK_TEXT" oor:type="xs:string" oor:op="replace"> +- <value>HG Mincho Light J;MS P 明朝;TLP明朝;LX明朝;東風明朝;Kochi Mincho;Mincho;Thorndale;Times New Roman;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value> ++ <value>HG Mincho Light J;MS P 明朝;HGPMinchoL;TLP明朝;LX明朝;IPAPMincho;Sazanami Mincho;東風明朝;Kochi Mincho;Mincho;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value> + </prop> + <prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"> +- <value>HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;東風ゴシック;kochigothic;Gothic;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value> ++ <value>HG Mincho Light J;MS P ゴシック;HGGothicB;TLPゴシック;LXゴシック;IPAGothic;Sazanami Gothic;東風ゴシック;kochigothic;Gothic;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value> + </prop> + <prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"> +- <value>HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;東風ゴシック;kochigothic;Gothic;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value> ++ <value>HG Mincho Light J;MS P ゴシック;HGGothicB;TLPゴシック;LXゴシック;IPAGothic;Sazanami Gothic;東風ゴシック;kochigothic;Gothic;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value> + </prop> + <prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"> +- <value>Andale Sans UI;HG Mincho Light J;MS UI Gothic;TLPゴシック;LXゴシック;東風ゴシック;kochigothic;Gothic;gnu-unifont</value> ++ <value>Andale Sans UI;HG Mincho Light J;MS UI Gothic;HGPGothicB;TLPゴシック;LXゴシック;IPAUIGothic;Sazanami Gothic;東風ゴシック;kochigothic;Gothic;gnu-unifont</value> + </prop> + <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"> + <value>HG Mincho Light J;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value> diff --git a/patches/evo2/connectivity-source-drivers-evoab1-5-nstatement-hxx.diff b/patches/evo2/connectivity-source-drivers-evoab1-5-nstatement-hxx.diff index 8e3ea7411..20c963f7f 100644 --- a/patches/evo2/connectivity-source-drivers-evoab1-5-nstatement-hxx.diff +++ b/patches/evo2/connectivity-source-drivers-evoab1-5-nstatement-hxx.diff @@ -154,7 +154,7 @@ + + void reset () throw( ::com::sun::star::sdbc::SQLException); + void clearMyResultSet () throw( ::com::sun::star::sdbc::SQLException); -+ EBookQuery *parseSql( const ::rtl::OUString& sql, ::rtl::OString &rTable ) ++ EBookQuery *parseSql( const ::rtl::OUString& sql, ::rtl::OString &rTable, bool &bIsWithoutWhere ) + throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + EBookQuery *whereAnalysis( const OSQLParseNode* parseTree ) + throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); diff --git a/patches/vclplug/crash-deletion.diff b/patches/vclplug/crash-deletion.diff new file mode 100644 index 000000000..790bc986c --- /dev/null +++ b/patches/vclplug/crash-deletion.diff @@ -0,0 +1,639 @@ +diff -u -r1.41 -r1.41.6.1 +--- vcl/unx/inc/salframe.h 9 Sep 2004 16:24:15 -0000 1.41 ++++ vcl/unx/inc/salframe.h 20 Sep 2004 12:58:19 -0000 1.41.6.1 +@@ -98,23 +98,6 @@ + + namespace vcl_sal { class WMAdaptor; class NetWMAdaptor; class GnomeWMAdaptor; } + +-class SalFrameDelData +-{ +- private: +- +- sal_Bool mbDeleted; +- SalFrameDelData* mpNext; +- +- public: +- SalFrameDelData () : mbDeleted(sal_False), mpNext(NULL) +- {} +- void Delete () { mbDeleted = sal_True; } +- sal_Bool IsDeleted () { return mbDeleted; } +- void SetNext (SalFrameDelData* pData) +- { mpNext = pData; } +- SalFrameDelData* GetNext () { return mpNext; } +-}; +- + // -=-= X11SalFrame =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + #define SHOWSTATE_UNKNOWN -1 + #define SHOWSTATE_MINIMIZED 0 +@@ -191,8 +174,6 @@ + SalI18N_InputContext *mpInputContext; + bool mbDeleteInputContext; + Bool mbInputFocus; +- SalFrameDelData *mpDeleteData; +- void NotifyDeleteData (); + + void GetPosSize( Rectangle &rPosSize ); + void SetSize ( const Size &rSize ); +@@ -251,8 +232,6 @@ + void getPosSize( Rectangle& rRect ) { GetPosSize( rRect ); } + void setPosSize( const Rectangle& rRect ) { SetPosSize( rRect ); } + bool isMapped() const { return bMapped_; } +- void RegisterDeleteData (SalFrameDelData *pData); +- void UnregisterDeleteData (SalFrameDelData *pData); + + virtual SalGraphics* GetGraphics(); + virtual void ReleaseGraphics( SalGraphics* pGraphics ); + + +--- vcl/unx/inc/plugins/gtk/gtkframe.hxx 9 Sep 2004 16:24:46 -0000 1.5 ++++ vcl/unx/inc/plugins/gtk/gtkframe.hxx 20 Sep 2004 10:26:51 -0000 1.4.66.3 +@@ -143,7 +145,7 @@ + static void signalIMPreeditEnd( GtkIMContext*, gpointer ); + static void signalIMPreeditStart( GtkIMContext*, gpointer ); + static gboolean signalIMRetrieveSurrounding( GtkIMContext*, gpointer ); +- ++ static void signalDestroy( GtkObject*, gpointer ); + + GtkSalDisplay* getDisplay(); + GdkDisplay* getGdkDisplay(); + + +--- vcl/unx/inc/plugins/gtk/gtkobject.hxx 20 Feb 2004 08:57:43 -0000 1.2 ++++ vcl/unx/inc/plugins/gtk/gtkobject.hxx 9 Sep 2004 13:58:28 -0000 1.2.154.1 +@@ -84,6 +84,7 @@ + // signals + static gboolean signalButton( GtkWidget*, GdkEventButton*, gpointer ); + static gboolean signalFocus( GtkWidget*, GdkEventFocus*, gpointer ); ++ static void signalDestroy( GtkObject*, gpointer ); + public: + GtkSalObject( GtkSalFrame* pParent ); + virtual ~GtkSalObject(); + +Index: inc/salframe.hxx +=================================================================== +RCS file: /cvs/gsl/vcl/inc/salframe.hxx,v +retrieving revision 1.21 +retrieving revision 1.21.6.1 +diff -u -r1.21 -r1.21.6.1 +--- vcl/inc/salframe.hxx 9 Sep 2004 16:16:17 -0000 1.21 ++++ vcl/inc/salframe.hxx 20 Sep 2004 12:58:18 -0000 1.21.6.1 +@@ -92,6 +92,10 @@ + #include <region.hxx> + #endif + ++#ifndef _VCL_IMPDEL_HXX ++#include <impdel.hxx> ++#endif ++ + #ifndef _RTL_USTRING_HXX_ + #include <rtl/ustring.hxx> + #endif +@@ -182,7 +186,7 @@ + + struct SystemParentData; + +-class SalFrame ++class SalFrame : public vcl::DeletionNotifier + { + void* m_pInst; + SALFRAMEPROC m_pProc; + + + +Index: unx/source/window/salframe.cxx +=================================================================== +RCS file: /cvs/gsl/vcl/unx/source/window/salframe.cxx,v +retrieving revision 1.183 +retrieving revision 1.181.38.3 +diff -u -r1.183 -r1.181.38.3 +--- vcl/unx/source/window/salframe.cxx 9 Sep 2004 16:25:58 -0000 1.183 ++++ vcl/unx/source/window/salframe.cxx 20 Sep 2004 12:58:19 -0000 1.181.38.3 +@@ -670,8 +709,6 @@ + maAlwaysOnTopRaiseTimer.SetTimeoutHdl( LINK( this, X11SalFrame, HandleAlwaysOnTopRaise ) ); + maAlwaysOnTopRaiseTimer.SetTimeout( 100 ); + +- mpDeleteData = NULL; +- + meWindowType = WMAdaptor::windowType_Normal; + mnDecorationFlags = WMAdaptor::decoration_All; + mbMaximizedVert = false; +@@ -719,6 +756,8 @@ + + X11SalFrame::~X11SalFrame() + { ++ notifyDelete(); ++ + if( mhStackingWindow ) + aPresentationReparentList.remove( mhStackingWindow ); + +@@ -752,8 +791,6 @@ + doReparentPresentationDialogues( GetDisplay() ); + } + +- NotifyDeleteData (); +- + if( pGraphics_ ) + { + pGraphics_->DeInit(); +@@ -2556,39 +2593,6 @@ + return nRet; + } + +-// +-// The eventhandler member functions may indirectly call their own destructor. +-// So make sure to be notified of that case to not to touch any member in the +-// rest of the eventhandler. +-// +-void +-X11SalFrame::RegisterDeleteData (SalFrameDelData *pData) +-{ +- pData->SetNext (mpDeleteData); +- mpDeleteData = pData; +-} +-void +-X11SalFrame::NotifyDeleteData () +-{ +- for (SalFrameDelData* pData = mpDeleteData; pData != NULL; pData = pData->GetNext()) +- pData->Delete(); +-} +-void +-X11SalFrame::UnregisterDeleteData (SalFrameDelData *pData) +-{ +- if (mpDeleteData == pData) +- { +- mpDeleteData = pData->GetNext (); +- } +- else +- { +- SalFrameDelData* pList = mpDeleteData; +- while (pList->GetNext() != pData) +- pList = pList->GetNext (); +- pList->SetNext (pData->GetNext()); +- } +-} +- + // F10 means either KEY_F10 or KEY_MENU, which has to be decided + // in the independent part. + struct KeyAlternate +@@ -2811,8 +2815,7 @@ + nSize = 1; + } + +- SalFrameDelData aDeleteWatch; +- RegisterDeleteData (&aDeleteWatch); ++ DeletionListener aDeleteWatch( this ); + + if ( mpInputContext != NULL + && mpInputContext->UseContext() +@@ -2868,12 +2871,10 @@ + // + // update the spot location for PreeditPosition IME style + // +- if (! aDeleteWatch.IsDeleted()) ++ if (! aDeleteWatch.isDeleted()) + { + if (mpInputContext != NULL && mpInputContext->UseContext()) + mpInputContext->UpdateSpotLocation(); +- +- UnregisterDeleteData (&aDeleteWatch); + } + + free (pBuffer); + + +Index: unx/gtk/window/gtkobject.cxx +=================================================================== +RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkobject.cxx,v +retrieving revision 1.3 +retrieving revision 1.3.100.1 +diff -u -r1.3 -r1.3.100.1 +--- vcl/unx/gtk/window/gtkobject.cxx 10 May 2004 15:53:24 -0000 1.3 ++++ vcl/unx/gtk/window/gtkobject.cxx 9 Sep 2004 13:58:29 -0000 1.3.100.1 +@@ -101,6 +101,7 @@ + g_signal_connect( G_OBJECT(m_pSocket), "button-release-event", G_CALLBACK(signalButton), this ); + g_signal_connect( G_OBJECT(m_pSocket), "focus-in-event", G_CALLBACK(signalFocus), this ); + g_signal_connect( G_OBJECT(m_pSocket), "focus-out-event", G_CALLBACK(signalFocus), this ); ++ g_signal_connect( G_OBJECT(m_pSocket), "destroy", G_CALLBACK(signalDestroy), this ); + } + } + +@@ -120,7 +121,8 @@ + + void GtkSalObject::ResetClipRegion() + { +- gdk_window_shape_combine_region( m_pSocket->window, NULL, 0, 0 ); ++ if( m_pSocket ) ++ gdk_window_shape_combine_region( m_pSocket->window, NULL, 0, 0 ); + } + + USHORT GtkSalObject::GetClipRegionType() +@@ -148,7 +150,8 @@ + + void GtkSalObject::EndSetClipRegion() + { +- gdk_window_shape_combine_region( m_pSocket->window, m_pRegion, 0, 0 ); ++ if( m_pSocket ) ++ gdk_window_shape_combine_region( m_pSocket->window, m_pRegion, 0, 0 ); + } + + void GtkSalObject::SetPosSize( long nX, long nY, long nWidth, long nHeight ) +@@ -217,4 +220,13 @@ + pThis->CallCallback( pEvent->in ? SALOBJ_EVENT_GETFOCUS : SALOBJ_EVENT_LOSEFOCUS, NULL ); + + return FALSE; ++} ++ ++void GtkSalObject::signalDestroy( GtkObject* pObj, gpointer object ) ++{ ++ GtkSalObject* pThis = (GtkSalObject*)object; ++ if( GTK_WIDGET(pObj) == pThis->m_pSocket ) ++ { ++ pThis->m_pSocket = NULL; ++ } + } + + +--- vcl/unx/gtk/window/gtkframe.cxx 2004-09-17 17:00:40.000000000 +0100 ++++ vcl/unx/gtk/window/gtkframe.cxx 2004-09-24 18:33:53.807931536 +0100 +@@ -230,6 +230,7 @@ + g_signal_connect( G_OBJECT(m_pWindow), "leave-notify-event", G_CALLBACK(signalCrossing), this ); + g_signal_connect( G_OBJECT(m_pWindow), "enter-notify-event", G_CALLBACK(signalCrossing), this ); + g_signal_connect( G_OBJECT(m_pWindow), "visibility-notify-event", G_CALLBACK(signalVisibility), this ); ++ g_signal_connect( G_OBJECT(m_pWindow), "destroy", G_CALLBACK(signalDestroy), this ); + + // init members + m_pCurrentCursor = NULL; +@@ -433,7 +434,7 @@ + + void GtkSalFrame::SetIcon( USHORT nIcon ) + { +- if( m_nStyle & SAL_FRAME_STYLE_CHILD ) ++ if( m_nStyle & SAL_FRAME_STYLE_CHILD || ! m_pWindow ) + return; + + GList *pPixbufs = NULL; +@@ -547,7 +548,7 @@ + SetPosSize( 0, 0, aDefSize.Width(), aDefSize.Height(), + SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT ); + +- if( m_nStyle & SAL_FRAME_STYLE_DEFAULT ) ++ if( m_nStyle & SAL_FRAME_STYLE_DEFAULT && m_pWindow ) + gtk_window_maximize( m_pWindow ); + } + +@@ -675,7 +676,7 @@ + + void GtkSalFrame::GetClientSize( long& rWidth, long& rHeight ) + { +- if( GTK_WIDGET_MAPPED( GTK_WIDGET(m_pWindow) ) ) ++ if( m_pWindow && GTK_WIDGET_MAPPED( GTK_WIDGET(m_pWindow) ) ) + { + rWidth = maGeometry.nWidth; + rHeight = maGeometry.nHeight; +@@ -866,26 +867,32 @@ + + void GtkSalFrame::SetPointer( PointerStyle ePointerStyle ) + { +- GdkCursor *pCursor = getDisplay()->getCursor( ePointerStyle ); +- gdk_window_set_cursor( GTK_WIDGET(m_pWindow)->window, pCursor ); +- m_pCurrentCursor = pCursor; ++ if( m_pWindow ) ++ { ++ GdkCursor *pCursor = getDisplay()->getCursor( ePointerStyle ); ++ gdk_window_set_cursor( GTK_WIDGET(m_pWindow)->window, pCursor ); ++ m_pCurrentCursor = pCursor; ++ } + } + + void GtkSalFrame::grabPointer( BOOL bGrab, BOOL bOwnerEvents ) + { +- int nMask = ( GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK ); +- GdkGrabStatus nStatus; +- +- if( bGrab ) +- nStatus = gdk_pointer_grab ++ if( m_pWindow ) ++ { ++ int nMask = ( GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK ); ++ GdkGrabStatus nStatus; ++ ++ if( bGrab ) ++ nStatus = gdk_pointer_grab + ( GTK_WIDGET(m_pWindow)->window, bOwnerEvents, + (GdkEventMask) nMask, NULL, m_pCurrentCursor, + GDK_CURRENT_TIME ); +- else +- { +- // Two GdkDisplays may be open +- gdk_display_pointer_ungrab( getGdkDisplay(), GDK_CURRENT_TIME); +- } ++ else ++ { ++ // Two GdkDisplays may be open ++ gdk_display_pointer_ungrab( getGdkDisplay(), GDK_CURRENT_TIME); ++ } ++ } + } + + void GtkSalFrame::CaptureMouse( BOOL bCapture ) +@@ -1357,8 +1348,12 @@ + } + + GTK_YIELD_GRAB(); ++ ++ vcl::DeletionListener aDel( pThis ); ++ + pThis->CallCallback( nEventType, &aEvent ); + ++ if (! aDel.isDeleted() ) + if( bClosePopups ) + { + ImplSVData* pSVData = ImplGetSVData(); +@@ -1415,12 +1410,16 @@ + aEvent.mnButton = 0; + + GTK_YIELD_GRAB(); ++ vcl::DeletionListener aDel( pThis ); ++ + pThis->CallCallback( SALEVENT_MOUSEMOVE, &aEvent ); + ++ if( !aDel.isDeleted() ) { + // ask for the next hint + gint x, y; + GdkModifierType mask; + gdk_window_get_pointer( GTK_WIDGET(pThis->m_pWindow)->window, &x, &y, &mask ); ++ } + + return TRUE; + } +@@ -1472,6 +1471,8 @@ + pThis->m_bWasPreedit = false; + } + ++ ::vcl::DeletionListener aDel( pThis ); ++ + if( pThis->m_pIMContext ) + { + if( pEvent->in ) +@@ -1483,7 +1484,8 @@ + { + gtk_im_context_focus_out( pThis->m_pIMContext ); + pThis->CallCallback( SALEVENT_ENDEXTTEXTINPUT, NULL ); +- gtk_im_context_reset( pThis->m_pIMContext ); ++ if (! aDel.isDeleted() ) ++ gtk_im_context_reset( pThis->m_pIMContext ); + } + } + +@@ -1494,6 +1496,7 @@ + // + // in the meantime do not propagate focus get/lose on a plugged window + // if floats are open ++ if (! aDel.isDeleted() ) + if( ! ((pThis->m_nStyle & SAL_FRAME_STYLE_CHILD) && m_nFloats > 0 ) ) + pThis->CallCallback( pEvent->in ? SALEVENT_GETFOCUS : SALEVENT_LOSEFOCUS, NULL ); + +@@ -1611,7 +1614,9 @@ + + GTK_YIELD_GRAB(); + +- // handle modifiers ++ vcl::DeletionListener aDel( pThis ); ++ ++ // handle modifiers + if( pEvent->keyval == GDK_Shift_L || pEvent->keyval == GDK_Shift_R || + pEvent->keyval == GDK_Control_L || pEvent->keyval == GDK_Control_R || + pEvent->keyval == GDK_Alt_L || pEvent->keyval == GDK_Alt_R || +@@ -1681,30 +1686,36 @@ + + pThis->CallCallback( SALEVENT_KEYMODCHANGE, &aModEvt ); + +- // emulate KEY_MENU +- if( ( pEvent->keyval == GDK_Alt_L || pEvent->keyval == GDK_Alt_R ) && +- ( nModCode & ~(KEY_CONTROLMOD|KEY_MOD2)) == 0 ) ++ if( ! aDel.isDeleted() ) + { +- if( pEvent->type == GDK_KEY_PRESS ) +- pThis->m_bSingleAltPress = true; +- +- else if( pThis->m_bSingleAltPress ) ++ // emulate KEY_MENU ++ if( ( pEvent->keyval == GDK_Alt_L || pEvent->keyval == GDK_Alt_R ) && ++ ( nModCode & ~(KEY_CONTROLMOD|KEY_MOD2)) == 0 ) + { +- SalKeyEvent aKeyEvt; +- +- aKeyEvt.mnCode = KEY_MENU | nModCode; +- aKeyEvt.mnRepeat = 0; +- aKeyEvt.mnTime = pEvent->time; +- aKeyEvt.mnCharCode = 0; +- +- // simulate KEY_MENU +- pThis->CallCallback( SALEVENT_KEYINPUT, &aKeyEvt ); +- pThis->CallCallback( SALEVENT_KEYUP, &aKeyEvt ); +- pThis->m_bSingleAltPress = false; ++ if( pEvent->type == GDK_KEY_PRESS ) ++ pThis->m_bSingleAltPress = true; ++ ++ else if( pThis->m_bSingleAltPress ) ++ { ++ SalKeyEvent aKeyEvt; ++ ++ aKeyEvt.mnCode = KEY_MENU | nModCode; ++ aKeyEvt.mnRepeat = 0; ++ aKeyEvt.mnTime = pEvent->time; ++ aKeyEvt.mnCharCode = 0; ++ ++ // simulate KEY_MENU ++ pThis->CallCallback( SALEVENT_KEYINPUT, &aKeyEvt ); ++ if( ! aDel.isDeleted() ) ++ { ++ pThis->CallCallback( SALEVENT_KEYUP, &aKeyEvt ); ++ pThis->m_bSingleAltPress = false; ++ } ++ } + } ++ else ++ pThis->m_bSingleAltPress = false; + } +- else +- pThis->m_bSingleAltPress = false; + } + else + { +@@ -1717,8 +1728,11 @@ + + pThis->CallCallback( (pEvent->type == GDK_KEY_PRESS) ? SALEVENT_KEYINPUT : SALEVENT_KEYUP, &aEvent ); + +- pThis->m_bSendModChangeOnRelease = false; +- pThis->m_bSingleAltPress = false; ++ if( ! aDel.isDeleted() ) ++ { ++ pThis->m_bSendModChangeOnRelease = false; ++ pThis->m_bSingleAltPress = false; ++ } + } + + return TRUE; +@@ -1787,6 +1801,8 @@ + aTextEvent.mbOnlyCursor = False; + + GTK_YIELD_GRAB(); ++ ++ vcl::DeletionListener aDel( pThis ); + + /* necessary HACK: all keyboard input comes in here as soon as a IMContext is set + * which is logical and consequent. But since even simple input like +@@ -1811,12 +1827,14 @@ + + pThis->m_bWasPreedit = false; + pThis->CallCallback( SALEVENT_KEYINPUT, &aEvent ); ++ if (!aDel.isDeleted()) + pThis->CallCallback( SALEVENT_KEYUP, &aEvent ); + return; + } + + pThis->m_bWasPreedit = false; + pThis->CallCallback( SALEVENT_EXTTEXTINPUT, (void*)&aTextEvent); ++ if (!aDel.isDeleted()) + pThis->CallCallback( SALEVENT_ENDEXTTEXTINPUT, (void*)NULL ); + } + +@@ -1882,2 +1900,12 @@ + return FALSE; + } ++ ++void GtkSalFrame::signalDestroy( GtkObject* pObj, gpointer frame ) ++{ ++ GtkSalFrame* pThis = (GtkSalFrame*)frame; ++ if( GTK_WINDOW( pObj ) == pThis->m_pWindow ) ++ { ++ pThis->m_pWindow = NULL; ++ } ++} ++ + +--- /dev/null 2004-07-26 12:51:14.000000000 +0100 ++++ vcl/inc/impdel.hxx 2004-09-20 13:58:18.000000000 +0100 +@@ -0,0 +1,121 @@ ++/************************************************************************* ++ * ++ * ++ * ++ * ++ * ++ * ++ * ++ * The Contents of this file are made available subject to the terms of ++ * either of the following licenses ++ * ++ * - GNU Lesser General Public License Version 2.1 ++ * - Sun Industry Standards Source License Version 1.1 ++ * ++ * Sun Microsystems Inc., October, 2000 ++ * ++ * GNU Lesser General Public License Version 2.1 ++ * ============================================= ++ * Copyright 2000 by Sun Microsystems, Inc. ++ * 901 San Antonio Road, Palo Alto, CA 94303, USA ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License version 2.1, as published by the Free Software Foundation. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ * ++ * ++ * Sun Industry Standards Source License Version 1.1 ++ * ================================================= ++ * The contents of this file are subject to the Sun Industry Standards ++ * Source License Version 1.1 (the "License"); You may not use this file ++ * except in compliance with the License. You may obtain a copy of the ++ * License at http://www.openoffice.org/license.html. ++ * ++ * Software provided under this License is provided on an "AS IS" basis, ++ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, ++ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, ++ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. ++ * See the License for the specific provisions governing your rights and ++ * obligations concerning the Software. ++ * ++ * The Initial Developer of the Original Code is: Sun Microsystems, Inc. ++ * ++ * Copyright: 2000 by Sun Microsystems, Inc. ++ * ++ * All Rights Reserved. ++ * ++ * Contributor(s): _______________________________________ ++ * ++ * ++ ************************************************************************/ ++ ++ #ifndef _VCL_IMPDEL_HXX ++ #define _VCL_IMPDEL_HXX ++ ++ #include <list> ++ ++ namespace vcl ++ { ++ ++ class DeletionListener; ++ ++ class DeletionNotifier ++ { ++ std::list< DeletionListener* > m_aListeners; ++ protected: ++ DeletionNotifier() {} ++ ++ ~DeletionNotifier() ++ { notifyDelete(); } ++ ++ inline void notifyDelete(); ++ ++ public: ++ void addDel( DeletionListener* pListener ) ++ { m_aListeners.push_back( pListener ); } ++ ++ void removeDel( DeletionListener* pListener ) ++ { m_aListeners.remove( pListener ); } ++ }; ++ ++ class DeletionListener ++ { ++ DeletionNotifier* m_pNotifier; ++ public: ++ DeletionListener( DeletionNotifier* pNotifier ) ++ : m_pNotifier( pNotifier ) ++ { ++ if( m_pNotifier ) ++ m_pNotifier->addDel( this ); ++ } ++ ~DeletionListener() ++ { ++ if( m_pNotifier ) ++ m_pNotifier->removeDel( this ); ++ } ++ void deleted() { m_pNotifier = NULL; } ++ bool isDeleted() { return m_pNotifier == NULL; } ++ }; ++ ++ inline void DeletionNotifier::notifyDelete() ++ { ++ for( std::list< DeletionListener* >::const_iterator it = ++ m_aListeners.begin(); it != m_aListeners.end(); ++it ) ++ (*it)->deleted(); ++ ++ m_aListeners.clear(); ++ } ++ ++ } // namespace vcl ++ ++ #endif // _VCL_IMPDEL_HXX diff --git a/patches/vclplug/crash-ppd-parse.diff b/patches/vclplug/crash-ppd-parse.diff new file mode 100644 index 000000000..8c41014b0 --- /dev/null +++ b/patches/vclplug/crash-ppd-parse.diff @@ -0,0 +1,22 @@ +--- psprint.good/source/printer/cupsmgr.cxx 2004-09-27 04:24:33.000000000 +0100 ++++ psprint/source/printer/cupsmgr.cxx 2004-09-29 17:19:32.578417056 +0100 +@@ -495,11 +495,14 @@ + + rInfo.m_pParser = pNewParser; + rInfo.m_aContext.setParser( pNewParser ); +- for( int i = 0; i < pPPD->num_groups; i++ ) +- updatePrinterContextInfo( pPPD->groups + i, rInfo ); +- +- // clean up the mess +- m_pCUPSWrapper->ppdClose( pPPD ); ++ if (pPPD) ++ { ++ for( int i = 0; i < pPPD->num_groups; i++ ) ++ updatePrinterContextInfo( pPPD->groups + i, rInfo ); ++ ++ // clean up the mess ++ m_pCUPSWrapper->ppdClose( pPPD ); ++ } + + // remove temporary PPD file + unlink( pPPDFile ); diff --git a/patches/vclplug/vcl-unx-kde-data-cxx.diff b/patches/vclplug/vcl-unx-kde-data-cxx.diff index 47d67a0c0..9a2e24584 100644 --- a/patches/vclplug/vcl-unx-kde-data-cxx.diff +++ b/patches/vclplug/vcl-unx-kde-data-cxx.diff @@ -1,6 +1,6 @@ --- /dev/null 2004-04-06 14:27:52.000000000 +0100 +++ vcl/unx/kde/kdedata.cxx 2004-07-13 14:59:42.353195712 +0100 -@@ -0,0 +1,241 @@ +@@ -0,0 +1,243 @@ +/************************************************************************* + * + * @@ -176,7 +176,9 @@ + + KCmdLineArgs::init( nFakeArgc, pFakeArgv, kAboutData ); + ++ KApplication::disableAutoDcopRegistration(); + new KApplication(); ++ + Display* pDisp = QPaintDevice::x11AppDisplay(); + XVisualInfo aVI; + Colormap aColMap; |