Subject: bug#24041: 25.1.50; xwidget + -nw mode gives segfault

From: Eli Zaretskii <[email-masked]>
Date: Sun, 21 Aug 2016 05:40:20 +0300

> From: Robert Cochran <[email-masked]>
> Cc: Robert Cochran <[email-masked]>,  [email-masked],  [email-masked]
> Date: Sat, 20 Aug 2016 14:33:58 -0700
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> From: Robert Cochran <[email-masked]>
> >> Date: Fri, 19 Aug 2016 11:36:30 -0700
> >> Cc: [email-masked]
> >> 
> >> Anyways, so the fix here is conceptually pretty simple: have a check in
> >> place to ensure (display-graphic-p) returns non-nil before doing any
> >> xwidgets stuff. Easy enough.
> >
> > display-graphic-p accepts argument, so if a function displays on
> > another frame or display, it should be passed that frame or display.
> 
> I guess I don't quite understand what you're trying to say here.

I'm saying that display-graphic-p should be told the frame for which
you are asking the question.

> (Is that even possible? Start a graphical frame from a tty Emacs?)

Of course, it is.  emacsclient can do that.  Assuming Emacs was built
with GUI support, of course.  We have this feature for several years
now.

> > IMO, the check should be on the C level where the xwidget primitives
> > are implemented.  One such place is make-xwidget; maybe there are
> > more.  (The proper way of testing this on the C level is not by
> > calling display-graphic-p, but rather with check_x_display_info.)
> 
> That's what my feeling was too. I'll go ahead and do it on the C level
> then.

Thanks.