setFocus method
Future<void>
setFocus(
- FocusedEntity entity, {
- FocusRestoreMode focusRestoreMode = FocusRestoreMode.mainWindow,
Set which entity has keyboard focus.
When entity is HostFocused, focusRestoreMode controls what happens:
- FocusRestoreMode.none - Don't change focus
- FocusRestoreMode.mainWindow - Activate main app window (default)
- FocusRestoreMode.previousApp - Hide app, return to previous app
Implementation
Future<void> setFocus(
FocusedEntity entity, {
FocusRestoreMode focusRestoreMode = FocusRestoreMode.mainWindow,
}) async {
if (_focusedEntity == entity) return;
_focusedEntity = entity;
if (!_focusController.isClosed) {
_focusController.add(entity);
}
// Update native focus
switch (entity) {
case HostFocused():
// Unfocus all palettes
for (final palette in _visiblePalettes.values) {
await _focusClient.unfocus(palette.id);
}
// Restore focus based on mode
await _focusClient.restoreFocus(focusRestoreMode);
case PaletteFocused(:final paletteId):
// Focus the specific palette
await _focusClient.focus(paletteId);
}
}