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
|
@Override
|
||||||
public void onPrivateChannelReady(String peerIp) {
|
public void onPrivateChannelReady(String peerIp) {
|
||||||
SwingUtilities.invokeLater(() -> {
|
SwingUtilities.invokeLater(() -> {
|
||||||
appendSystemLine(peerKey(canonicalPeerIp(peerIp)), "Canal TCP privado conectado com " + peerIp + ".");
|
String canonical = canonicalPeerIp(peerIp);
|
||||||
if (peerKey(canonicalPeerIp(peerIp)).equals(activeConversationKey)) {
|
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();
|
flushTranscriptToPane();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -505,7 +508,12 @@ public class ChatPanel extends JPanel implements PrivateChatUiSink {
|
|||||||
public void receiveLegacyMessage(String tipo, String nome, String ip, String text) {
|
public void receiveLegacyMessage(String tipo, String nome, String ip, String text) {
|
||||||
runOnEdt(() -> {
|
runOnEdt(() -> {
|
||||||
LegacyMpChatMessage legacy = new LegacyMpChatMessage(nome, ip, tipo, text);
|
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);
|
appendLegacyLine(bucket, legacy);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user