* bug#14049: 24.3; set-frame-width didn't work in daemon mode
@ 2013-03-24 12:58 涂坚
2017-09-22 8:10 ` martin rudalics
0 siblings, 1 reply; 2+ messages in thread
From: 涂坚 @ 2013-03-24 12:58 UTC (permalink / raw)
To: 14049
I have the following lines in my .emacs file.
(defun my:set-frame-size (&optional frame)
(interactive)
(if frame
(select-frame frame))
(if (display-graphic-p)
(progn
(tool-bar-mode -1)
;; use 120 char wide window for largeish displays
;; and smaller 80 column windows for smaller displays
;; pick whatever numbers make sense for you
(if (> (x-display-pixel-width) 1280)
(set-frame-width (selected-frame) 120)
(set-frame-width (selected-frame) 80))
;; for the height, subtract a couple hundred pixels
;; from the screen height (for panels, menubars and
;; whatnot), then divide by the height of a char to
;; get the height we want
(set-frame-height (selected-frame)
(/ (- (x-display-pixel-height) 200)
(frame-char-height)))
)))
(add-hook 'after-make-frame-functions 'my:set-frame-size frame)
However, if i invoke a normal emacs, and create a new frame, both
set-frame-width and set-frame-height work well.
But if i invoke emacs from 'emacsclient -c -a ""', set-frame-width
didn't work. Width should be 120 instead of staying 80. (I have
"server-start in the end of my .emacs")
I tried to debug it and use message to print width out. Under both
conditions, x-display-pixel-width is 1366 and (set-frame-width
(selected-frame) 120) is excuted.
In GNU Emacs 24.3.1 (i686-pc-cygwin)
of 2013-03-11 on fiona
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
`configure
'--srcdir=/home/kbrown/src/cygemacs/emacs-24.3-1/src/emacs-24.3'
'--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin'
'--sbindir=/usr/sbin' '--libexecdir=/usr/lib' '--datadir=/usr/share'
'--localstatedir=/var' '--sysconfdir=/etc' '--datarootdir=/usr/share'
'--docdir=/usr/share/doc/emacs' '-C' '--with-w32' 'CC=gcc'
'CFLAGS=-ggdb -O2 -pipe
-fdebug-prefix-map=/home/kbrown/src/cygemacs/emacs-24.3-1/build=/usr/src/debug/emacs-24.3-1
-fdebug-prefix-map=/home/kbrown/src/cygemacs/emacs-24.3-1/src/emacs-24.3=/usr/src/debug/emacs-24.3-1'
'LDFLAGS=-L/usr/lib/ncursesw' 'LIBS='
'CPPFLAGS=-I/usr/include/ncursesw''
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Emacs-Lisp
Minor modes in effect:
yas-global-mode: t
yas-minor-mode: t
google-this-mode: t
global-auto-complete-mode: t
auto-complete-mode: t
cygwin-terminal-clipboard-mode: t
global-semanticdb-minor-mode: t
global-semantic-idle-scheduler-mode: t
semantic-mode: t
global-ede-mode: t
ede-minor-mode: t
show-paren-mode: t
global-linum-mode: t
linum-mode: t
tooltip-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b
C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b
C-b C-b C-n C-n C-b C-b C-b C-b C-b C-b <backspace>
4 C-x C-s C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p
C-p C-p C-p C-p C-p C-p C-n C-n C-n C-n C-n C-n C-a
C-k C-k C-x C-s C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p
C-p C-p C-p C-p C-p C-p C-p C-p C-n C-n C-n C-n C-n
C-n C-k C-k C-x C-s C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-p C-p C-p C-p C-p C-p C-p
C-k C-k C-x C-s C-p C-n C-e C-p C-a C-k C-k C-e <backspace>
C-x C-s C-n C-p C-x C-s C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p
C-a C-k C-k C-x C-s C-n C-n C-e C-n C-n C-b M-^ C-x
C-s C-n C-n C-n C-n C-n C-n C-n C-e C-p C-p C-p C-p
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-n C-n C-n C-n
C-n C-n C-n C-n C-p C-p C-p C-e C-n C-p C-p C-p C-a
C-k C-k C-x C-s C-n C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-n C-n C-n C-n C-n C-n M-x r e p o r <tab> <r
eturn>
Recent messages:
Wrote /home/Arthur/.emacs
Saving file /home/Arthur/.emacs...
Wrote /home/Arthur/.emacs
(No changes need to be saved)
Saving file /home/Arthur/.emacs...
Wrote /home/Arthur/.emacs
Saving file /home/Arthur/.emacs...
Wrote /home/Arthur/.emacs
Saving file /home/Arthur/.emacs...
Wrote /home/Arthur/.emacs
Load-path shadows:
/home/Arthur/.emacs.d/el-get/el-get/.dir-locals hides
/usr/share/emacs/24.3/lisp/gnus/.dir-locals
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
mail-prsvr mail-utils thingatpt find-func flymake compile comint
ansi-color ring server yasnippet google-this auto-complete-config
auto-complete popup auto-complete-autoloads flymake-css-autoloads
flymake-cursor-autoloads flymake-hlint-autoloads flymake-php-autoloads
flymake-python-pyflakes-autoloads flymake-shell-autoloads
flymake-easy-autoloads google-this-autoloads google-translate-autoloads
guess-offset-autoloads haskell-mode-autoloads mmm-mode-autoloads
php-mode-autoloads popup-autoloads w32-browser-autoloads
yasnippet-autoloads cygwin-terminal-clipboard easy-mmode flex-mode
derived semantic/db-mode semantic/db semantic/idle semantic/ctxt
semantic/sb semantic/sort semantic/format semantic/tag-ls semantic/find
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local ede/cpp-root ede/emacs ede/speedbar ede/files ede
ede/base ede/auto ede/source eieio-base eieio-speedbar speedbar sb-image
ezimage dframe eieio-custom wid-edit eieio cedet tsdh-dark-theme edmacro
kmacro avoid time-date paren uniquify byte-opt warnings linum ido advice
advice-preload .loaddefs el-get el-get-autoloads el-get-list-packages
el-get-notify help-mode easymenu el-get-dependencies el-get-build
el-get-status pp el-get-recipes el-get-byte-compile el-get-methods
el-get-fossil el-get-svn el-get-pacman el-get-github-zip
el-get-github-tar el-get-http-zip el-get-http-tar el-get-hg
el-get-git-svn el-get-fink el-get-emacswiki el-get-http
el-get-emacsmirror el-get-github el-get-git el-get-elpa package cl-macs
gv el-get-darcs el-get-cvs el-get-bzr el-get-brew el-get-builtin
el-get-apt-get el-get-custom el-get-core autoload help-fns bytecomp
byte-compile cconv cl cl-lib dired tooltip ediff-hook vc-hooks
lisp-float-type mwheel w32-common-fns disp-table w32-win w32-vars
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
lisp-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 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 dbusbind w32
multi-tty emacs)
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#14049: 24.3; set-frame-width didn't work in daemon mode
2013-03-24 12:58 bug#14049: 24.3; set-frame-width didn't work in daemon mode 涂坚
@ 2017-09-22 8:10 ` martin rudalics
0 siblings, 0 replies; 2+ messages in thread
From: martin rudalics @ 2017-09-22 8:10 UTC (permalink / raw)
To: 涂坚, 14049-done
> I have the following lines in my .emacs file.
>
> (defun my:set-frame-size (&optional frame)
> (interactive)
> (if frame
> (select-frame frame))
> (if (display-graphic-p)
> (progn
> (tool-bar-mode -1)
> ;; use 120 char wide window for largeish displays
> ;; and smaller 80 column windows for smaller displays
> ;; pick whatever numbers make sense for you
> (if (> (x-display-pixel-width) 1280)
> (set-frame-width (selected-frame) 120)
> (set-frame-width (selected-frame) 80))
> ;; for the height, subtract a couple hundred pixels
> ;; from the screen height (for panels, menubars and
> ;; whatnot), then divide by the height of a char to
> ;; get the height we want
> (set-frame-height (selected-frame)
> (/ (- (x-display-pixel-height) 200)
> (frame-char-height)))
> )))
>
> (add-hook 'after-make-frame-functions 'my:set-frame-size frame)
>
> However, if i invoke a normal emacs, and create a new frame, both
> set-frame-width and set-frame-height work well.
>
> But if i invoke emacs from 'emacsclient -c -a ""', set-frame-width
> didn't work. Width should be 120 instead of staying 80. (I have
> "server-start in the end of my .emacs")
>
> I tried to debug it and use message to print width out. Under both
> conditions, x-display-pixel-width is 1366 and (set-frame-width
> (selected-frame) 120) is excuted.
>
>
>
>
> In GNU Emacs 24.3.1 (i686-pc-cygwin)
> of 2013-03-11 on fiona
> Windowing system distributor `Microsoft Corp.', version 6.1.7601
I have been looking into this (and the related 14056) now. With a more
simple scenario using
(defun my-set-frame-size (&optional frame)
(tool-bar-mode -1)
(set-frame-width frame 30)
(set-frame-height frame 10))
(add-hook 'after-make-frame-functions 'my-set-frame-size)
(server-start)
in the server Emacs, I can reproduce the bug for a 24.2.92.1 native
Windows build I happen to have around here. For that build, the client
frame indeed does not support the requested height but uses the default
initial height instead. I cannot reproduce the bug for any later build
I have here including one of 24.5.50.1. So I suppose that the bug has
been fixed somewhere in between these two builds and mark this bug as
done.
Very belated thanks for the report, martin
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-09-22 8:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-24 12:58 bug#14049: 24.3; set-frame-width didn't work in daemon mode 涂坚
2017-09-22 8:10 ` martin rudalics
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).