xA/xT/xW: handle server rename events better

This commit is contained in:
2026-07-21 16:16:37 +02:00
parent d453b64d3f
commit d2a3719b78
3 changed files with 13 additions and 2 deletions
+5
View File
@@ -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)
}
+5 -2
View File
@@ -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:
+3
View File
@@ -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: