summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vcl/unx/gtk/window/gtksalmenu.cxx9
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();