Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ctrl+Q for quitting on Win & Linux #20

Closed
Adopo opened this issue Mar 14, 2018 · 4 comments
Closed

Ctrl+Q for quitting on Win & Linux #20

Adopo opened this issue Mar 14, 2018 · 4 comments

Comments

@Adopo
Copy link

Adopo commented Mar 14, 2018

Hello I have shown chataigne during a workshop with digital animator to give to us solution to control music.
One of the animateur have installed chataigne on linux 64 bit. It works fine but it had no command to close the software or minimize it.
The only way is to use alt+tab to navigate in another softwate or alt+f4 to quit.

@benkuper
Copy link
Owner

Thanks for the feedback, the problem is actually accross all platforms, except on Mac, you do Command+Q instead of Alt+F4 to use the system's closing app feature.
There should still be a closing button on Linux, but i'll integrate the shortcut in the next version.

@benkuper benkuper changed the title Problem linux to close the programm Ctrl+Q for quitting on Win & Linux Mar 15, 2018
@benkuper
Copy link
Owner

7beb8bc

@Adopo
Copy link
Author

Adopo commented Mar 15, 2018

For information shortcut on linux are functionnal. On linux we can do alt+f4 for closing application ans alt+tab to change with an another. But impossible to go to the desktop.
Maybe if we have multi desktop is possible.
I dont know if this is functionnal on all linux

@benkuper
Copy link
Owner

Yes, those shortcuts are handled by the system, i have added unified handling of the Command+Q shortcut. The minimizing should be the same as other softwares, with the window's buttons.

