unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: tumashu <tumashu@163.com>,
	"emacs-devel@gnu.org" <emacs-devel@gnu.org>,
	Alan Third <alan@idiocy.org>
Subject: Re: set-frame-parameter a child-frame's 'parent-frame error on macOS ?
Date: Fri, 12 Jan 2018 09:49:39 +0100	[thread overview]
Message-ID: <5A5876A3.10402@gmx.at> (raw)
In-Reply-To: <3341a4c3.36ca.160e851bdbd.Coremail.tumashu@163.com>

 > The test code:
 >
 > ----------------
 > (let ((test (let ((after-make-frame-functions nil))
 >                (make-frame
 >                 `((parent-frame . ,(window-frame))
 >                   (width . 10)
 >                   (height . 10))))))
 >    (set-frame-parameter test 'parent-frame (window-frame)))
 > ----------

I'm not sure what this code is supposed to do.  First you make a new
child frame named 'test' with the selected frame as its parent.  Then
you want to set the parent frame of 'test' to the selected frame.

But I'm afraid that the implementation of x_set_parent_frame in
nsterm.m has a bug which I didn't notice before.  It uses FRAME_X_P
although it probably should use FRAME_NS_P.  And this

 > Debugger entered--Lisp error: (error "Invalid specification of ‘parent-frame’")
 >    modify-frame-parameters(#<frame Emacs 0x114d8b960> ((parent-frame . #<frame *scratch* 0x106815a30>)))
 >    set-frame-parameter(#<frame Emacs 0x114d8b960> parent-frame #<frame *scratch* 0x106815a30>)
 >    (let ((test (let ((after-make-frame-functions nil)) (make-frame (cons (cons 'parent-frame (window-frame)) '((width . 10) (height . 10))))))) (set-frame-parameter test 'parent-frame (window-frame)))
 >    eval((let ((test (let ((after-make-frame-functions nil)) (make-frame (cons (cons 'parent-frame (window-frame)) '((width . 10) (height . 10))))))) (set-frame-parameter test 'parent-frame (window-frame))) nil)
 >    elisp--eval-last-sexp(nil)
 >    #f(compiled-function (eval-last-sexp-arg-internal) "Evaluate sexp before point; print value in the echo area.\nInteractively, with a non `-' prefix argument, print output into\ncurrent buffer.\n\nNormally, this function truncates long output according to the\nvalue of the variables `eval-expression-print-length' and\n`eval-expression-print-level'.  With a prefix argument of zero,\nhowever, there is no such truncation.  Such a prefix argument\nalso causes integers to be printed in several additional formats\n(octal, hexadecimal, and character when the prefix argument is\n-1 or the integer is `eval-expression-print-maximum-character' or\nless).\n\nIf `eval-expression-debug-on-error' is non-nil, which is the default,\nthis command arranges for all errors to enter the debugger." (interactive "P") #<bytecode 0x400d4227>)(nil)
 >    #f(compiled-function (&rest _it) #<bytecode 0x413d1275>)()
 >    eval-sexp-fu-flash-doit-simple(#f(compiled-function (&rest _it) #<bytecode 0x413d1275>) #f(compiled-function (&rest args2) #<bytecode 0x45362dbd>) #f(compiled-function (&rest args2) #<bytecode 0x45362ddd>))
 >    eval-sexp-fu-flash-doit(#f(compiled-function (&rest _it) #<bytecode 0x413d1275>) #f(compiled-function (&rest args2) #<bytecode 0x45362dbd>) #f(compiled-function (&rest args2) #<bytecode 0x45362ddd>))
 >    esf-flash-doit(#f(compiled-function (&rest _it) #<bytecode 0x413d1275>) #f(compiled-function (&rest args2) #<bytecode 0x45362dbd>) #f(compiled-function (&rest args2) #<bytecode 0x45362ddd>) #f(compiled-function (&rest args2) #<bytecode 0x45362dfd>))
 >    ad-Advice-eval-last-sexp(#f(compiled-function (eval-last-sexp-arg-internal) "Evaluate sexp before point; print value in the echo area.\nInteractively, with a non `-' prefix argument, print output into\ncurrent buffer.\n\nNormally, this function truncates long output according to the\nvalue of the variables `eval-expression-print-length' and\n`eval-expression-print-level'.  With a prefix argument of zero,\nhowever, there is no such truncation.  Such a prefix argument\nalso causes integers to be printed in several additional formats\n(octal, hexadecimal, and character when the prefix argument is\n-1 or the integer is `eval-expression-print-maximum-character' or\nless).\n\nIf `eval-expression-debug-on-error' is non-nil, which is the default,\nthis command arranges for all errors to enter the debugger." (interactive "P") #<bytecode 0x400d4227>) nil)
 >    apply(ad-Advice-eval-last-sexp #f(compiled-function (eval-last-sexp-arg-internal) "Evaluate sexp before point; print value in the echo area.\nInteractively, with a non `-' prefix argument, print output into\ncurrent buffer.\n\nNormally, this function truncates long output according to the\nvalue of the variables `eval-expression-print-length' and\n`eval-expression-print-level'.  With a prefix argument of zero,\nhowever, there is no such truncation.  Such a prefix argument\nalso causes integers to be printed in several additional formats\n(octal, hexadecimal, and character when the prefix argument is\n-1 or the integer is `eval-expression-print-maximum-character' or\nless).\n\nIf `eval-expression-debug-on-error' is non-nil, which is the default,\nthis command arranges for all errors to enter the debugger." (interactive "P") #<bytecode 0x400d4227>) nil)
 >    eval-last-sexp(nil)
 >    eros-eval-last-sexp(nil)
 >    funcall-interactively(eros-eval-last-sexp nil)
 >    call-interactively(eros-eval-last-sexp nil nil)
 >    command-execute(eros-eval-last-sexp)

looks very similar to Bug#30019's

Debugger entered--Lisp error: (error "Invalid specification of ‘parent-frame’")
   modify-frame-parameters(#<frame Emacs 0x11571e7d0> ((parent-frame .
#<frame *Warnings* 0x10982e5b0>)))
   set-frame-parameter(#<frame Emacs 0x11571e7d0> parent-frame #<frame
*Warnings* 0x10982e5b0>)

Alan, please have a look.

Thanks, martin




  reply	other threads:[~2018-01-12  8:49 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-12  3:02 set-frame-parameter a child-frame's 'parent-frame error on macOS ? tumashu
2018-01-12  8:49 ` martin rudalics [this message]
2018-01-12 12:13   ` Feng Shu
2018-01-12 18:47     ` martin rudalics
2018-01-12 19:31       ` Alan Third
2018-01-13  8:49         ` martin rudalics
2018-01-13  3:01       ` tumashu
2018-01-13  8:50         ` martin rudalics
2018-01-13 10:36           ` Feng Shu
2018-01-13 11:58             ` martin rudalics
2018-01-13 12:11               ` Dmitry Gutov
2018-01-13 12:29                 ` martin rudalics
2018-01-14  1:07                   ` Dmitry Gutov
2018-01-14  9:05                     ` martin rudalics
2018-01-14 10:34                       ` Dmitry Gutov
2018-01-14 11:19                         ` martin rudalics
2018-01-13 23:57               ` Feng Shu
2018-01-14  9:05                 ` martin rudalics
2018-01-14 10:35                   ` Dmitry Gutov
2018-01-14 11:19                     ` martin rudalics
2018-01-15  0:29                     ` Dmitry Gutov
2018-01-15  8:49                       ` Robert Pluim
2018-01-15  9:38                       ` martin rudalics
2018-01-15 11:59                         ` Feng Shu
2018-01-16  9:08                           ` martin rudalics
2018-01-16 10:33                             ` Feng Shu
2018-01-19 18:54                               ` martin rudalics
2018-01-20  0:11                                 ` Feng Shu
2018-01-20 10:34                                   ` martin rudalics
2018-01-20 13:26                                     ` Feng Shu
2018-01-15 17:07                         ` Dmitry Gutov
2018-01-16  9:07                           ` martin rudalics
2018-01-16 10:37                             ` Feng Shu
2018-01-16 11:10                           ` Robert Pluim
2018-01-22 11:11                             ` Robert Pluim
2018-01-22 16:01                               ` Eli Zaretskii
2018-01-22 16:12                                 ` Robert Pluim
2018-01-22 16:17                                   ` Eli Zaretskii
2018-01-22 16:25                                     ` Robert Pluim
2018-01-22 16:31                                       ` Eli Zaretskii
2018-01-22 16:55                                         ` Paul Eggert
2018-01-22 16:59                                           ` Eli Zaretskii
2018-01-22 18:59                                             ` martin rudalics
2018-01-23  1:12                                               ` Dmitry Gutov
2018-01-23  3:36                                                 ` Eli Zaretskii
2018-01-24  8:38                                                   ` martin rudalics
2018-01-24  8:47                                                     ` Robert Pluim
2018-01-13 23:59               ` Feng Shu

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=5A5876A3.10402@gmx.at \
    --to=rudalics@gmx.at \
    --cc=alan@idiocy.org \
    --cc=emacs-devel@gnu.org \
    --cc=tumashu@163.com \
    /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).