GNU bug report logs - #7004
23.2; In fullscreen mode, the echo area takes too much vertical space

Previous Next

Package: emacs;

Reported by: Dani Moncayo <dmoncayo <at> gmail.com>

Date: Thu, 9 Sep 2010 15:13:02 UTC

Severity: minor

Merged with 15046

Found in versions 23.2, 24.3.50

Fixed in version 24.4

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #61 received at 7004 <at> debbugs.gnu.org (full text, mbox):

From: Jan Djärv <jan.h.d <at> swipnet.se>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 7004 <at> debbugs.gnu.org, david <at> harpegolden.net
Subject: Re: bug#7004: 23.2; In fullscreen mode, the echo area takes too much
	vertical space
Date: Mon, 13 Sep 2010 20:59:27 +0200

Eli Zaretskii skrev 2010-09-13 14.37:
>> Date: Sat, 11 Sep 2010 09:50:30 +0200
>> From: Jan Djärv<jan.h.d <at> swipnet.se>
>> Cc: "7004 <at> debbugs.gnu.org"<7004 <at> debbugs.gnu.org>
>>
>> David De La Harpe Golden skrev 2010-09-11 02.10:
>>
>>> has support for displaying only part of a character line, at least at the
>>> bottom edge of a pane [emacs: window] (not sure about the top). It also
>>> supports partial character display at the right/left edge of the pane.
>
> That's right: Emacs does know how to display a partial line at the
> bottom of a window (not at the top, though, IIRC).  The question is
> why doesn't it happen in the OP's case.
>
> Perhaps that is some unintended side effect of how a frame is
> maximized on X (I cannot reproduce the problem on MS-Windows).  What
> happens if the frame is enlarged (e.g., by the mouse) instead?

The resizing is constrained to increments of the font size, so it is not 
possible to resize it manually to a fraction of the font size.
If we remove that constraint by editing the source it will show the same 
behavour, extra pixels are unused at the bottom of the frame.

>
>> Windows use code like this all over the place:
>>
>> /* Return the frame y-position before which window W ends.
>>      This includes a mode line, if any.  */
>>
>> #define WINDOW_BOTTOM_EDGE_Y(W) \
>>     (((WINDOW_MENU_BAR_P (W) || WINDOW_TOOL_BAR_P (W)) \
>>       ? 0 : FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W))) \
>>      + WINDOW_BOTTOM_EDGE_LINE (W) * WINDOW_FRAME_LINE_HEIGHT (W))
>>
>>
>> i.e. pixels = lines * font height.
>
> No, your conclusion is incorrect.  See the comment above this macro:
> this is the Y pixel coordinate _before_ which the window ends.  If the
> last line is only partially visible, the this macro will return a
> value that is beyond the actual window display area.
>
> IOW, the fact that Emacs counts pixels in increments of the frame's
> default font size does not contradict the ability of displaying
> partially visible lines at the window bottom.  When I maximize a frame
> on Windows, that is what I get: the last line is only partially
> visible.  Why doesn't this happen for the OP on X?

I know it can dispay partial lines, info does that on its first page, for 
example, since the title is in a larger font.

But I don't know of any function that sizes a window by pixels.  All the 
resizing code does is to calculate rows and columns from the pixel sizes and 
the call change_frame_size.  That in turn resizes windows, but just based on 
lines and columns, not pixels AFAIK.

I see that W32 does that also, so how can it be different?

	Jan D.





This bug report was last modified 11 years and 161 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.