Subject: bug#16923: 24.3.50; reression: `set-frame-size' loses mode line

From: martin rudalics <[email-masked]>
Date: Fri, 07 Mar 2014 19:36:46 +0100

> Sorry, I don't quite follow you.
 > Just what are you asking me to check

Whether the frame title part, the menu bar or any other decorations
provided by Windows change when the modeline disappears.

 > (and how)?

By looking at the Emacs frame including its decorations.

 >> which means that there are 24 pixels less for the client rectangle and
 >> Windows partly draws the frame decoration over it and clips the rest.
 >>
 >> Prepare a function to print the difference of the (nth 3) of the two
 >> `w32-frame-rect' calls in the echo area of a second frame, bind it to a
 >> key, and you should see that whenever the modeline is absent that value
 >> is 56 while otherwise it is 80.
 >
 > Sorry, I really do not know what you would like me to do.
 > Please elaborate.

Evaluate

(defun foo ()
   (interactive)
   (let ((window-rect (w32-frame-rect))
	(client-rect (w32-frame-rect nil t)))
   (message "%s"
	   (- (- (nth 3 window-rect) (nth 1 window-rect))
	      (- (nth 3 client-rect) (nth 1 client-rect))))))

(global-set-key [(control meta +)] 'foo)

and look what it prints.  I suppose the values are different depending
on when the modeline is present and when it is not.  Here the value is
different when the menubar wraps or disappears, after F11, ...

 > OK, I guess I'll make that change, then.  Can you say what is fragile
 > about it?  Do you expect that it will break something?  Or do you mean
 > only that it might not work in all cases?  (Or do you mean something
 > else?)

It might not work in all cases.

martin