tommag added a commit that referenced this issue Jul 2, 2020
ASan trace :
==7333==ERROR: AddressSanitizer: heap-use-after-free on address 0x6060002130e0 at pc 0x55f838c5c954 bp 0x7ffd4f386760 sp 0x7ffd4f386750
READ of size 8 at 0x6060002130e0 thread T0
../servus/avahi/servus.h:339: Resolver error: Timeout reached
    #0 0x55f838c5c953 in juce::Array<CommandTemplate::TemplateListener*, juce::DummyCriticalSection, 0>::removeFirstMatchingValue(CommandTemplate::TemplateListener*) /home/tom/JUCE/modules/juce_core/containers/juce_Array.h:841
    #1 0x55f838c5c953 in juce::ListenerList<CommandTemplate::TemplateListener, juce::Array<CommandTemplate::TemplateListener*, juce::DummyCriticalSection, 0> >::remove(CommandTemplate::TemplateListener*) /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:98
    #2 0x55f838c5c953 in CommandTemplate::removeCommandTemplateListener(CommandTemplate::TemplateListener*) ../../Source/Common/Command/Template/CommandTemplate.h:63
    #3 0x55f838c5c953 in BaseCommand::linkToTemplate(CommandTemplate*) ../../Source/Common/Command/BaseCommand.cpp:116
    #4 0x55f838c6531a in BaseCommand::~BaseCommand() ../../Source/Common/Command/BaseCommand.cpp:34
    #5 0x55f8393235c0 in MIDICommand::~MIDICommand() ../../Source/Module/modules/midi/commands/MIDICommands.cpp:21
    #6 0x55f83932395e in MIDINoteAndCCCommand::~MIDINoteAndCCCommand() ../../Source/Module/modules/midi/commands/MIDICommands.cpp:83
    #7 0x55f839323a48 in MIDINoteAndCCCommand::~MIDINoteAndCCCommand() ../../Source/Module/modules/midi/commands/MIDICommands.cpp:86
    #8 0x55f838c7a97a in std::default_delete<BaseCommand>::operator()(BaseCommand*) const /usr/include/c++/10.1.0/bits/unique_ptr.h:84
    #9 0x55f838c7a97a in std::__uniq_ptr_impl<BaseCommand, std::default_delete<BaseCommand> >::reset(BaseCommand*) /usr/include/c++/10.1.0/bits/unique_ptr.h:181
    #10 0x55f838c7a97a in std::unique_ptr<BaseCommand, std::default_delete<BaseCommand> >::reset(BaseCommand*) /usr/include/c++/10.1.0/bits/unique_ptr.h:455
    #11 0x55f838c7a97a in BaseCommandHandler::setCommand(CommandDefinition*) ../../Source/Common/Command/BaseCommandHandler.cpp:71
    #12 0x55f838c78483 in BaseCommandHandler::commandTemplateDestroyed() ../../Source/Common/Command/BaseCommandHandler.cpp:205
    #13 0x55f838c6086d in juce::ListenerList<BaseCommand::CommandListener, juce::Array<BaseCommand::CommandListener*, juce::DummyCriticalSection, 0> >::call(void (BaseCommand::CommandListener::*)())::{lambda(BaseCommand::CommandListener&)#1}::operator()(BaseCommand::CommandListener&) const /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:238
    #14 0x55f838c6086d in void juce::ListenerList<BaseCommand::CommandListener, juce::Array<BaseCommand::CommandListener*, juce::DummyCriticalSection, 0> >::call<juce::ListenerList<BaseCommand::CommandListener, juce::Array<BaseCommand::CommandListener*, juce::DummyCriticalSection, 0> >::call(void (BaseCommand::CommandListener::*)())::{lambda(BaseCommand::CommandListener&)#1}>(juce::ListenerList<BaseCommand::CommandListener, juce::Array<BaseCommand::CommandListener*, juce::DummyCriticalSection, 0> >::call(void (BaseCommand::CommandListener::*)())::{lambda(BaseCommand::CommandListener&)#1}&&) /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:124
    #15 0x55f838c6086d in juce::ListenerList<BaseCommand::CommandListener, juce::Array<BaseCommand::CommandListener*, juce::DummyCriticalSection, 0> >::call(void (BaseCommand::CommandListener::*)()) /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:238
    #16 0x55f838c6086d in BaseCommand::inspectableDestroyed(Inspectable*) ../../Source/Common/Command/BaseCommand.cpp:330
    #17 0x55f83aa8e858 in void juce::ListenerList<Inspectable::InspectableListener, juce::Array<Inspectable::InspectableListener*, juce::DummyCriticalSection, 0> >::call<Inspectable*, Inspectable*>(void (Inspectable::InspectableListener::*)(Inspectable*), Inspectable*&&) /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:266
    #18 0x55f83aa8e858 in Inspectable::~Inspectable() /home/tom/JUCE/modules/juce_organicui/inspectable/Inspectable.cpp:26
    #19 0x55f83a6906f7 in ControllableContainer::~ControllableContainer() /home/tom/JUCE/modules/juce_organicui/controllable/ControllableContainer.cpp:64
    #20 0x55f83aa01a49 in BaseItem::~BaseItem() /home/tom/JUCE/modules/juce_organicui/controllable/ControllableContainer.h:306
    #21 0x55f838c28c84 in CommandTemplate::~CommandTemplate() ../../Source/Common/Command/Template/CommandTemplate.cpp:112
    #22 0x55f838c28f70 in CommandTemplate::~CommandTemplate() ../../Source/Common/Command/Template/CommandTemplate.cpp:115
    #23 0x55f838c15944 in BaseManager<CommandTemplate>::removeItem(CommandTemplate*, bool, bool) (/home/tom/tmp/Chataigne/Chataigne/Builds/LinuxMakefile/build/Chataigne+0x9cc944)
    #24 0x55f838c441b4 in BaseManager<CommandTemplate>::RemoveItemAction::perform() /home/tom/JUCE/modules/juce_organicui/manager/BaseManager.h:1127
    #25 0x55f839d50c8d in juce::UndoManager::perform(juce::UndoableAction*) /home/tom/JUCE/modules/juce_data_structures/undomanager/juce_UndoManager.cpp:124
    #26 0x55f839d51c0b in juce::UndoManager::perform(juce::UndoableAction*, juce::String const&) /home/tom/JUCE/modules/juce_data_structures/undomanager/juce_UndoManager.cpp:100
    #27 0x55f83aa3820b in UndoMaster::performActions(juce::String const&, juce::Array<juce::UndoableAction*, juce::DummyCriticalSection, 0>) /home/tom/JUCE/modules/juce_organicui/undo/UndoMaster.cpp:37
    #28 0x55f838c15612 in BaseManager<CommandTemplate>::removeItem(CommandTemplate*, bool, bool) (/home/tom/tmp/Chataigne/Chataigne/Builds/LinuxMakefile/build/Chataigne+0x9cc612)
    #29 0x55f838c40344 in BaseManager<CommandTemplate>::askForRemoveBaseItem(BaseItem*) /home/tom/JUCE/modules/juce_organicui/manager/BaseManager.h:648
    #30 0x55f83aa524a1 in void juce::ListenerList<BaseItemListener, juce::Array<BaseItemListener*, juce::DummyCriticalSection, 0> >::call<BaseItem*, BaseItem*>(void (BaseItemListener::*)(BaseItem*), BaseItem*&&) /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:266
    #31 0x55f83aa524a1 in BaseItem::remove() /home/tom/JUCE/modules/juce_organicui/manager/BaseItem.cpp:121
    #32 0x55f83aacb45f in BaseItemEditor::buttonClicked(juce::Button*) /home/tom/JUCE/modules/juce_organicui/manager/ui/BaseItemEditor.cpp:99
    #33 0x55f83a1927a5 in operator() /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:401
    #34 0x55f83a1927a5 in callChecked<juce::Button::sendClickMessage(const juce::ModifierKeys&)::<lambda(juce::Button::Listener&)>, juce::Component::BailOutChecker> /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:153
    #35 0x55f83a1927a5 in juce::Button::sendClickMessage(juce::ModifierKeys const&) /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:401
    #36 0x55f83a219475 in juce::Button::internalClickCallback(juce::ModifierKeys const&) /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:350
    #37 0x55f83a28fbce in juce::Button::mouseUp(juce::MouseEvent const&) /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:470
    #38 0x55f83a285da1 in juce::Component::internalMouseUp(juce::MouseInputSource, juce::Point<float>, juce::Time, juce::ModifierKeys, float, float, float, float, float) /home/tom/JUCE/modules/juce_gui_basics/components/juce_Component.cpp:2444
    #39 0x55f83a489438 in juce::MouseInputSourceInternal::sendMouseUp(juce::Component&, juce::Point<float>, juce::Time, juce::ModifierKeys) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:154
    #40 0x55f83a489438 in juce::MouseInputSourceInternal::setButtons(juce::Point<float>, juce::Time, juce::ModifierKeys) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:196
    #41 0x55f83a2f5f0a in juce::MouseInputSourceInternal::handleEvent(juce::ComponentPeer&, juce::Point<float>, juce::Time, juce::ModifierKeys, float, float, juce::PenDetails) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:333
    #42 0x55f83a2f5f0a in juce::MouseInputSource::handleEvent(juce::ComponentPeer&, juce::Point<float>, long long, juce::ModifierKeys, float, float, juce::PenDetails const&) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:633
    #43 0x55f83a2f6363 in juce::ComponentPeer::handleMouseEvent(juce::MouseInputSource::InputSourceType, juce::Point<float>, juce::ModifierKeys, float, float, long long, juce::PenDetails, int) /home/tom/JUCE/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp:87
    #44 0x55f83a2ff420 in juce::XWindowSystem::handleButtonReleaseEvent(juce::LinuxComponentPeer<unsigned long>*, XButtonEvent const&) const /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3105
    #45 0x55f83a301bb6 in juce::XWindowSystem::handleWindowMessage(juce::LinuxComponentPeer<unsigned long>*, _XEvent&) const /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:2839
    #46 0x55f83a3024c8 in windowMessageReceive /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3359
    #47 0x55f83a139cfb in operator() /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:2768
    #48 0x55f83a139cfb in __invoke_impl<void, juce::XWindowSystem::initialiseXDisplay()::<lambda(int)>&, int> /usr/include/c++/10.1.0/bits/invoke.h:60
    #49 0x55f83a139cfb in __invoke_r<void, juce::XWindowSystem::initialiseXDisplay()::<lambda(int)>&, int> /usr/include/c++/10.1.0/bits/invoke.h:110
    #50 0x55f83a139cfb in _M_invoke /usr/include/c++/10.1.0/bits/std_function.h:291
    #51 0x55f839e6f4e4 in std::function<void (int)>::operator()(int) const /usr/include/c++/10.1.0/bits/std_function.h:622
    #52 0x55f839e6f4e4 in juce::InternalRunLoop::dispatchPendingEvents() /home/tom/JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:186
    #53 0x55f839e62b43 in juce::MessageManager::dispatchNextMessageOnSystemQueue(bool) /home/tom/JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:300
    #54 0x55f839e62e0f in juce::MessageManager::runDispatchLoop() /home/tom/JUCE/modules/juce_events/messages/juce_MessageManager.cpp:128
    #55 0x55f839e63694 in juce::JUCEApplicationBase::main() /home/tom/JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:262
    #56 0x55f839e637ea in juce::JUCEApplicationBase::main(int, char const**) /home/tom/JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:240
    #57 0x55f83984589b in main ../../Source/Main.h:35
    #58 0x7f16c2374001 in __libc_start_main (/usr/lib/libc.so.6+0x27001)
    #59 0x55f838b9370d in _start (/home/tom/tmp/Chataigne/Chataigne/Builds/LinuxMakefile/build/Chataigne+0x94a70d)

0x6060002130e0 is located 0 bytes inside of 64-byte region [0x6060002130e0,0x606000213120)
freed by thread T0 here:
    #0 0x7f16c34100e9 in __interceptor_free /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:123
    #1 0x55f838c28b55 in juce::HeapBlock<CommandTemplate::TemplateListener*, false>::~HeapBlock() /home/tom/JUCE/modules/juce_core/memory/juce_HeapBlock.h:136
    #2 0x55f838c28b55 in juce::ArrayBase<CommandTemplate::TemplateListener*, juce::DummyCriticalSection>::~ArrayBase() /home/tom/JUCE/modules/juce_core/containers/juce_ArrayBase.h:56
    #3 0x55f838c28b55 in juce::Array<CommandTemplate::TemplateListener*, juce::DummyCriticalSection, 0>::~Array() /home/tom/JUCE/modules/juce_core/containers/juce_Array.h:132
    #4 0x55f838c28b55 in juce::ListenerList<CommandTemplate::TemplateListener, juce::Array<CommandTemplate::TemplateListener*, juce::DummyCriticalSection, 0> >::~ListenerList() /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:76
    #5 0x55f838c28b55 in CommandTemplate::~CommandTemplate() ../../Source/Common/Command/Template/CommandTemplate.cpp:112
    #6 0x55f838c28f70 in CommandTemplate::~CommandTemplate() ../../Source/Common/Command/Template/CommandTemplate.cpp:115
    #7 0x55f838c15944 in BaseManager<CommandTemplate>::removeItem(CommandTemplate*, bool, bool) (/home/tom/tmp/Chataigne/Chataigne/Builds/LinuxMakefile/build/Chataigne+0x9cc944)
    #8 0x55f838c441b4 in BaseManager<CommandTemplate>::RemoveItemAction::perform() /home/tom/JUCE/modules/juce_organicui/manager/BaseManager.h:1127
    #9 0x55f839d50c8d in juce::UndoManager::perform(juce::UndoableAction*) /home/tom/JUCE/modules/juce_data_structures/undomanager/juce_UndoManager.cpp:124
    #10 0x55f839d51c0b in juce::UndoManager::perform(juce::UndoableAction*, juce::String const&) /home/tom/JUCE/modules/juce_data_structures/undomanager/juce_UndoManager.cpp:100
    #11 0x55f83aa3820b in UndoMaster::performActions(juce::String const&, juce::Array<juce::UndoableAction*, juce::DummyCriticalSection, 0>) /home/tom/JUCE/modules/juce_organicui/undo/UndoMaster.cpp:37
    #12 0x55f838c15612 in BaseManager<CommandTemplate>::removeItem(CommandTemplate*, bool, bool) (/home/tom/tmp/Chataigne/Chataigne/Builds/LinuxMakefile/build/Chataigne+0x9cc612)
    #13 0x55f838c40344 in BaseManager<CommandTemplate>::askForRemoveBaseItem(BaseItem*) /home/tom/JUCE/modules/juce_organicui/manager/BaseManager.h:648
    #14 0x55f83aa524a1 in void juce::ListenerList<BaseItemListener, juce::Array<BaseItemListener*, juce::DummyCriticalSection, 0> >::call<BaseItem*, BaseItem*>(void (BaseItemListener::*)(BaseItem*), BaseItem*&&) /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:266
    #15 0x55f83aa524a1 in BaseItem::remove() /home/tom/JUCE/modules/juce_organicui/manager/BaseItem.cpp:121
    #16 0x55f83aacb45f in BaseItemEditor::buttonClicked(juce::Button*) /home/tom/JUCE/modules/juce_organicui/manager/ui/BaseItemEditor.cpp:99
    #17 0x55f83a1927a5 in operator() /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:401
    #18 0x55f83a1927a5 in callChecked<juce::Button::sendClickMessage(const juce::ModifierKeys&)::<lambda(juce::Button::Listener&)>, juce::Component::BailOutChecker> /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:153
    #19 0x55f83a1927a5 in juce::Button::sendClickMessage(juce::ModifierKeys const&) /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:401
    #20 0x55f83a219475 in juce::Button::internalClickCallback(juce::ModifierKeys const&) /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:350
    #21 0x55f83a28fbce in juce::Button::mouseUp(juce::MouseEvent const&) /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:470
    #22 0x55f83a285da1 in juce::Component::internalMouseUp(juce::MouseInputSource, juce::Point<float>, juce::Time, juce::ModifierKeys, float, float, float, float, float) /home/tom/JUCE/modules/juce_gui_basics/components/juce_Component.cpp:2444
    #23 0x55f83a489438 in juce::MouseInputSourceInternal::sendMouseUp(juce::Component&, juce::Point<float>, juce::Time, juce::ModifierKeys) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:154
    #24 0x55f83a489438 in juce::MouseInputSourceInternal::setButtons(juce::Point<float>, juce::Time, juce::ModifierKeys) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:196
    #25 0x55f83a2f5f0a in juce::MouseInputSourceInternal::handleEvent(juce::ComponentPeer&, juce::Point<float>, juce::Time, juce::ModifierKeys, float, float, juce::PenDetails) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:333
    #26 0x55f83a2f5f0a in juce::MouseInputSource::handleEvent(juce::ComponentPeer&, juce::Point<float>, long long, juce::ModifierKeys, float, float, juce::PenDetails const&) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:633
    #27 0x55f83a2f6363 in juce::ComponentPeer::handleMouseEvent(juce::MouseInputSource::InputSourceType, juce::Point<float>, juce::ModifierKeys, float, float, long long, juce::PenDetails, int) /home/tom/JUCE/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp:87
    #28 0x55f83a2ff420 in juce::XWindowSystem::handleButtonReleaseEvent(juce::LinuxComponentPeer<unsigned long>*, XButtonEvent const&) const /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3105
    #29 0x55f83a301bb6 in juce::XWindowSystem::handleWindowMessage(juce::LinuxComponentPeer<unsigned long>*, _XEvent&) const /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:2839
    #30 0x55f83a3024c8 in windowMessageReceive /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3359
    #31 0x55f83a139cfb in operator() /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:2768
    #32 0x55f83a139cfb in __invoke_impl<void, juce::XWindowSystem::initialiseXDisplay()::<lambda(int)>&, int> /usr/include/c++/10.1.0/bits/invoke.h:60
    #33 0x55f83a139cfb in __invoke_r<void, juce::XWindowSystem::initialiseXDisplay()::<lambda(int)>&, int> /usr/include/c++/10.1.0/bits/invoke.h:110
    #34 0x55f83a139cfb in _M_invoke /usr/include/c++/10.1.0/bits/std_function.h:291
    #35 0x55f839e6f4e4 in std::function<void (int)>::operator()(int) const /usr/include/c++/10.1.0/bits/std_function.h:622
    #36 0x55f839e6f4e4 in juce::InternalRunLoop::dispatchPendingEvents() /home/tom/JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:186
    #37 0x55f839e62b43 in juce::MessageManager::dispatchNextMessageOnSystemQueue(bool) /home/tom/JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:300
    #38 0x55f839e62e0f in juce::MessageManager::runDispatchLoop() /home/tom/JUCE/modules/juce_events/messages/juce_MessageManager.cpp:128
    #39 0x55f839e63694 in juce::JUCEApplicationBase::main() /home/tom/JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:262
    #40 0x55f839e637ea in juce::JUCEApplicationBase::main(int, char const**) /home/tom/JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:240
    #41 0x55f83984589b in main ../../Source/Main.h:35
    #42 0x7f16c2374001 in __libc_start_main (/usr/lib/libc.so.6+0x27001)
