From d2a3719b78dbaa4bca687867cd7dcacacfbcbcff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Tue, 21 Jul 2026 16:16:37 +0200 Subject: [PATCH] xA/xT/xW: handle server rename events better --- xA/xA.go | 5 +++++ xT/xT.cpp | 7 +++++-- xW/xW.cpp | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/xA/xA.go b/xA/xA.go index de1cf13..a922871 100644 --- a/xA/xA.go +++ b/xA/xA.go @@ -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) } diff --git a/xT/xT.cpp b/xT/xT.cpp index d82b87b..b53a3a1 100644 --- a/xT/xT.cpp +++ b/xT/xT.cpp @@ -1120,9 +1120,12 @@ relay_process_message(const Relay::EventMessage &m) { auto &data = dynamic_cast(*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: diff --git a/xW/xW.cpp b/xW/xW.cpp index 0840c16..e7a2fce 100644 --- a/xW/xW.cpp +++ b/xW/xW.cpp @@ -1057,6 +1057,9 @@ relay_process_message(const Relay::EventMessage &m) auto &data = dynamic_cast(*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: