diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 31ebf64da63d456a11fe6a42282430a79a57a17f..916e4e67a255cae0f482e75da2a77a7a409eff4e 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -1587,7 +1587,10 @@ static bool initPurple(Config &cfg) { purple_debug_set_verbose(true); purple_core_set_ui_ops(&coreUiOps); - purple_eventloop_set_ui_ops(getEventLoopUiOps()); + std::map unregistered = cfg.getUnregistered(); + if (unregistered.find("service.eventloop") != unregistered.end()) { + purple_eventloop_set_ui_ops(getEventLoopUiOps(unregistered["service.eventloop"] == "libev")); + } ret = purple_core_init("spectrum"); if (ret) { @@ -1744,7 +1747,8 @@ int main(int argc, char **argv) { initPurple(config); - SpectrumEventLoop eventLoop; + std::map unregistered = config.getUnregistered(); + SpectrumEventLoop eventLoop(unregistered["service.eventloop"] == "libev"); np = new SpectrumNetworkPlugin(&config, &eventLoop, host, port); eventLoop.run(); }