diff options
Diffstat (limited to 'vcl/unx/gtk3/gtk3gtkframe.cxx')
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkframe.cxx | 17 |
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; } |