all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#24107: 25.1; menu-bar-size and tool-bar-size are reported inconsistently on w32
@ 2016-07-29 17:59 Eli Zaretskii
  2016-07-30  8:22 ` martin rudalics
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2016-07-29 17:59 UTC (permalink / raw)
  To: 24107

 emacs -Q
 M-: (frame-geometry) RET

When I do this on MS-Windows, I get

  ... (menu-bar-size 672 . 19) ... (tool-bar-size 680 . 36) ...

which looks incorrect, because the width of both is the same.  I think
the width of the menu bar is the correct one.  The reason I think that
is that when I disable the scroll bars, the width reported for the
menu bar is exactly the window-body-width plus the 16 pixels used up
by the fringes.


In GNU Emacs 25.1.2 (i686-pc-mingw32)
 of 2016-07-29 built on HOME-C4E4A596F7
Repository revision: b275cc76f0c5ab49e81445fcc3420c8772aefd42
Windowing system distributor 'Microsoft Corp.', version 5.1.2600
Configured using:
 'configure --prefix=/d/usr --enable-checking=yes,glyphs --with-wide-int
 --with-modules 'CFLAGS=-O0 -gdwarf-4 -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS MODULES

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode easymenu
cl-loaddefs pcase cl-lib mail-prsvr mail-utils time-date mule-util
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel dos-w32 ls-lisp disp-table w32-win w32-vars term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian
slovak czech european ethiopic indian cyrillic chinese charscript
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote w32notify w32 multi-tty
make-network-process emacs)

Memory information:
((conses 16 93479 7177)
 (symbols 56 20753 0)
 (miscs 48 46 128)
 (strings 16 17774 5347)
 (string-bytes 1 441649)
 (vectors 16 12447)
 (vector-slots 8 432686 5016)
 (floats 8 162 106)
 (intervals 40 266 121)
 (buffers 856 21))





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#24107: 25.1; menu-bar-size and tool-bar-size are reported inconsistently on w32
  2016-07-29 17:59 bug#24107: 25.1; menu-bar-size and tool-bar-size are reported inconsistently on w32 Eli Zaretskii
@ 2016-07-30  8:22 ` martin rudalics
  2016-07-30  8:41   ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: martin rudalics @ 2016-07-30  8:22 UTC (permalink / raw)
  To: Eli Zaretskii, 24107

 >   emacs -Q
 >   M-: (frame-geometry) RET
 >
 > When I do this on MS-Windows, I get
 >
 >    ... (menu-bar-size 672 . 19) ... (tool-bar-size 680 . 36) ...
 >
 > which looks incorrect, because the width of both is the same.  I think
 > the width of the menu bar is the correct one.  The reason I think that
 > is that when I disable the scroll bars, the width reported for the
 > menu bar is exactly the window-body-width plus the 16 pixels used up
 > by the fringes.

It's the best I came up with so far.  I can't use the width of the menu
bar: Try doing

