mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-02-24 04:00:02 +01:00
4.1 KiB
4.1 KiB
Testing Notes for PDF Fullscreen Toggle Fix
Issue
[Peek] How do I un-fullscreen a PDF? (#Issue number to be filled)
Summary of Changes
Fixed the PDF fullscreen toggle functionality in Peek. When viewing PDFs in Peek, clicking the fullscreen button now properly toggles between fullscreen and windowed modes.
Files Changed
-
src/modules/peek/Peek.FilePreviewer/Controls/BrowserControl.xaml.cs- Added
FullScreenChangedHandlerdelegate andFullScreenChangedevent - Subscribed to
CoreWebView2.ContainsFullScreenElementChangedevent - Added event handler
CoreWebView2_ContainsFullScreenElementChanged
- Added
-
src/modules/peek/Peek.FilePreviewer/FilePreview.xaml- Wired up
FullScreenChangedevent handler to BrowserControl
- Wired up
-
src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs- Added
FullScreenChangedevent - Added
BrowserPreview_FullScreenChangedevent handler to propagate state
- Added
-
src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml- Wired up
FullScreenChangedevent handler to FilePreview
- Wired up
-
src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs- Added
FilePreviewer_FullScreenChangedevent handler - Toggles between
AppWindowPresenterKind.FullScreenandAppWindowPresenterKind.Default
- Added
Manual Testing Steps
Prerequisites
- Build PowerToys with the changes
- Have a PDF file ready for testing
Test Case 1: Enter and Exit Fullscreen
- Open File Explorer
- Select a PDF file
- Press
Ctrl+Spaceto open Peek - Verify PDF is displayed correctly
- Click the fullscreen button in the PDF viewer (usually in bottom-right corner)
- EXPECTED: Window enters fullscreen mode, titlebar disappears
- Click the fullscreen button again
- EXPECTED: Window exits fullscreen mode, titlebar reappears
Test Case 2: Escape Key Still Works
- Open a PDF in Peek
- Click the fullscreen button to enter fullscreen
- Press
Escapekey - EXPECTED: Window exits fullscreen AND Peek closes (existing behavior)
Test Case 3: Multiple Toggle Cycles
- Open a PDF in Peek
- Click fullscreen button (enter fullscreen)
- Click fullscreen button (exit fullscreen)
- Click fullscreen button (enter fullscreen again)
- Click fullscreen button (exit fullscreen again)
- EXPECTED: All toggles work correctly without any stuck states
Test Case 4: Navigation Between Files
- Select multiple PDF files in File Explorer
- Open Peek with
Ctrl+Space - Enter fullscreen mode
- Use arrow keys to navigate to next/previous PDF
- EXPECTED: Fullscreen state persists across file navigation
Test Case 5: Non-PDF Files
- Open a non-PDF file (e.g., image, text file) in Peek
- EXPECTED: No fullscreen button appears, behavior unchanged
Expected Behavior
Before Fix
- Clicking fullscreen button hides titlebar but doesn't properly put window in fullscreen
- Clicking fullscreen button again does nothing (stuck in pseudo-fullscreen)
- Only way to exit is pressing Escape (which closes Peek entirely)
After Fix
- Clicking fullscreen button properly enters fullscreen mode
- Titlebar automatically hides
- Window fills entire screen
- Clicking fullscreen button again exits fullscreen
- Titlebar reappears
- Window returns to previous size/position
Technical Details
The fix leverages WebView2's ContainsFullScreenElementChanged event which fires when:
- User clicks the PDF viewer's fullscreen button (enters fullscreen)
- User clicks the fullscreen button again (exits fullscreen)
The event chain is:
CoreWebView2.ContainsFullScreenElementChangedfires in BrowserControl- BrowserControl raises
FullScreenChangedevent - FilePreview propagates the event to MainWindow
- MainWindow calls
AppWindow.SetPresenter()with appropriate presenter kind
Verification
After testing, verify:
- PDF fullscreen button enters fullscreen mode
- PDF fullscreen button exits fullscreen mode (toggle works)
- Titlebar visibility toggles correctly
- Window size changes correctly
- Escape key still closes Peek when in fullscreen
- Navigation between PDFs maintains fullscreen state
- No regressions with other file types