xA/xT/xW: handle server rename events better
This commit is contained in:
@@ -1054,6 +1054,11 @@ func relayProcessMessage(m *RelayEventMessage) {
|
||||
case *RelayEventDataServerRename:
|
||||
servers[data.New] = servers[data.ServerName]
|
||||
delete(servers, data.ServerName)
|
||||
for i := range buffers {
|
||||
if buffers[i].serverName == data.ServerName {
|
||||
buffers[i].serverName = data.New
|
||||
}
|
||||
}
|
||||
case *RelayEventDataServerRemove:
|
||||
delete(servers, data.ServerName)
|
||||
}
|
||||
|
||||
@@ -1120,9 +1120,12 @@ relay_process_message(const Relay::EventMessage &m)
|
||||
{
|
||||
auto &data = dynamic_cast<Relay::EventData_ServerRename &>(*m.data);
|
||||
auto original = QString::fromStdWString(data.server_name);
|
||||
g.servers.insert_or_assign(
|
||||
QString::fromStdWString(data.new_), g.servers.at(original));
|
||||
auto new_ = QString::fromStdWString(data.new_);
|
||||
g.servers.insert_or_assign(new_, g.servers.at(original));
|
||||
g.servers.erase(original);
|
||||
for (auto &b : g.buffers)
|
||||
if (b.server_name == original)
|
||||
b.server_name = new_;
|
||||
break;
|
||||
}
|
||||
case Relay::Event::SERVER_REMOVE:
|
||||
|
||||
@@ -1057,6 +1057,9 @@ relay_process_message(const Relay::EventMessage &m)
|
||||
auto &data = dynamic_cast<Relay::EventData_ServerRename &>(*m.data);
|
||||
g.servers.insert_or_assign(data.new_, g.servers.at(data.server_name));
|
||||
g.servers.erase(data.server_name);
|
||||
for (auto &b : g.buffers)
|
||||
if (b.server_name == data.server_name)
|
||||
b.server_name = data.new_;
|
||||
break;
|
||||
}
|
||||
case Relay::Event::SERVER_REMOVE:
|
||||
|
||||
Reference in New Issue
Block a user