Anyone can sit anyone out (host included); only you bring yourself back. Out members stay in chat and the party, never block or count, and load no media; a card with the live position and Join back (Space) replaces the video. The mini player's x sits you out; optionally idle does too. Nudge: the server forwards it to the target only (3/s, 20/min per sender); the target hears the nudge sound, gets a toast and a taskbar attention request. Kick, its messages, errors and dialog are gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 lines
693 B
Dart
20 lines
693 B
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/services.dart';
|
|
|
|
/// The runner's window channel (linux/runner/my_application.cc,
|
|
/// windows/runner/flutter_window.cpp).
|
|
const _window = MethodChannel('starsync/window');
|
|
|
|
/// Asks the desktop to point at the app's window (taskbar flash, urgency
|
|
/// hint) when it is not focused; nothing when it is. The runner clears it
|
|
/// once the window gets focus. Quietly nothing where the runner lacks it.
|
|
Future<void> requestWindowAttention() async {
|
|
try {
|
|
await _window.invokeMethod<void>('attention');
|
|
} on MissingPluginException {
|
|
// Tests, other platforms.
|
|
} catch (e) {
|
|
debugPrint('window attention: $e');
|
|
}
|
|
}
|