From 945cf125814aa6b8d8f12a41e322437f422babf8 Mon Sep 17 00:00:00 2001 From: ed Date: Fri, 5 Jun 2020 17:17:52 +0100 Subject: [PATCH] Linux: Don't call XFreeCursor() on invalid display --- .../juce_gui_basics/native/juce_linux_X11_Windowing.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp b/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp index c20353125c..af32785da2 100644 --- a/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp @@ -4114,15 +4114,13 @@ void MouseCursor::showInWindow (ComponentPeer* peer) const { if (auto* lp = dynamic_cast (peer)) { + auto cursor = (Cursor) getHandle(); + ScopedXDisplay xDisplay; - auto cursor = (Cursor) getHandle(); - auto cursorDisplay = cursorMap[cursor]; - - if (cursorHandle != nullptr && xDisplay.display != cursorDisplay) + if (cursorHandle != nullptr && xDisplay.display != cursorMap[cursor]) { cursorMap.erase (cursor); - XFreeCursor (cursorDisplay, cursor); if (auto* customInfo = cursorHandle->getCustomInfo()) cursorHandle->setHandle (customInfo->create());