tommag added a commit that referenced this issue Jul 2, 2020
ASan trace :
==8825==ERROR: AddressSanitizer: heap-use-after-free on address 0x6060001e04a0 at pc 0x557dffa736be bp 0x7fff7fc5b510 sp 0x7fff7fc5b500
READ of size 8 at 0x6060001e04a0 thread T0
    #0 0x557dffa736bd in juce::Array<Module::ModuleListener*, juce::DummyCriticalSection, 0>::removeFirstMatchingValue(Module::ModuleListener*) /home/tom/JUCE/modules/juce_core/containers/juce_Array.h:841
    #1 0x557dffa736bd in juce::ListenerList<Module::ModuleListener, juce::Array<Module::ModuleListener*, juce::DummyCriticalSection, 0> >::remove(Module::ModuleListener*) /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:98
    #2 0x557dffa736bd in Module::removeModuleListener(Module::ModuleListener*) ../../Source/Module/ui/../Module.h:151
    #3 0x557dffa736bd in ModuleEditor::~ModuleEditor() ../../Source/Module/ui/ModuleEditor.cpp:31
    #4 0x557dffa73b32 in ModuleEditor::~ModuleEditor() ../../Source/Module/ui/ModuleEditor.cpp:32
    #5 0x557e00f0ed31 in std::default_delete<InspectableEditor>::operator()(InspectableEditor*) const /usr/include/c++/10.1.0/bits/unique_ptr.h:84
    #6 0x557e00f0ed31 in std::__uniq_ptr_impl<InspectableEditor, std::default_delete<InspectableEditor> >::reset(InspectableEditor*) /usr/include/c++/10.1.0/bits/unique_ptr.h:181
    #7 0x557e00f0ed31 in std::unique_ptr<InspectableEditor, std::default_delete<InspectableEditor> >::reset(InspectableEditor*) /usr/include/c++/10.1.0/bits/unique_ptr.h:455
    #8 0x557e00f0ed31 in std::unique_ptr<InspectableEditor, std::default_delete<InspectableEditor> >::operator=(decltype(nullptr)) /usr/include/c++/10.1.0/bits/unique_ptr.h:396
    #9 0x557e00f0ed31 in Inspector::setCurrentInspectable(juce::WeakReference<Inspectable, juce::ReferenceCountedObject>, bool) /home/tom/JUCE/modules/juce_organicui/inspectable/ui/Inspector.cpp:97
    #10 0x557e00f0f8ef in Inspector::inspectableDestroyed(Inspectable*) /home/tom/JUCE/modules/juce_organicui/inspectable/ui/Inspector.cpp:123
    #11 0x557e00f32950 in void juce::ListenerList<Inspectable::InspectableListener, juce::Array<Inspectable::InspectableListener*, juce::DummyCriticalSection, 0> >::call<Inspectable*, Inspectable*>(void (Inspectable::InspectableListener::*)(Inspectable*), Inspectable*&&) /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:266
    #12 0x557e00f32950 in Inspectable::~Inspectable() /home/tom/JUCE/modules/juce_organicui/inspectable/Inspectable.cpp:26
    #13 0x557e00b347ef in ControllableContainer::~ControllableContainer() /home/tom/JUCE/modules/juce_organicui/controllable/ControllableContainer.cpp:64
    #14 0x557e00ea5b41 in BaseItem::~BaseItem() /home/tom/JUCE/modules/juce_organicui/controllable/ControllableContainer.h:306
    #15 0x557dffabcc9c in Module::~Module() ../../Source/Module/Module.cpp:76
    #16 0x557dff8ea38b in OSCModule::~OSCModule() ../../Source/Module/modules/osc/OSCModule.cpp:94
    #17 0x557dff85fdb0 in CustomOSCModule::~CustomOSCModule() ../../Source/Module/modules/osc/custom/CustomOSCModule.h:20
    #18 0x557dff85fdb0 in CustomOSCModule::~CustomOSCModule() ../../Source/Module/modules/osc/custom/CustomOSCModule.h:20
    #19 0x557dffa93f3e in BaseManager<Module>::removeItem(Module*, bool, bool) /home/tom/JUCE/modules/juce_organicui/manager/BaseManager.h:582
    #20 0x557dffafe530 in BaseManager<Module>::RemoveItemAction::perform() /home/tom/JUCE/modules/juce_organicui/manager/BaseManager.h:1127
    #21 0x557e001f4d85 in juce::UndoManager::perform(juce::UndoableAction*) /home/tom/JUCE/modules/juce_data_structures/undomanager/juce_UndoManager.cpp:124
    #22 0x557e001f5d03 in juce::UndoManager::perform(juce::UndoableAction*, juce::String const&) /home/tom/JUCE/modules/juce_data_structures/undomanager/juce_UndoManager.cpp:100
    #23 0x557e00edc303 in UndoMaster::performActions(juce::String const&, juce::Array<juce::UndoableAction*, juce::DummyCriticalSection, 0>) /home/tom/JUCE/modules/juce_organicui/undo/UndoMaster.cpp:37
    #24 0x557dffa93c0c in BaseManager<Module>::removeItem(Module*, bool, bool) /home/tom/JUCE/modules/juce_organicui/manager/BaseManager.h:559
    #25 0x557dffafaadc in BaseManager<Module>::askForRemoveBaseItem(BaseItem*) /home/tom/JUCE/modules/juce_organicui/manager/BaseManager.h:648
    #26 0x557e00ef6599 in void juce::ListenerList<BaseItemListener, juce::Array<BaseItemListener*, juce::DummyCriticalSection, 0> >::call<BaseItem*, BaseItem*>(void (BaseItemListener::*)(BaseItem*), BaseItem*&&) /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:266
    #27 0x557e00ef6599 in BaseItem::remove() /home/tom/JUCE/modules/juce_organicui/manager/BaseItem.cpp:121
    #28 0x557dff5dbb3f in BaseItemUI<Module>::buttonClicked(juce::Button*) /home/tom/JUCE/modules/juce_organicui/manager/ui/BaseItemUI.h:363
    #29 0x557e0063689d in operator() /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:401
    #30 0x557e0063689d in callChecked<juce::Button::sendClickMessage(const juce::ModifierKeys&)::<lambda(juce::Button::Listener&)>, juce::Component::BailOutChecker> /home/tom/JUCE/modules/juce_core/containers/juce_ListenerList.h:153
    #31 0x557e0063689d in juce::Button::sendClickMessage(juce::ModifierKeys const&) /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:401
    #32 0x557e006bd56d in juce::Button::internalClickCallback(juce::ModifierKeys const&) /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:350
    #33 0x557e00733cc6 in juce::Button::mouseUp(juce::MouseEvent const&) /home/tom/JUCE/modules/juce_gui_basics/buttons/juce_Button.cpp:470
    #34 0x557e00729e99 in juce::Component::internalMouseUp(juce::MouseInputSource, juce::Point<float>, juce::Time, juce::ModifierKeys, float, float, float, float, float) /home/tom/JUCE/modules/juce_gui_basics/components/juce_Component.cpp:2444
    #35 0x557e0092d530 in juce::MouseInputSourceInternal::sendMouseUp(juce::Component&, juce::Point<float>, juce::Time, juce::ModifierKeys) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:154
    #36 0x557e0092d530 in juce::MouseInputSourceInternal::setButtons(juce::Point<float>, juce::Time, juce::ModifierKeys) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:196
    #37 0x557e0079a002 in juce::MouseInputSourceInternal::handleEvent(juce::ComponentPeer&, juce::Point<float>, juce::Time, juce::ModifierKeys, float, float, juce::PenDetails) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:333
    #38 0x557e0079a002 in juce::MouseInputSource::handleEvent(juce::ComponentPeer&, juce::Point<float>, long long, juce::ModifierKeys, float, float, juce::PenDetails const&) /home/tom/JUCE/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp:633
    #39 0x557e0079a45b in juce::ComponentPeer::handleMouseEvent(juce::MouseInputSource::InputSourceType, juce::Point<float>, juce::ModifierKeys, float, float, long long, juce::PenDetails, int) /home/tom/JUCE/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp:87
    #40 0x557e007a3518 in juce::XWindowSystem::handleButtonReleaseEvent(juce::LinuxComponentPeer<unsigned long>*, XButtonEvent const&) const /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3105
    #41 0x557e007a5cae in juce::XWindowSystem::handleWindowMessage(juce::LinuxComponentPeer<unsigned long>*, _XEvent&) const /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:2839
    #42 0x557e007a65c0 in windowMessageReceive /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:3359
    #43 0x557e005dddf3 in operator() /home/tom/JUCE/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp:2768
    #44 0x557e005dddf3 in __invoke_impl<void, juce::XWindowSystem::initialiseXDisplay()::<lambda(int)>&, int> /usr/include/c++/10.1.0/bits/invoke.h:60
    #45 0x557e005dddf3 in __invoke_r<void, juce::XWindowSystem::initialiseXDisplay()::<lambda(int)>&, int> /usr/include/c++/10.1.0/bits/invoke.h:110
    #46 0x557e005dddf3 in _M_invoke /usr/include/c++/10.1.0/bits/std_function.h:291
    #47 0x557e003135dc in std::function<void (int)>::operator()(int) const /usr/include/c++/10.1.0/bits/std_function.h:622
    #48 0x557e003135dc in juce::InternalRunLoop::dispatchPendingEvents() /home/tom/JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:186
    #49 0x557e00306c3b in juce::MessageManager::dispatchNextMessageOnSystemQueue(bool) /home/tom/JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:300
    #50 0x557e00306f07 in juce::MessageManager::runDispatchLoop() /home/tom/JUCE/modules/juce_events/messages/juce_MessageManager.cpp:128
    #51 0x557e0030778c in juce::JUCEApplicationBase::main() /home/tom/JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:262
    #52 0x557e003078e2 in juce::JUCEApplicationBase::main(int, char const**) /home/tom/JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:240
    #53 0x557dffce9993 in main ../../Source/Main.h:35
    #54 0x7f4e50900001 in __libc_start_main (/usr/lib/libc.so.6+0x27001)
    #55 0x557dff03770d in _start (/home/tom/tmp/Chataigne/Chataigne/Builds/LinuxMakefile/build/Chataigne+0x94a70d)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants