unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>
Cc: jarekczek@poczta.onet.pl, 16051@debbugs.gnu.org
Subject: bug#16051: 24.3.50; Emacs hang - resize frame manually
Date: Tue, 24 Dec 2013 11:14:25 +0100	[thread overview]
Message-ID: <52B95E81.6070208@gmx.at> (raw)
In-Reply-To: <83mwjr724b.fsf@gnu.org>

 >>  > If you are right, then I'm confused: the call to
 >>  > Fmodify_frame_parameters that changes the tool-bar-lines parameter
 >>  > leads to a call to x_set_tool_bar_lines, which in turn resizes the
 >>  > tool-bar window.  And the value is certainly not always 1, I've seen
 >>  > it as large as 7.
 >>
 >> This must be the display code which takes the deviation via the frame
 >> parameter to communicate the new size to resize_frame_windows.  Not very
 >> clean IMHO.
 >
 > No, that's not what happens.  What happens is this call sequence:
 >
 >   Fmodify_frame_parameters

Who calls Fmodify_frame_parameters here?  It's redisplay_tool_bar in

       if (new_height != WINDOW_PIXEL_HEIGHT (w))
           ...
	  Fmodify_frame_parameters (frame,
				    list1 (Fcons (Qtool_bar_lines,
						  make_number (new_lines))));

discovering that the present line doesn't suffice.

 >     |
 >     +------> x_set_frame_parameters
 >                 |
 >                 +-------> x_set_tool_bar_lines
 >
 > (The last call is via the FRAME_RIF (f)->frame_parm_handlers[] array.)
 >
 >>  > Well, the old code simply left at least one screen line to the window,
 >>  > and if the tool bar asked for more than that, its request was not
 >>  > honored:
 >>
 >> This is not what I see with 24.3: With emacs -Q make the frame very
 >> narrow and shrink its height.  Here I see 3 tool-bar lines but no root
 >> or minibuffer window.
 >
 > I'm talking about what the code did, not about the effect.  FWIW,
 > Emacs 24.3 just hits an assertion when I try that:
 >
 >   xdisp.c:1053: Emacs fatal error: assertion failed: height >= 0
 >
 > I guess your Emacs 24.3 is built without --enable-checking.

Probably.  Not entirely relieving to see that the problem is not new.

 > The code above does not attempt to shrink the toolbar to one line, it
 > limits the DELTA, i.e. the additional lines the toolbar will get, to
 > the height of the frame's root window minus one line.  IOW, it shrinks
 > the rest of the root window to one line.

And this is completely wrong at this place.  I already marked the
problem when I applied my changes but forgot about it.  It's here:

/* Max tool-bar height.  Basically, this is what makes all other windows
    disappear when the frame gets too small.  Rethink this!  */

#define MAX_FRAME_TOOL_BAR_HEIGHT(f) \
   ((FRAME_LINE_HEIGHT (f) * FRAME_LINES (f)))

This means that the toolbar is allowed to grasp the whole frame, killing
everything else.

 >> No.  I meant to keep the frame size fixed at some minimum value and let
 >> the window manager do the clipping - just as it does now.
 >
 > The frame size should remain as it was -- as the user determined by
 > dragging.

But this means that we currently do change the frame size.

 > We should not change it.  The question is what value should
 > we limit the tool bar to, given those constraints, and how much space
 > should we leave to the rest of the root window of the frame.

What we do when there's no toolbar, I presume.  That is, if there's not
enough space, then kill the toolbar.

martin





  reply	other threads:[~2013-12-24 10:14 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-04 14:40 bug#16051: 24.3.50; Emacs hang - resize frame manually Drew Adams
2013-12-04 17:56 ` Eli Zaretskii
2013-12-05 14:03   ` martin rudalics
2013-12-05 17:52     ` Eli Zaretskii
2013-12-05 17:59       ` martin rudalics
2013-12-05 18:21         ` Eli Zaretskii
2013-12-05 18:27           ` martin rudalics
2013-12-05 18:30           ` Eli Zaretskii
2013-12-06 14:32             ` martin rudalics
2013-12-06 15:31               ` Eli Zaretskii
2013-12-06 16:21                 ` martin rudalics
2013-12-06 18:16                   ` Eli Zaretskii
2013-12-06 18:57                     ` martin rudalics
2013-12-06 19:07                       ` Eli Zaretskii
2013-12-07 12:25                         ` martin rudalics
2013-12-07 12:31                           ` martin rudalics
2013-12-07 13:12                           ` Eli Zaretskii
2013-12-07 14:23                             ` martin rudalics
2013-12-07 15:18                               ` Eli Zaretskii
2013-12-07 15:47                                 ` martin rudalics
2013-12-07 16:28                                   ` Eli Zaretskii
2013-12-07 17:00                                   ` Dani Moncayo
2013-12-07 17:36                                     ` martin rudalics
     [not found]                                 ` <<52A342F7.1070707@gmx.at>
     [not found]                                   ` <<83siu4zkuh.fsf@gnu.org>
2013-12-07 20:37                                     ` Drew Adams
2014-12-25 10:55   ` martin rudalics
2013-12-21 13:44 ` Jarek Czekalski
2013-12-21 15:12   ` Eli Zaretskii
2013-12-21 15:16     ` Eli Zaretskii
2013-12-21 15:46     ` Jarek Czekalski
2013-12-21 16:19       ` Eli Zaretskii
2013-12-21 17:13         ` martin rudalics
2013-12-21 18:48           ` Eli Zaretskii
2013-12-21 19:40             ` martin rudalics
2013-12-23 16:57           ` Eli Zaretskii
2013-12-23 18:44             ` martin rudalics
2013-12-23 19:31               ` Eli Zaretskii
2013-12-23 20:02                 ` martin rudalics
2013-12-23 20:18                   ` Eli Zaretskii
2013-12-24 10:14                     ` martin rudalics [this message]
2013-12-24 17:34                       ` Eli Zaretskii
2013-12-24 18:45                         ` martin rudalics
2013-12-24 18:55                           ` Eli Zaretskii
2013-12-26 11:51                             ` martin rudalics
2013-12-26 17:30                               ` Eli Zaretskii
2013-12-26 18:04                                 ` martin rudalics
2013-12-26 18:47                                   ` Eli Zaretskii
2013-12-26 19:56                                     ` martin rudalics
     [not found] <<3eea48d4-9267-45fa-84c8-3eb9c9290558@default>
     [not found] ` <<83siu833gc.fsf@gnu.org>
2013-12-04 18:45   ` Drew Adams

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=52B95E81.6070208@gmx.at \
    --to=rudalics@gmx.at \
    --cc=16051@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=jarekczek@poczta.onet.pl \
    /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).