unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Third <alan@idiocy.org>
To: martin rudalics <rudalics@gmx.at>
Cc: pankaj@codeisgreat.org, 48162@debbugs.gnu.org
Subject: bug#48162: 28.0.50; Resizing using set-frame-width doesn't expand mode-line
Date: Sun, 2 May 2021 17:45:25 +0100	[thread overview]
Message-ID: <YI7XJcMpgw80RjiM@idiocy.org> (raw)
In-Reply-To: <0a6dc056-4950-0c3b-0d0a-733cc0ecddab@gmx.at>

On Sun, May 02, 2021 at 06:12:45PM +0200, martin rudalics wrote:
> > This is occurring on MacOS build. Branch: master.
> > Steps:
> > 1. ./src/emacs -Q
> > 2. M-x set-frame-width RET 160 RET
> >
> > Result: Frame size is increased but mode-line still has original width.
> 
> Could you please try the patch below.
> 
> Thanks, martin
> 
> 
> diff --git a/src/nsterm.m b/src/nsterm.m
> index 6e7ab1266b..b089146e64 100644
> --- a/src/nsterm.m
> +++ b/src/nsterm.m
> @@ -7310,9 +7310,9 @@ - (void)viewDidResize:(NSNotification *)notification
> 
>    /* Don't want to do anything when the view size hasn't changed. */
>    if ((oldh == newh && oldw == neww)
> -      || (emacsframe->new_size_p
> -          && newh == emacsframe->new_height
> -          && neww == emacsframe->new_width))
> +      && (!emacsframe->new_size_p
> +          || (newh == emacsframe->new_height
> +	      && neww == emacsframe->new_width)))
>      {
>        NSTRACE_MSG ("No change");
>        return;

This patch reintroduces the infinite loop I was trying to avoid.

viewDidResize is called every time the view's "frame" is touched. Most
of the time this happens when nothing has changed, but calling
change_frame_size, even when nothing has changed, appears to cause the
toolbar to redraw, which causes viewDidResize to be called again, and
so on ad infinitum.

So I put in the check whether the new frame size that's reported is
actually the same as the previous frame size, and if so do nothing.
Then realised that I need to check the new_height and new_width
settings in case the change is already pending.

I'm not sure where new_size_p comes into it, perhaps we don't even
need to check it in viewDidResize, because all we care about is the
final outcome?

Maybe this really isn't the way to do it and I need to keep track of
the frame size separately, which is something I was hoping to avoid.
-- 
Alan Third





  reply	other threads:[~2021-05-02 16:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-02 15:42 bug#48162: 28.0.50; Resizing using set-frame-width doesn't expand mode-line Pankaj Jangid
2021-05-02 16:12 ` martin rudalics
2021-05-02 16:45   ` Alan Third [this message]
2021-05-02 16:57     ` martin rudalics
2021-05-02 17:18       ` Alan Third
2021-05-02 19:19         ` martin rudalics
2021-05-02 21:49           ` Alan Third
2021-05-03  3:40             ` Pankaj Jangid
2021-05-03 12:50               ` Alan Third
2021-05-03  7:49             ` martin rudalics

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=YI7XJcMpgw80RjiM@idiocy.org \
    --to=alan@idiocy.org \
    --cc=48162@debbugs.gnu.org \
    --cc=pankaj@codeisgreat.org \
    --cc=rudalics@gmx.at \
    /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).