| .. | .. |
|---|
| 223 | 223 | ref.read(isTypingProvider.notifier).state = typing; |
|---|
| 224 | 224 | } |
|---|
| 225 | 225 | case 'typing_end': |
|---|
| 226 | | - ref.read(isTypingProvider.notifier).state = false; |
|---|
| 226 | + final endSession = msg['sessionId'] as String?; |
|---|
| 227 | + if (endSession == null || endSession == ref.read(activeSessionIdProvider)) { |
|---|
| 228 | + ref.read(isTypingProvider.notifier).state = false; |
|---|
| 229 | + } |
|---|
| 227 | 230 | case 'screenshot': |
|---|
| 228 | 231 | ref.read(latestScreenshotProvider.notifier).state = |
|---|
| 229 | 232 | msg['data'] as String? ?? msg['imageBase64'] as String?; |
|---|
| .. | .. |
|---|
| 533 | 536 | |
|---|
| 534 | 537 | // Only add to chat if the Screen button explicitly requested it |
|---|
| 535 | 538 | if (!_screenshotForChat) { |
|---|
| 536 | | - ref.read(isTypingProvider.notifier).state = false; |
|---|
| 539 | + final activeId = ref.read(activeSessionIdProvider); |
|---|
| 540 | + if (sessionId == null || sessionId == activeId) { |
|---|
| 541 | + ref.read(isTypingProvider.notifier).state = false; |
|---|
| 542 | + } |
|---|
| 537 | 543 | return; |
|---|
| 538 | 544 | } |
|---|
| 539 | 545 | _screenshotForChat = false; |
|---|