unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: Matthew Leach <matthew@mattleach.net>
Cc: 18451@debbugs.gnu.org
Subject: bug#18451: 24.4.50; 'toggle-frame-fullscreen' can cut off minibuffer
Date: Thu, 18 Sep 2014 14:41:34 +0200	[thread overview]
Message-ID: <541AD2FE.4030002@gmx.at> (raw)
In-Reply-To: <877g11i1cp.fsf@matt-desktop.home>

 >> Just for the record, even if you eval the form when startin Emacs?
 >
 > Actually, I hadn't done that, I just evaluated it in the scratch buffer.

I would have done that in your place too ;-)

 > However, when I paste this as the first form in my .emacs it seems to
 > fix the issue! I've been toggling for about 10 minutes now and haven't
 > seen an occurrence of the bug.

I'm afraid this issue is not only restricted to your window manager and
not only to getting a fullscreen display.  I've recently observed a
similar problem when trying to always come up with the same frame height
with plain emacs -Q on a Gtk build.  On the average it fails every
fourth time with three missing lines.  It does not fail when I set
`frame-resize-pixelwise' to a non-nil value.

 > Oops, configure_frame_size should be `change_frame_size' defined in
 > dispnew.c

I should have figured that out.  Where exactly is your trace point?
Personally I prefer one in change_frame_size_1 where it says

       /* This size-change overrides any pending one for this frame.  */

to avoid that a rescheduled change_frame_size appears in the trace but
it certainly doesn't matter here.

 >> Are the traces here in chronological order or reversed?
 >
 > They are in chronological order.

Good (it's not obvious from the trace alone).  Still I miss things like

change_frame_size(0x6896f8, 1350, 768, 0, 1, 0, 1);
ConfigureNotify event received.
ConfigureNotify event received.
change_frame_size(0x6896f8, 1350, 768, 0, 0, 1, 1);
ConfigureNotify event received.
ConfigureNotify event received.
ConfigureNotify event received.
xg_frame_resized(0x6896f8, 679, 729);
change_frame_size(0x6896f8, 663, 729, 0, 1, 0, 1);
change_frame_size(0x6896f8, 663, 729, 0, 0, 0, 1);
ConfigureNotify event received.
ConfigureNotify event received.
xg_frame_resized(0x6896f8, 672, 720);
change_frame_size(0x6896f8, 656, 720, 0, 1, 0, 1);
xg_frame_resized(0x6781b0, 1366, 768);
configure_frame_size(0x6781b0, 1350, 768, 330584, 1, 0, 1);

from your earlier trace where some height change seems visible.

 >> And how do you get a ConfigureNotify event for a frame `nil'?
 >
 > I'm not sure, but it seems to be expected behaviour as there is an
 > explicit test for it in the ConfigureNotify event handler.  The frame is
 > set to `any' if x_top_window_to_frame returns null.

Arrgh...  I'm too silly.

In any case, the problem could be due to the following:

(1) Due to some non-textual settings (scroll bar, divider, border width)
     we ask the window manager for a frame height which is _not_ an
     integral multiple of the nominal character height.  At the same time
     we ask the window manager to store that nominal height as the
     canonical height by which frame height change increments should be
     allowed.

(2) The window manager (sometimes) decides that our resize request is
     impudent and overrules it by sending us a size that fits the nominal
     height settings.

Jan is our hints expert.  Maybe he has an idea.

martin





  reply	other threads:[~2014-09-18 12:41 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-11 16:20 bug#18451: 24.4.50; 'toggle-frame-fullscreen' can cut off minibuffer dev
2014-09-11 17:33 ` Jan Djärv
2014-09-11 17:52   ` Matthew Leach
2014-09-13  9:55     ` Jan Djärv
2014-09-13 22:13       ` Matthew Leach
2014-09-14  9:20         ` Jan Djärv
2014-09-14 13:32           ` Matthew Leach
2014-09-16 18:38             ` Jan Djärv
2014-09-16 19:16               ` Matthew Leach
2014-09-17 10:02                 ` martin rudalics
2014-09-17 10:38                   ` Matthew Leach
2014-09-18  9:32                     ` martin rudalics
2014-09-18 12:01                       ` Matthew Leach
2014-09-18 12:41                         ` martin rudalics [this message]
2014-09-18 19:45                           ` Jan Djärv
2014-09-19 10:22                             ` Matthew Leach
2014-09-19 11:24                               ` martin rudalics
2014-09-20  7:18                               ` Jan Djärv
2015-01-04 18:09                         ` martin rudalics
2015-02-13 18:24                           ` martin rudalics
2014-09-17 16:05                 ` Jan Djärv

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=541AD2FE.4030002@gmx.at \
    --to=rudalics@gmx.at \
    --cc=18451@debbugs.gnu.org \
    --cc=matthew@mattleach.net \
    /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).