diff options
| author | Alan Third | 2021-06-05 14:38:17 +0100 |
|---|---|---|
| committer | Alan Third | 2021-06-09 19:22:03 +0100 |
| commit | ff65ea932cdcf69a3f5109327ec8e6a7e3432107 (patch) | |
| tree | 256afab266cad4a0f93f97e70047ee98e6f4238b /src | |
| parent | 5b68e7b48805bd3d19c67591c28b140a4ed4a937 (diff) | |
| download | emacs-ff65ea932cdcf69a3f5109327ec8e6a7e3432107.tar.gz emacs-ff65ea932cdcf69a3f5109327ec8e6a7e3432107.zip | |
Remove pause on fullscreening in NS (bug#48406)
* src/nsterm.m (ns_make_frame_visible):
(ns_set_parent_frame):
([EmacsView windowWillEnterFullScreen:]):
([EmacsView windowDidEnterFullScreen:]):
([EmacsView windowWillExitFullScreen:]):
([EmacsView initFrameFromEmacs:]): Remove references to
in_fullscreen_transition.
([EmacsView toggleFullScreen:]): Remove calls to removed methods.
([EmacsView inFullScreenTransition]):
([EmacsView waitFullScreenTransition]): Remove Methods.
* src/nsterm.h (EmacsView): Remove defintions of removed methods, and
the in_fullscreen_transition variable.
Diffstat (limited to 'src')
| -rw-r--r-- | src/nsterm.h | 3 | ||||
| -rw-r--r-- | src/nsterm.m | 37 |
2 files changed, 2 insertions, 38 deletions
diff --git a/src/nsterm.h b/src/nsterm.h index 0596f3f3c10..e7ea907569e 100644 --- a/src/nsterm.h +++ b/src/nsterm.h | |||
| @@ -443,7 +443,6 @@ typedef id instancetype; | |||
| 443 | int maximized_width, maximized_height; | 443 | int maximized_width, maximized_height; |
| 444 | NSWindow *nonfs_window; | 444 | NSWindow *nonfs_window; |
| 445 | BOOL fs_is_native; | 445 | BOOL fs_is_native; |
| 446 | BOOL in_fullscreen_transition; | ||
| 447 | #ifdef NS_DRAW_TO_BUFFER | 446 | #ifdef NS_DRAW_TO_BUFFER |
| 448 | EmacsSurface *surface; | 447 | EmacsSurface *surface; |
| 449 | #endif | 448 | #endif |
| @@ -475,8 +474,6 @@ typedef id instancetype; | |||
| 475 | - (void) toggleFullScreen: (id) sender; | 474 | - (void) toggleFullScreen: (id) sender; |
| 476 | - (BOOL) fsIsNative; | 475 | - (BOOL) fsIsNative; |
| 477 | - (BOOL) isFullscreen; | 476 | - (BOOL) isFullscreen; |
| 478 | - (BOOL) inFullScreenTransition; | ||
| 479 | - (void) waitFullScreenTransition; | ||
| 480 | #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 | 477 | #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 |
| 481 | - (void) updateCollectionBehavior; | 478 | - (void) updateCollectionBehavior; |
| 482 | #endif | 479 | #endif |
diff --git a/src/nsterm.m b/src/nsterm.m index f6168243a49..838c14d5abb 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -1640,8 +1640,6 @@ ns_make_frame_visible (struct frame *f) | |||
| 1640 | fullscreen also. So skip handleFS as this will print an error. */ | 1640 | fullscreen also. So skip handleFS as this will print an error. */ |
| 1641 | if ([view fsIsNative] && [view isFullscreen]) | 1641 | if ([view fsIsNative] && [view isFullscreen]) |
| 1642 | { | 1642 | { |
| 1643 | // maybe it is not necessary to wait | ||
| 1644 | [view waitFullScreenTransition]; | ||
| 1645 | return; | 1643 | return; |
| 1646 | } | 1644 | } |
| 1647 | 1645 | ||
| @@ -2057,11 +2055,7 @@ ns_set_parent_frame (struct frame *f, Lisp_Object new_value, Lisp_Object old_val | |||
| 2057 | #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 | 2055 | #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 |
| 2058 | // child frame must not be in fullscreen | 2056 | // child frame must not be in fullscreen |
| 2059 | if ([view fsIsNative] && [view isFullscreen]) | 2057 | if ([view fsIsNative] && [view isFullscreen]) |
| 2060 | { | 2058 | [view toggleFullScreen:child]; |
| 2061 | // in case child is going fullscreen | ||
| 2062 | [view waitFullScreenTransition]; | ||
| 2063 | [view toggleFullScreen:child]; | ||
| 2064 | } | ||
| 2065 | NSTRACE ("child setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary"); | 2059 | NSTRACE ("child setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary"); |
| 2066 | [child setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary]; | 2060 | [child setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary]; |
| 2067 | #endif | 2061 | #endif |
| @@ -7489,7 +7483,6 @@ not_in_argv (NSString *arg) | |||
| 7489 | #endif | 7483 | #endif |
| 7490 | fs_is_native = ns_use_native_fullscreen; | 7484 | fs_is_native = ns_use_native_fullscreen; |
| 7491 | #endif | 7485 | #endif |
| 7492 | in_fullscreen_transition = NO; | ||
| 7493 | 7486 | ||
| 7494 | maximized_width = maximized_height = -1; | 7487 | maximized_width = maximized_height = -1; |
| 7495 | nonfs_window = nil; | 7488 | nonfs_window = nil; |
| @@ -7862,7 +7855,6 @@ not_in_argv (NSString *arg) | |||
| 7862 | - (void)windowWillEnterFullScreen:(NSNotification *)notification | 7855 | - (void)windowWillEnterFullScreen:(NSNotification *)notification |
| 7863 | { | 7856 | { |
| 7864 | NSTRACE ("[EmacsView windowWillEnterFullScreen:]"); | 7857 | NSTRACE ("[EmacsView windowWillEnterFullScreen:]"); |
| 7865 | in_fullscreen_transition = YES; | ||
| 7866 | [self windowWillEnterFullScreen]; | 7858 | [self windowWillEnterFullScreen]; |
| 7867 | } | 7859 | } |
| 7868 | - (void)windowWillEnterFullScreen /* provided for direct calls */ | 7860 | - (void)windowWillEnterFullScreen /* provided for direct calls */ |
| @@ -7875,7 +7867,6 @@ not_in_argv (NSString *arg) | |||
| 7875 | { | 7867 | { |
| 7876 | NSTRACE ("[EmacsView windowDidEnterFullScreen:]"); | 7868 | NSTRACE ("[EmacsView windowDidEnterFullScreen:]"); |
| 7877 | [self windowDidEnterFullScreen]; | 7869 | [self windowDidEnterFullScreen]; |
| 7878 | in_fullscreen_transition = NO; | ||
| 7879 | } | 7870 | } |
| 7880 | 7871 | ||
| 7881 | - (void)windowDidEnterFullScreen /* provided for direct calls */ | 7872 | - (void)windowDidEnterFullScreen /* provided for direct calls */ |
| @@ -7914,7 +7905,6 @@ not_in_argv (NSString *arg) | |||
| 7914 | - (void)windowWillExitFullScreen:(NSNotification *)notification | 7905 | - (void)windowWillExitFullScreen:(NSNotification *)notification |
| 7915 | { | 7906 | { |
| 7916 | NSTRACE ("[EmacsView windowWillExitFullScreen:]"); | 7907 | NSTRACE ("[EmacsView windowWillExitFullScreen:]"); |
| 7917 | in_fullscreen_transition = YES; | ||
| 7918 | [self windowWillExitFullScreen]; | 7908 | [self windowWillExitFullScreen]; |
| 7919 | } | 7909 | } |
| 7920 | 7910 | ||
| @@ -7934,7 +7924,6 @@ not_in_argv (NSString *arg) | |||
| 7934 | { | 7924 | { |
| 7935 | NSTRACE ("[EmacsView windowDidExitFullScreen:]"); | 7925 | NSTRACE ("[EmacsView windowDidExitFullScreen:]"); |
| 7936 | [self windowDidExitFullScreen]; | 7926 | [self windowDidExitFullScreen]; |
| 7937 | in_fullscreen_transition = NO; | ||
| 7938 | } | 7927 | } |
| 7939 | 7928 | ||
| 7940 | - (void)windowDidExitFullScreen /* provided for direct calls */ | 7929 | - (void)windowDidExitFullScreen /* provided for direct calls */ |
| @@ -7963,22 +7952,6 @@ not_in_argv (NSString *arg) | |||
| 7963 | [[self window] performZoom:self]; | 7952 | [[self window] performZoom:self]; |
| 7964 | } | 7953 | } |
| 7965 | 7954 | ||
| 7966 | - (BOOL)inFullScreenTransition | ||
| 7967 | { | ||
| 7968 | return in_fullscreen_transition; | ||
| 7969 | } | ||
| 7970 | |||
| 7971 | - (void)waitFullScreenTransition | ||
| 7972 | { | ||
| 7973 | #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 | ||
| 7974 | while ([self inFullScreenTransition]) | ||
| 7975 | { | ||
| 7976 | NSTRACE ("wait for fullscreen"); | ||
| 7977 | wait_reading_process_output (0, 300000000, 0, 1, Qnil, NULL, 0); | ||
| 7978 | } | ||
| 7979 | #endif | ||
| 7980 | } | ||
| 7981 | |||
| 7982 | - (BOOL)fsIsNative | 7955 | - (BOOL)fsIsNative |
| 7983 | { | 7956 | { |
| 7984 | return fs_is_native; | 7957 | return fs_is_native; |
| @@ -8058,14 +8031,8 @@ not_in_argv (NSString *arg) | |||
| 8058 | #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 | 8031 | #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 |
| 8059 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 | 8032 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 |
| 8060 | if ([[self window] respondsToSelector: @selector(toggleFullScreen:)]) | 8033 | if ([[self window] respondsToSelector: @selector(toggleFullScreen:)]) |
| 8061 | { | ||
| 8062 | #endif | ||
| 8063 | [[self window] toggleFullScreen:sender]; | ||
| 8064 | // wait for fullscreen animation complete (bug#28496) | ||
| 8065 | [self waitFullScreenTransition]; | ||
| 8066 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 | ||
| 8067 | } | ||
| 8068 | #endif | 8034 | #endif |
| 8035 | [[self window] toggleFullScreen:sender]; | ||
| 8069 | #endif | 8036 | #endif |
| 8070 | return; | 8037 | return; |
| 8071 | } | 8038 | } |