(set-frame-parameter nil 'internal-border-width 36)

and you'll see what I mean.

BTW the Lucid and Motif builds _do_ report the same width for menu and
tool bar which is wrong with a non-zero internal border width.

martin





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#24107: 25.1; menu-bar-size and tool-bar-size are reported inconsistently on w32
  2016-07-30  8:22 ` martin rudalics
@ 2016-07-30  8:41   ` Eli Zaretskii
  2016-07-30  9:39     ` martin rudalics
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2016-07-30  8:41 UTC (permalink / raw)
  To: martin rudalics; +Cc: 24107

> Date: Sat, 30 Jul 2016 10:22:14 +0200
> From: martin rudalics <rudalics@gmx.at>
> 
>  >   emacs -Q
>  >   M-: (frame-geometry) RET
>  >
>  > When I do this on MS-Windows, I get
>  >
>  >    ... (menu-bar-size 672 . 19) ... (tool-bar-size 680 . 36) ...
>  >
>  > which looks incorrect, because the width of both is the same.  I think
>  > the width of the menu bar is the correct one.  The reason I think that
>  > is that when I disable the scroll bars, the width reported for the
>  > menu bar is exactly the window-body-width plus the 16 pixels used up
>  > by the fringes.
> 
> It's the best I came up with so far.  I can't use the width of the menu
> bar: Try doing
> 
> (set-frame-parameter nil 'internal-border-width 36)
> 
> and you'll see what I mean.

OK, but this means you can compute the width of the tool bar as you do
for any other window, and then add to that the width of the fringes.
Since on Windows the tool bar is just a special window which doesn't
have fringes, this should be accurate, no?





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#24107: 25.1; menu-bar-size and tool-bar-size are reported inconsistently on w32
  2016-07-30  8:41   ` Eli Zaretskii
@ 2016-07-30  9:39     ` martin rudalics
  2016-07-30 10:36       ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: martin rudalics @ 2016-07-30  9:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 24107

[-- Attachment #1: Type: text/plain, Size: 442 bytes --]

 > OK, but this means you can compute the width of the tool bar as you do
 > for any other window, and then add to that the width of the fringes.
 > Since on Windows the tool bar is just a special window which doesn't
 > have fringes, this should be accurate, no?

It's not related to fringes.  I forgot to subtract the width of the
external borders.  Does the attached patch (mostly fixing indentation
hell) give the correct result?

martin

[-- Attachment #2: w32fns.diff --]
[-- Type: text/plain, Size: 1492 bytes --]

diff --git a/src/w32fns.c b/src/w32fns.c
index 584e311..2b07bb2 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -8465,24 +8465,25 @@ with offset DY added (default is -10).
 		Fcons (Qouter_size,
 		       Fcons (make_number (right - left),
 			      make_number (bottom - top))),
-	   Fcons (Qexternal_border_size,
+		Fcons (Qexternal_border_size,
 		       Fcons (make_number (external_border_width),
 			      make_number (external_border_height))),
 		Fcons (Qtitle_bar_size,
 		       Fcons (make_number (title_bar_width),
 			      make_number (title_bar_height))),
-	   Fcons (Qmenu_bar_external, Qt),
-	   Fcons (Qmenu_bar_size,
-		  Fcons (make_number
-			 (menu_bar.rcBar.right - menu_bar.rcBar.left),
-			 make_number (menu_bar_height))),
-	   Fcons (Qtool_bar_external, Qnil),
+		Fcons (Qmenu_bar_external, Qt),
+		Fcons (Qmenu_bar_size,
+		       Fcons (make_number
+			      (menu_bar.rcBar.right - menu_bar.rcBar.left),
+			      make_number (menu_bar_height))),
+		Fcons (Qtool_bar_external, Qnil),
 		Fcons (Qtool_bar_position, tool_bar_height ? Qtop : Qnil),
-	   Fcons (Qtool_bar_size,
+		Fcons (Qtool_bar_size,
 		       Fcons (make_number
 			      (tool_bar_height
-			       ? right - left - 2 * internal_border_width
-				      : 0),
+			       ? (right - left - 2 * external_border_width
+				  - 2 * internal_border_width)
+			       : 0),
 			      make_number (tool_bar_height))),
 		Fcons (Qinternal_border_width,
 		       make_number (internal_border_width)));


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#24107: 25.1; menu-bar-size and tool-bar-size are reported inconsistently on w32
  2016-07-30  9:39     ` martin rudalics
@ 2016-07-30 10:36       ` Eli Zaretskii
  2016-07-30 12:30         ` martin rudalics
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2016-07-30 10:36 UTC (permalink / raw)
  To: martin rudalics; +Cc: 24107

> Date: Sat, 30 Jul 2016 11:39:22 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: 24107@debbugs.gnu.org
> 
> It's not related to fringes.  I forgot to subtract the width of the
> external borders.  Does the attached patch (mostly fixing indentation
> hell) give the correct result?

Yes, thanks.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#24107: 25.1; menu-bar-size and tool-bar-size are reported inconsistently on w32
  2016-07-30 10:36       ` Eli Zaretskii
@ 2016-07-30 12:30         ` martin rudalics
  0 siblings, 0 replies; 6+ messages in thread
From: martin rudalics @ 2016-07-30 12:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 24107-done

> Yes, thanks.

Installed on master.  Bug closed.

Thanks for spotting this blatant discrepancy, martin






^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-07-30 12:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-29 17:59 bug#24107: 25.1; menu-bar-size and tool-bar-size are reported inconsistently on w32 Eli Zaretskii
2016-07-30  8:22 ` martin rudalics
2016-07-30  8:41   ` Eli Zaretskii
2016-07-30  9:39     ` martin rudalics
2016-07-30 10:36       ` Eli Zaretskii
2016-07-30 12:30         ` martin rudalics

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.