diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-02-14 17:08:04 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-02-14 20:57:46 +0100 |
commit | e30caebf76ccd088840b870ecb8929ce132baed0 (patch) | |
tree | 8303dbf8fae28fd42d315815d053964088b12de6 | |
parent | ce16f1f32937ee881268abf91454900b0170c637 (diff) |
don't use gtk_window_group_remove_window if widgets are not GtkWindows
Change-Id: I80d01f29091d7cc06e82295e781ef7a53fb7776b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88739
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkframe.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index 118c77f9f7b3..ee32281378be 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -2252,19 +2252,22 @@ const SystemEnvData* GtkSalFrame::GetSystemData() const void GtkSalFrame::SetParent( SalFrame* pNewParent ) { + GtkWindow* pWindow = GTK_IS_WINDOW(m_pWindow) ? GTK_WINDOW(m_pWindow) : nullptr; if (m_pParent) { - gtk_window_group_remove_window(gtk_window_get_group(GTK_WINDOW(m_pParent->m_pWindow)), GTK_WINDOW(m_pWindow)); + if (pWindow && GTK_IS_WINDOW(m_pParent->m_pWindow)) + gtk_window_group_remove_window(gtk_window_get_group(GTK_WINDOW(m_pParent->m_pWindow)), pWindow); m_pParent->m_aChildren.remove(this); } m_pParent = static_cast<GtkSalFrame*>(pNewParent); if (m_pParent) { m_pParent->m_aChildren.push_back(this); - gtk_window_group_add_window(gtk_window_get_group(GTK_WINDOW(m_pParent->m_pWindow)), GTK_WINDOW(m_pWindow)); + if (pWindow && GTK_IS_WINDOW(m_pParent->m_pWindow)) + gtk_window_group_add_window(gtk_window_get_group(GTK_WINDOW(m_pParent->m_pWindow)), pWindow); } - if( ! isChild() ) - gtk_window_set_transient_for( GTK_WINDOW(m_pWindow), + if (!isChild() && pWindow) + gtk_window_set_transient_for( pWindow, (m_pParent && ! m_pParent->isChild(true,false)) ? GTK_WINDOW(m_pParent->m_pWindow) : nullptr ); } |