summaryrefslogtreecommitdiff
path: root/vcl/unx/gtk3/gtk3gtkframe.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/unx/gtk3/gtk3gtkframe.cxx')
-rw-r--r--vcl/unx/gtk3/gtk3gtkframe.cxx17
1 files changed, 16 insertions, 1 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 82af6fb380e4..c1f70ad3dcc2 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -4264,8 +4264,23 @@ long GtkSalFrame::CallCallbackExc(SalEvent nEvent, const void* pEvent) const
}
catch (const css::uno::Exception&)
{
+ auto e = cppu::getCaughtException();
GtkData *pSalData = static_cast<GtkData*>(GetSalData());
- pSalData->setException(::cppu::getCaughtException());
+ pSalData->setException(e);
+ }
+ catch (std::exception & e)
+ {
+ static_cast<GtkData *>(GetSalData())->setException(
+ css::uno::Any(
+ css::uno::RuntimeException(
+ "wrapped std::exception "
+ + OUString::createFromAscii(e.what()))));
+ }
+ catch (...)
+ {
+ static_cast<GtkData *>(GetSalData())->setException(
+ css::uno::Any(
+ css::uno::RuntimeException("wrapped unknown exception")));
}
return nRet;
}