From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Anders Lindgren Newsgroups: gmane.emacs.bugs Subject: bug#18789: 24.4; Can't resize frame pixelwise on w32, causing partial columns when using non-standard font Date: Wed, 22 Oct 2014 11:03:23 +0200 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7bb047dc5c1ad30505ff3857 X-Trace: ger.gmane.org 1413968656 22871 80.91.229.3 (22 Oct 2014 09:04:16 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 22 Oct 2014 09:04:16 +0000 (UTC) To: 18789@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Oct 22 11:04:10 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Xgrpx-0000AS-ID for geb-bug-gnu-emacs@m.gmane.org; Wed, 22 Oct 2014 11:04:09 +0200 Original-Received: from localhost ([::1]:55659 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xgrpx-00077P-74 for geb-bug-gnu-emacs@m.gmane.org; Wed, 22 Oct 2014 05:04:09 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54893) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xgrps-000777-E7 for bug-gnu-emacs@gnu.org; Wed, 22 Oct 2014 05:04:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xgrpq-0004YB-90 for bug-gnu-emacs@gnu.org; Wed, 22 Oct 2014 05:04:04 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:38801) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xgrpq-0004Y7-5n for bug-gnu-emacs@gnu.org; Wed, 22 Oct 2014 05:04:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Xgrpp-0007yX-Qf for bug-gnu-emacs@gnu.org; Wed, 22 Oct 2014 05:04:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Anders Lindgren Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 22 Oct 2014 09:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 18789 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.141396862130627 (code B ref -1); Wed, 22 Oct 2014 09:04:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 22 Oct 2014 09:03:41 +0000 Original-Received: from localhost ([127.0.0.1]:59132 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XgrpU-0007xu-8v for submit@debbugs.gnu.org; Wed, 22 Oct 2014 05:03:41 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:53091) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XgrpQ-0007xg-N9 for submit@debbugs.gnu.org; Wed, 22 Oct 2014 05:03:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XgrpJ-0004SS-Nq for submit@debbugs.gnu.org; Wed, 22 Oct 2014 05:03:31 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:60119) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XgrpJ-0004SO-Ld for submit@debbugs.gnu.org; Wed, 22 Oct 2014 05:03:29 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54808) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XgrpH-0006Z2-Qz for bug-gnu-emacs@gnu.org; Wed, 22 Oct 2014 05:03:29 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XgrpF-0004Rc-VS for bug-gnu-emacs@gnu.org; Wed, 22 Oct 2014 05:03:27 -0400 Original-Received: from mail-wi0-x22d.google.com ([2a00:1450:400c:c05::22d]:47876) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XgrpF-0004RS-Jl for bug-gnu-emacs@gnu.org; Wed, 22 Oct 2014 05:03:25 -0400 Original-Received: by mail-wi0-f173.google.com with SMTP id fb4so733887wid.0 for ; Wed, 22 Oct 2014 02:03:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=yM46/1uBuNQ/Ny8i45rQdunQ309xk45M9nwQUoVBVRg=; b=DwLa0xwoQkbPowJjKwlTbsPx1b4eSCzY5r7RbKTOgkTgOmLDNwD/ujeKcTbhZ2qK7H 4mNT4HxyCUXpf68lw/ENdE2JGOpTDYXuM+i3vh0XgNaRjAMhmD6uXma4+7DXOtRCC5a+ OOHRKk3EnWgkIjP+spY78icLunH50XVJtRH2ejw5bbp6EeMF71S7tceeTXTAJev+u7M2 NoovXua8ADdataygq63hkxQZiQ/dJeCKLM+qKjlQa8BSHK1MIFC/AKADXt2bRe7SIArI kS51ibxxmpj2XtuorklgfqhgFSkUx9Kqymeu4d0Y6Sg6ttNHZi9k1gzZoi7vm/vzxg6z KB5A== X-Received: by 10.194.94.9 with SMTP id cy9mr1945490wjb.117.1413968603911; Wed, 22 Oct 2014 02:03:23 -0700 (PDT) Original-Received: by 10.216.192.129 with HTTP; Wed, 22 Oct 2014 02:03:23 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:94898 --047d7bb047dc5c1ad30505ff3857 Content-Type: text/plain; charset=UTF-8 Hi! Under MS-Windows, it appears that the width of the frame only can be a multiple of the character width. Unfortunately, the width of the fringes and scrollbars used by side-by-side windows does not always add up to full characters -- if you use a font other than the default. The effect is that when using side-by-side windows, you could get a partial column. (Partial columns are not desirable, for example, they work differently when you place the cursor on the end of a full line.) Steps to repeat 1: emacs -q Switch to *scratch*: C-x b RET Evaluate: (set-default-font (create-fontset-from-ascii-font "-raster-Terminal-bold-r-normal-normal-8-60-96-96-c-*-ms-oemlatin")) Split the window using: C-x 3 Insert a long line: C-u 37 x Here, the cursor is at the end of the line in the left window, it is rendered in the right fringe. (OK) Go to the other window: C-x o Place the cursor at the end: C-x > Here, the cursor is visible in the partially visible column. (NOT OK) Steps to repeat 2: emacs -q Evaluate the following: (set-frame-width (selected-frame) 607 nil t) (frame-pixel-width) Here, 632 is returned. (set-frame-width (selected-frame) 608 nil t) (frame-pixel-width) Here, 640 is returned. Clearly, the width of the frame is always a multiple of the character width. See also my package https://github.com/Lindydancer/multicolumn -- I use it to set up six side-by-side windows. (Note: As this writing, it is not updated to work-around the above problems.) Sincerely, Anders Lindgren (Long time Emacs contributor) In GNU Emacs 24.4.1 (x86_64-w64-mingw32) of 2014-10-21 on KAEL Windowing system distributor `Microsoft Corp.', version 6.1.7601 Configured using: `configure --prefix=/z/emacs --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --with-wide-int --with-jpeg --with-xpm --with-png --with-tiff --with-rsvg --with-xml2 --with-gnutls --with-xft --with-sound=yes --with-file-notification=yes --without-dbus --without-imagemagick 'CFLAGS=-Ofast -fomit-frame-pointer -funroll-loops -g0 -pipe' 'CPPFLAGS=-DNDEBUG -DDBUS_STATIC_BUILD' 'LDFLAGS=-static-libgcc -static-libstdc++ -static -s -Wl,-s'' Important settings: value of $LANG: SVE locale-coding-system: cp1252 Major mode: Fundamental Minor modes in effect: tooltip-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 blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t line-number-mode: t transient-mark-mode: t Recent input: x r e p o r Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Making completion list... Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils help-mode easymenu time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer 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 make-network-process w32notify w32 multi-tty emacs) Memory information: ((conses 16 75502 7207) (symbols 56 17532 0) (miscs 48 78 127) (strings 32 11014 5137) (string-bytes 1 283940) (vectors 16 9121) (vector-slots 8 376122 15963) (floats 8 55 70) (intervals 56 298 0) (buffers 960 14)) --047d7bb047dc5c1ad30505ff3857 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi!

