fix(chat): sub-aba passiva do peer ao receber TCP privado/legado
Cria a sub-aba do peer sem roubar foco quando o canal TCP privado abre ou quando chega mensagem legado com IP do remetente. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
112b6edaeb
commit
f96c9e3892
1 file changed
+11
-3
@@ -305,8 +305,11 @@ public class ChatPanel extends JPanel implements PrivateChatUiSink {
|
||||
@Override
|
||||
public void onPrivateChannelReady(String peerIp) {
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
appendSystemLine(peerKey(canonicalPeerIp(peerIp)), "Canal TCP privado conectado com " + peerIp + ".");
|
||||
if (peerKey(canonicalPeerIp(peerIp)).equals(activeConversationKey)) {
|
||||
String canonical = canonicalPeerIp(peerIp);
|
||||
String resolved = SessionPeerLabels.resolveDisplayName(connectionManager, canonical, peerIp);
|
||||
ensurePeerTabForIncoming(canonical, resolved);
|
||||
appendSystemLine(peerKey(canonical), "Canal TCP privado conectado com " + resolved + ".");
|
||||
if (peerKey(canonical).equals(activeConversationKey)) {
|
||||
flushTranscriptToPane();
|
||||
}
|
||||
});
|
||||
@@ -505,7 +508,12 @@ public class ChatPanel extends JPanel implements PrivateChatUiSink {
|
||||
public void receiveLegacyMessage(String tipo, String nome, String ip, String text) {
|
||||
runOnEdt(() -> {
|
||||
LegacyMpChatMessage legacy = new LegacyMpChatMessage(nome, ip, tipo, text);
|
||||
String bucket = ip != null && !ip.isBlank() ? peerKey(canonicalPeerIp(ip)) : ROOM_KEY;
|
||||
String bucket = ROOM_KEY;
|
||||
if (ip != null && !ip.isBlank()) {
|
||||
String canonical = canonicalPeerIp(ip);
|
||||
ensurePeerTabForIncoming(canonical, nome);
|
||||
bucket = peerKey(canonical);
|
||||
}
|
||||
appendLegacyLine(bucket, legacy);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user