diff options
-rw-r--r-- | vcl/unx/gtk/window/gtksalmenu.cxx | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/vcl/unx/gtk/window/gtksalmenu.cxx b/vcl/unx/gtk/window/gtksalmenu.cxx index dcbcd78425c6..92176b7467fc 100644 --- a/vcl/unx/gtk/window/gtksalmenu.cxx +++ b/vcl/unx/gtk/window/gtksalmenu.cxx @@ -450,9 +450,18 @@ void GtkSalMenu::SetSubMenu( SalMenuItem* pSalMenuItem, SalMenu* pSubMenu, unsig pItem->mpSubMenu = pGtkSubMenu; } +class GdkThreadLock +{ +public: + GdkThreadLock() { gdk_threads_enter(); } + ~GdkThreadLock() { gdk_threads_leave(); } +}; + static bool bInvalidMenus = false; static gboolean RefreshMenusUnity(gpointer) { + GdkThreadLock aLock; + SalDisplay* pSalDisplay = GetGenericData()->GetSalDisplay(); std::list< SalFrame* >::const_iterator pSalFrame = pSalDisplay->getFrames().begin(); std::list< SalFrame* >::const_iterator pEndSalFrame = pSalDisplay->getFrames().end(); |