GUI: Tisch-Blase fix, Oeffnung wandert zum Sprecher
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0113vDKdSNtD3Dwcw4QMu9yV
This commit is contained in:
co-authored by
Claude Fable 5
parent
1975bfe696
commit
55f03e7389
+4
-6
@@ -599,13 +599,11 @@ async function openRecording(id) {
|
||||
const seats = tableSeats(Math.min(persons.length, spkOrder.length));
|
||||
const seat = seats[i >= 0 ? Math.min(i, persons.length - 1) : 0];
|
||||
if (bubble && seat) {
|
||||
// Classic speech bubble AT the speaker: hang it between their mouth and
|
||||
// the table centre, tail (arrow) pointing back at them.
|
||||
const bx = seat.x + (50 - seat.x) * 0.52;
|
||||
const by = seat.y + (50 - seat.y) * 0.60;
|
||||
// The bubble sits FIXED on the table; only its tail (the "Öffnung")
|
||||
// wanders to point at whoever is speaking.
|
||||
bubble.className = `tbubble ${scls[tu.sp] || ''} arrow-${seat.side}`;
|
||||
bubble.style.left = bx + '%';
|
||||
bubble.style.top = by + '%';
|
||||
bubble.style.left = '';
|
||||
bubble.style.top = '';
|
||||
bubble.querySelector('.tb-name').textContent = spkLabel(tu.sp, i >= 0 ? i : 0);
|
||||
// The full turn as clickable word spans — highlighted + scrolled below.
|
||||
bubble.querySelector('.tb-text').innerHTML =
|
||||
|
||||
Reference in New Issue
Block a user