Under MS-Windows, it app= ears that the width of the frame only can be a multiple of the character wi= dth. Unfortunately, the width of the fringes and scrollbars used by side-by= -side windows does not always add up to full characters -- if you use a fon= t other than the default. The effect is that when using side-by-side window= s, you could get a partial column. (Partial columns are not desirable, for = example, they work differently when you place the cursor on the end of a fu= ll line.)

Steps to repeat 1:
=C2=A0 =C2= =A0 emacs -q

=C2=A0 =C2=A0 Switch to *scratch*: C-= x b RET

=C2=A0 =C2=A0 Evaluate:
=C2=A0 = =C2=A0 (set-default-font
=C2=A0 =C2=A0 =C2=A0 (create-fo= ntset-from-ascii-font
=C2=A0 =C2=A0 =C2=A0 =C2=A0"-raster-Te= rminal-bold-r-normal-normal-8-60-96-96-c-*-ms-oemlatin"))
<= div>
=C2=A0 =C2=A0 Split the window using: C-x 3
=C2=A0 =C2=A0 Insert a long line: C-u 37 x

=C2=A0 =C2=A0 Here, the cursor is at the end of the line in the left = window, it is rendered in the right fringe. (OK)

= =C2=A0 =C2=A0 Go to the other window: C-x o
=C2=A0
=C2= =A0 =C2=A0 Place the cursor at the end: C-x >

= =C2=A0 =C2=A0 Here, the cursor is visible in the partially visible column. = (NOT OK)

Steps to repeat 2:

=C2=A0 =C2=A0 emacs -q

=C2=A0 =C2=A0 =C2=A0= Evaluate the following:

=C2=A0 =C2=A0=C2=A0(set-fr= ame-width (selected-frame) 607 nil t)
=C2=A0 =C2=A0 (frame-p= ixel-width)

