summaryrefslogtreecommitdiff
path: root/embedserv
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2007-01-25 10:40:04 +0000
committerOliver Bolte <obo@openoffice.org>2007-01-25 10:40:04 +0000
commitb618458f34613fcf0e5df7c52b4576e0747a0de3 (patch)
tree612da13b28537d355f4590910a1e1eb38855c5a8 /embedserv
parentdf442d05ffc9c0d1b355bac663b1a5a9ceb5634c (diff)
INTEGRATION: CWS mbafixesfor22 (1.26.8); FILE MERGED
2007/01/18 13:06:01 mav 1.26.8.1: #i73611# handle the error cases correctly
Diffstat (limited to 'embedserv')
-rw-r--r--embedserv/source/embed/docholder.cxx55
1 files changed, 25 insertions, 30 deletions
diff --git a/embedserv/source/embed/docholder.cxx b/embedserv/source/embed/docholder.cxx
index 7415f1e4959b..ec012c434218 100644
--- a/embedserv/source/embed/docholder.cxx
+++ b/embedserv/source/embed/docholder.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: docholder.cxx,v $
*
- * $Revision: 1.27 $
+ * $Revision: 1.28 $
*
- * last change: $Author: obo $ $Date: 2007-01-23 07:34:08 $
+ * last change: $Author: obo $ $Date: 2007-01-25 11:40:04 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -710,32 +710,19 @@ void DocumentHolder::DisconnectFrameDocument()
void DocumentHolder::CloseDocument()
{
- try
- {
- uno::Reference< util::XModifyBroadcaster > xModifiable( m_xDocument, uno::UNO_QUERY_THROW );
- xModifiable->removeModifyListener( (util::XModifyListener*)this );
- }
- catch( uno::Exception& )
- {}
-
- uno::Reference< util::XCloseBroadcaster > xBroadcaster(
- m_xDocument, uno::UNO_QUERY );
- if ( xBroadcaster.is() )
- {
- xBroadcaster->removeCloseListener( (util::XCloseListener*)this );
+ DisconnectFrameDocument();
- uno::Reference< util::XCloseable > xCloseable(
- xBroadcaster, uno::UNO_QUERY );
+ uno::Reference< util::XCloseable > xCloseable(
+ m_xDocument, uno::UNO_QUERY );
- if ( xCloseable.is() )
+ if ( xCloseable.is() )
+ {
+ try
{
- try
- {
- xCloseable->close( sal_True );
- }
- catch( uno::Exception& )
- {}
+ xCloseable->close( sal_True );
}
+ catch( uno::Exception& )
+ {}
}
m_pIDispatch = NULL;
@@ -745,10 +732,14 @@ void DocumentHolder::CloseDocument()
void DocumentHolder::CloseFrame()
{
- uno::Reference< util::XCloseBroadcaster > xBroadcaster(
- m_xFrame, uno::UNO_QUERY );
- if ( xBroadcaster.is() )
+ try
+ {
+ uno::Reference< util::XCloseBroadcaster > xBroadcaster(
+ m_xFrame, uno::UNO_QUERY_THROW );
xBroadcaster->removeCloseListener( (util::XCloseListener*)this );
+ }
+ catch( uno::Exception& )
+ {}
uno::Reference<util::XCloseable> xCloseable(
m_xFrame,uno::UNO_QUERY);
@@ -1561,10 +1552,14 @@ void SAL_CALL
DocumentHolder::notifyClosing(
const lang::EventObject& aSource )
{
- uno::Reference< util::XCloseBroadcaster > xEventBroadcaster(
- aSource.Source, uno::UNO_QUERY );
- if ( xEventBroadcaster.is() )
+ try
+ {
+ uno::Reference< util::XCloseBroadcaster > xEventBroadcaster(
+ aSource.Source, uno::UNO_QUERY_THROW );
xEventBroadcaster->removeCloseListener( (util::XCloseListener*)this );
+ }
+ catch( uno::Exception& )
+ {}
if ( m_xDocument.is() && m_xDocument == aSource.Source )
{