rcaelers/workrave — comment on commit bcedcfe11609969e0a67b4cf8104011d4860e203
File:  line 0
By jay:

also if neither the applet or main window is visible a stack overflow will occur because the code path is recursive once on_visibility_changed() is called. example

MainWindow::win32_show() will call visibility_changed_signal.emit() which goes off and then

```
workrave.exe!sigc::bound_mem_functor0::operator()() Line 1787 + 0x3f bytes	C++
workrave.exe!sigc::adaptor_functor >::operator()() Line 251 + 0x2b bytes	C++
workrave.exe!sigc::internal::slot_call0,void>::call_it(sigc::internal::slot_rep * rep) Line 104	C++
workrave.exe!sigc::internal::signal_emit0::emit(sigc::internal::signal_impl * impl) Line 772 + 0x1c bytes	C++
workrave.exe!sigc::signal0::emit() Line 2667 + 0x2f bytes	C++
workrave.exe!StatusIcon::config_changed_notify(const std::basic_string,std::allocator > & key) Line 242	C++
workrave.exe!Configurator::fire_configurator_event(const std::basic_string,std::allocator > & key) Line 691 + 0x19 bytes	C++
workrave.exe!Configurator::set_value(const std::basic_string,std::allocator > & key, Variant & value, workrave::ConfigFlags flags) Line 229	C++
workrave.exe!Configurator::set_value(const std::basic_string,std::allocator > & key, bool v, workrave::ConfigFlags flags) Line 388 + 0x14 bytes	C++
workrave.exe!GUIConfig::set_trayicon_enabled(bool b) Line 116 + 0x2c bytes	C++
workrave.exe!GUI::process_visibility() Line 1555 + 0x7 bytes	C++
workrave.exe!GUI::on_visibility_changed() Line 1544	C++

workrave.exe!sigc::bound_mem_functor0::operator()() Line 1787 + 0x3f bytes	C++
workrave.exe!sigc::adaptor_functor >::operator()() Line 251 + 0x2b bytes	C++
workrave.exe!sigc::internal::slot_call0,void>::call_it(sigc::internal::slot_rep * rep) Line 104	C++
workrave.exe!sigc::internal::signal_emit0::emit(sigc::internal::signal_impl * impl) Line 772 + 0x1c bytes	C++
workrave.exe!sigc::signal0::emit() Line 2667 + 0x2f bytes	C++
workrave.exe!StatusIcon::config_changed_notify(const std::basic_string,std::allocator > & key) Line 242	C++
workrave.exe!Configurator::fire_configurator_event(const std::basic_string,std::allocator > & key) Line 691 + 0x19 bytes	C++
workrave.exe!Configurator::set_value(const std::basic_string,std::allocator > & key, Variant & value, workrave::ConfigFlags flags) Line 229	C++
workrave.exe!Configurator::set_value(const std::basic_string,std::allocator > & key, bool v, workrave::ConfigFlags flags) Line 388 + 0x14 bytes	C++
workrave.exe!GUIConfig::set_trayicon_enabled(bool b) Line 116 + 0x2c bytes	C++
workrave.exe!GUI::process_visibility() Line 1555 + 0x7 bytes	C++
workrave.exe!GUI::on_visibility_changed() Line 1544	C++
```

over and over again until so. click on the tray icon to reproduce