feat(web): хоткей Ctrl+F для полноэкранного режима приложения
Кнопке «На весь экран» в верхней панели добавлен хоткей Ctrl+F. Хоткей `f` полноэкранного просмотра больше не срабатывает на Ctrl+F: модификаторы проверяются явно, поэтому сочетание свободно для кнопки каркаса.
This commit is contained in:
@@ -176,6 +176,17 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function onKeydown(ev: KeyboardEvent) {
|
function onKeydown(ev: KeyboardEvent) {
|
||||||
|
// Ctrl+F — полноэкранный режим приложения (кнопка «На весь экран»).
|
||||||
|
if (
|
||||||
|
ev.ctrlKey &&
|
||||||
|
!ev.shiftKey &&
|
||||||
|
!ev.altKey &&
|
||||||
|
(ev.key === 'f' || ev.key === 'F' || ev.key === 'а' || ev.key === 'А')
|
||||||
|
) {
|
||||||
|
ev.preventDefault();
|
||||||
|
toggleFullscreen();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (ev.ctrlKey || ev.metaKey || ev.altKey || ev.repeat) return;
|
if (ev.ctrlKey || ev.metaKey || ev.altKey || ev.repeat) return;
|
||||||
|
|
||||||
// `+`/`-` меняют размер миниатюр — как кнопки под регулятором.
|
// `+`/`-` меняют размер миниатюр — как кнопки под регулятором.
|
||||||
@@ -275,8 +286,11 @@
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="text-text-muted hover:bg-bg-muted hover:text-text inline-flex items-center justify-center rounded-md p-1"
|
class="text-text-muted hover:bg-bg-muted hover:text-text inline-flex items-center justify-center rounded-md p-1"
|
||||||
aria-label={isFullscreen ? 'Выйти из полноэкранного режима' : 'На весь экран'}
|
aria-label={isFullscreen
|
||||||
title={isFullscreen ? 'Выйти из полноэкранного режима' : 'На весь экран'}
|
? 'Выйти из полноэкранного режима (Ctrl+F)'
|
||||||
|
: 'На весь экран (Ctrl+F)'}
|
||||||
|
title={isFullscreen ? 'Выйти из полноэкранного режима (Ctrl+F)' : 'На весь экран (Ctrl+F)'}
|
||||||
|
aria-keyshortcuts="Control+f"
|
||||||
aria-pressed={isFullscreen}
|
aria-pressed={isFullscreen}
|
||||||
onclick={toggleFullscreen}
|
onclick={toggleFullscreen}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -362,7 +362,13 @@
|
|||||||
else toggleActual();
|
else toggleActual();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ev.key === 'f' || ev.key === 'F' || ev.key === 'а' || ev.key === 'А') {
|
// `f` — полноэкранный просмотр; `Ctrl+F` отдан кнопке «На весь экран» каркаса.
|
||||||
|
if (
|
||||||
|
!ev.ctrlKey &&
|
||||||
|
!ev.metaKey &&
|
||||||
|
!ev.altKey &&
|
||||||
|
(ev.key === 'f' || ev.key === 'F' || ev.key === 'а' || ev.key === 'А')
|
||||||
|
) {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
toggleViewerFullscreen();
|
toggleViewerFullscreen();
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -479,12 +479,19 @@ Ctrl/Cmd-клик — добавить или убрать, Shift-клик —
|
|||||||
Верхняя панель приложения и верхняя панель режима просмотра SHALL иметь минимальную высоту
|
Верхняя панель приложения и верхняя панель режима просмотра SHALL иметь минимальную высоту
|
||||||
(узкие отступы, иконочные органы управления), сохраняя все действия доступными. Верхняя панель
|
(узкие отступы, иконочные органы управления), сохраняя все действия доступными. Верхняя панель
|
||||||
режима просмотра SHALL быть прозрачным оверлеем и SHALL не занимать место в раскладке,
|
режима просмотра SHALL быть прозрачным оверлеем и SHALL не занимать место в раскладке,
|
||||||
увеличивая область фото.
|
увеличивая область фото. Кнопка «На весь экран» верхней панели приложения SHALL иметь хоткей
|
||||||
|
`Ctrl+F`; хоткей `f` полноэкранного просмотра SHALL срабатывать только без модификаторов, чтобы
|
||||||
|
`Ctrl+F` не перехватывался.
|
||||||
|
|
||||||
#### Scenario: Компактные верхние панели
|
#### Scenario: Компактные верхние панели
|
||||||
- **WHEN** открыт список альбомов или режим просмотра фото
|
- **WHEN** открыт список альбомов или режим просмотра фото
|
||||||
- **THEN** верхняя панель занимает минимум высоты, а её действия (навигация, полный экран, скачивание, удаление) доступны
|
- **THEN** верхняя панель занимает минимум высоты, а её действия (навигация, полный экран, скачивание, удаление) доступны
|
||||||
|
|
||||||
|
#### Scenario: Полный экран по хоткею
|
||||||
|
- **WHEN** пользователь нажимает `Ctrl+F`
|
||||||
|
- **THEN** приложение переходит в полноэкранный режим или выходит из него, а в режиме просмотра
|
||||||
|
фото полноэкранным остаётся сам просмотр
|
||||||
|
|
||||||
#### Scenario: Прозрачная панель просмотра
|
#### Scenario: Прозрачная панель просмотра
|
||||||
- **WHEN** открыт режим просмотра фото
|
- **WHEN** открыт режим просмотра фото
|
||||||
- **THEN** верхняя панель нарисована поверх фото без фона и не уменьшает область изображения
|
- **THEN** верхняя панель нарисована поверх фото без фона и не уменьшает область изображения
|
||||||
|
|||||||
Reference in New Issue
Block a user