unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Aaron Jensen <aaronjensen@gmail.com>
To: Alan Third <alan@idiocy.org>
Cc: 28443@debbugs.gnu.org
Subject: bug#28443: 26.0.50; Pause when fullscreening when ns-use-native-fullscreen is nil on macOS
Date: Sat, 16 Nov 2024 23:37:13 -0500	[thread overview]
Message-ID: <CAHyO48yxZ0qY3vmScDL9SESxg0gohr+7HLXQTe0nWVMzNRdaOQ@mail.gmail.com> (raw)
In-Reply-To: <20170913201301.GB31742@breton.holly.idiocy.org>


[-- Attachment #1.1: Type: text/plain, Size: 2222 bytes --]

I can no longer reproduce any issues with setting the frame-default-alist,
so this patch removes the timer workaround. I'm using macOS 15.1, no idea
if that's relevant or not.


Aaron


On Wed, Sep 13, 2017 at 1:13 PM, Alan Third <alan@idiocy.org> wrote:

> On Wed, Sep 13, 2017 at 12:33:48PM -0700, Aaron Jensen wrote:
>
> On Wed, Sep 13, 2017 at 12:27 PM, Alan Third <alan@idiocy.org> wrote:
>
> On Wed, Sep 13, 2017 at 05:15:49AM -0700, Aaron Jensen wrote:
>
> When ns-use-native-fullscreen is nil and a frame is set to fullscreen,
> there is a slight pause before the frame goes fullscreen. I believe the
> pause is about the same length as the animation when native fullscreen is
> used, so I'm wondering if there's some timing code in there that can be
> disabled when non-native fullscreen is being used.
>
> Found it. In ns_fullscreen_hook in nsterm.m there is a timer:
>
> /* Old style fs don't initiate correctly if created from
> init/default-frame alist, so use a timer (not nice...).
> */
> [NSTimer scheduledTimerWithTimeInterval: 0.5 target: view selector:
> @selector (handleFS)
> userInfo: nil repeats: NO];
>
> if I replace the timer with
>
> [view handleFS]
>
> it works absolutely fine, but I have to assume there are situations where
> it doesn’t.
>
> My guess is that the timer was there to sync w/ the animation. If the
> animation is disabled, there shouldn't be a timer, but if it is, there
> should be. This is just a guess.
>
> I should have read it a bit more closely. The comment’s saying there’s a
> problem when
>
> (add-to-list ’frame-default-alist ’(fullscreen . fullboth))
>
> is used, and sure enough, when I set it and create a new frame, it draws
> incorrectly.
>
> I notice that changing back from fullscreen results in the top of the
> emacs window being hidden behind the toolbar. Clearly non‐native fullscreen
> has some resizing issues.
>
> It can be (correctly) emulated with:
>
> (set-frame-parameter nil 'undecorated t)
> (setq ns-auto-hide-menu-bar 1)
> (tool-bar-mode -1)
> (toggle-frame-maximized)
>
> which makes me wonder if we even need this code and could move it to lisp?
> --
> Alan Third
>

[-- Attachment #1.2: Type: text/html, Size: 3651 bytes --]

[-- Attachment #2: 0001-src-nsterm.m-ns_fullscreen_hook-Remove-timer-workaro.patch --]
[-- Type: application/octet-stream, Size: 1022 bytes --]

From 176e3a3410e12ba5b59c6ddb927c8cb3099f3b7f Mon Sep 17 00:00:00 2001
From: Aaron Jensen <aaronjensen@gmail.com>
Date: Sat, 16 Nov 2024 20:32:41 -0800
Subject: [PATCH] * src/nsterm.m (ns_fullscreen_hook): Remove timer workaround

---
 src/nsterm.m | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/src/nsterm.m b/src/nsterm.m
index 47ce20455c5..dabc36ce018 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1984,16 +1984,6 @@ Hide the window (X11 semantics)
   if (!FRAME_VISIBLE_P (f))
     return;
 
-   if (! [view fsIsNative] && f->want_fullscreen == FULLSCREEN_BOTH)
-    {
-      /* Old style fs don't initiate correctly if created from
-         init/default-frame alist, so use a timer (not nice...).  */
-      [NSTimer scheduledTimerWithTimeInterval: 0.5 target: view
-                                     selector: @selector (handleFS)
-                                     userInfo: nil repeats: NO];
-      return;
-    }
-
   block_input ();
   [view handleFS];
   unblock_input ();
-- 
2.47.0


  reply	other threads:[~2024-11-17  4:37 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-13 12:15 bug#28443: 26.0.50; Pause when fullscreening when ns-use-native-fullscreen is nil on macOS Aaron Jensen
2017-09-13 17:01 ` Alan Third
2017-09-13 19:27 ` Alan Third
2017-09-13 19:33   ` Aaron Jensen
2017-09-13 20:13     ` Alan Third
2024-11-17  4:37       ` Aaron Jensen [this message]
2024-11-17 11:58         ` Alan Third
2024-11-17 16:22           ` Aaron Jensen
2024-11-17 18:27             ` Alan Third
2024-11-17 18:34               ` Aaron Jensen
2024-11-19 21:38                 ` Alan Third

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHyO48yxZ0qY3vmScDL9SESxg0gohr+7HLXQTe0nWVMzNRdaOQ@mail.gmail.com \
    --to=aaronjensen@gmail.com \
    --cc=28443@debbugs.gnu.org \
    --cc=alan@idiocy.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).