UI/AppKit: Implement exiting fullscreen
This commit is contained in:
parent
25eef2e6e6
commit
1d34abd96f
5 changed files with 31 additions and 0 deletions
|
|
@ -56,6 +56,7 @@
|
|||
- (void)handleResize;
|
||||
- (void)handleDevicePixelRatioChange;
|
||||
- (void)handleDisplayRefreshRateChange;
|
||||
- (void)handleExitFullScreen;
|
||||
- (void)handleVisibility:(BOOL)is_visible;
|
||||
|
||||
- (void)findInPage:(NSString*)query
|
||||
|
|
|
|||
|
|
@ -192,6 +192,11 @@ struct HideCursor {
|
|||
m_web_view_bridge->set_maximum_frames_per_second([[[self window] screen] maximumFramesPerSecond]);
|
||||
}
|
||||
|
||||
- (void)handleExitFullScreen
|
||||
{
|
||||
m_web_view_bridge->exit_fullscreen();
|
||||
}
|
||||
|
||||
- (void)handleVisibility:(BOOL)is_visible
|
||||
{
|
||||
m_web_view_bridge->set_system_visibility_state(is_visible
|
||||
|
|
@ -843,6 +848,19 @@ struct HideCursor {
|
|||
m_web_view_bridge->did_update_window_rect();
|
||||
};
|
||||
|
||||
m_web_view_bridge->on_exit_fullscreen_window = [weak_self]() {
|
||||
LadybirdWebView* self = weak_self;
|
||||
if (self == nil) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (([[self window] styleMask] & NSWindowStyleMaskFullScreen) != 0) {
|
||||
[[self window] toggleFullScreen:nil];
|
||||
}
|
||||
|
||||
m_web_view_bridge->did_update_window_rect();
|
||||
};
|
||||
|
||||
m_web_view_bridge->on_theme_color_change = [weak_self](auto color) {
|
||||
LadybirdWebView* self = weak_self;
|
||||
if (self == nil) {
|
||||
|
|
|
|||
|
|
@ -59,6 +59,11 @@ void WebViewBridge::set_maximum_frames_per_second(u64 maximum_frames_per_second)
|
|||
client().async_set_maximum_frames_per_second(m_client_state.page_index, maximum_frames_per_second);
|
||||
}
|
||||
|
||||
void WebViewBridge::exit_fullscreen()
|
||||
{
|
||||
client().async_exit_fullscreen(m_client_state.page_index);
|
||||
}
|
||||
|
||||
void WebViewBridge::update_palette()
|
||||
{
|
||||
auto theme = create_system_palette();
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ public:
|
|||
|
||||
void set_maximum_frames_per_second(u64 maximum_frames_per_second);
|
||||
|
||||
void exit_fullscreen();
|
||||
|
||||
void update_palette();
|
||||
|
||||
void enqueue_input_event(Web::MouseEvent);
|
||||
|
|
|
|||
|
|
@ -453,6 +453,11 @@ static NSString* const TOOLBAR_TAB_OVERVIEW_IDENTIFIER = @"ToolbarTabOverviewIde
|
|||
[[[self tab] web_view] handleDisplayRefreshRateChange];
|
||||
}
|
||||
|
||||
- (void)windowDidExitFullScreen:(NSNotification*)notification
|
||||
{
|
||||
[[[self tab] web_view] handleExitFullScreen];
|
||||
}
|
||||
|
||||
#pragma mark - NSToolbarDelegate
|
||||
|
||||
- (NSToolbarItem*)toolbar:(NSToolbar*)toolbar
|
||||
|
|
|
|||
Loading…
Reference in a new issue