=C2=A0 =C2=A0 Here, 632 is returned.

=C2=A0 =C2=A0 (set-frame-width (selected= -frame) 608 nil t)
=C2=A0 =C2=A0 (frame-pixel-width)
<= div>
=C2=A0 =C2=A0 Here, 640 is returned. Clearly, the w= idth of the frame is always a multiple of the character width.
<= div>
See also my package=C2=A0https://github.com/Lindydancer/multicolumn -- I= use it to set up six side-by-side windows. (Note: As this writing, it is n= ot updated to work-around the above problems.)

Sin= cerely,
=C2=A0 =C2=A0 Anders Lindgren (Long time Emacs contributo= r)




In GNU Emacs 24.4.1 (x86_64-w64-mingw32)
=C2=A0of 2014-10-21 o= n KAEL
Windowing system distributor `Microsoft Corp.', versio= n 6.1.7601
Configured using:
=C2=A0`configure --prefix= =3D/z/emacs --host=3Dx86_64-w64-mingw32
=C2=A0--target=3Dx86_64-w= 64-mingw32 --build=3Dx86_64-w64-mingw32 --with-wide-int
=C2=A0--w= ith-jpeg --with-xpm --with-png --with-tiff --with-rsvg --with-xml2
=C2=A0--with-gnutls --with-xft --with-sound=3Dyes --with-file-notificatio= n=3Dyes
=C2=A0--without-dbus --without-imagemagick 'CFLAGS=3D= -Ofast
=C2=A0-fomit-frame-pointer -funroll-loops -g0 -pipe' &= #39;CPPFLAGS=3D-DNDEBUG
=C2=A0-DDBUS_STATIC_BUILD' 'LDFLA= GS=3D-static-libgcc -static-libstdc++ -static
=C2=A0-s -Wl,-s'= ;'

Important settings:
=C2=A0 value = of $LANG: SVE
=C2=A0 locale-coding-system: cp1252

<= /div>
Major mode: Fundamental

Minor modes in e= ffect:
=C2=A0 tooltip-mode: t
=C2=A0 electric-indent-mo= de: t
=C2=A0 mouse-wheel-mode: t
=C2=A0 tool-bar-mode: = t
=C2=A0 menu-bar-mode: t
=C2=A0 file-name-shadow-mode:= t
=C2=A0 global-font-lock-mode: t
=C2=A0 blink-cursor-= mode: t
=C2=A0 auto-composition-mode: t
=C2=A0 auto-enc= ryption-mode: t
=C2=A0 auto-compression-mode: t
=C2=A0 = buffer-read-only: t
=C2=A0 line-number-mode: t
=C2=A0 t= ransient-mark-mode: t

Recent input:
<= escape> x r e p o <tab> r <tab> <return>
Recent messages:
For information about GNU Emacs and = the GNU system, type C-h C-a.
Making completion list...

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug messag= e format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode ma= il-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047= rfc2045 ietf-drums mm-util
help-fns mail-prsvr mail-utils help-m= ode easymenu time-date tooltip
electric uniquify ediff-hook vc-ho= oks lisp-float-type mwheel dos-w32
ls-lisp w32-common-fns disp-ta= ble w32-win w32-vars tool-bar dnd fontset
image regexp-opt fringe= tabulated-list newcomment lisp-mode prog-mode
register page menu= -bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock= syntax facemenu font-core frame cham georgian
utf-8-lang misc-la= ng vietnamese tibetan thai tai-viet lao korean
japanese hebrew gr= eek romanian slovak czech european ethiopic indian
cyrillic chine= se case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffe= r nadvice loaddefs button faces cus-face macroexp files
text-prop= erties overlay sha1 md5 base64 format env code-pages mule
custom = widget hashtable-print-readable backquote make-network-process
w3= 2notify w32 multi-tty emacs)

Memory information:
((conses 16 75502 7207)
=C2=A0(symbols 56 17532 0)
=
=C2=A0(miscs 48 78 127)
=C2=A0(strings 32 11014 5137)
<= div>=C2=A0(string-bytes 1 283940)
=C2=A0(vectors 16 9121)
=C2=A0(vector-slots 8 376122 15963)
=C2=A0(floats 8 55 70)
=C2=A0(intervals 56 298 0)
=C2=A0(buffers 960 14))

--047d7bb047dc5c1ad30505ff3857--