From: Karl Heuer Date: Mon, 24 Apr 1995 18:28:11 +0000 (+0000) Subject: (x_get_focus_frame): New arg FRAME. Callers changed. X-Git-Tag: emacs-19.34~4321 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0d17d2828c7e9e5c737f5d15581d2d59b39dc57c;p=emacs.git (x_get_focus_frame): New arg FRAME. Callers changed. (Funfocus_frame): Unfocus on selected_frame's display. --- diff --git a/src/xfns.c b/src/xfns.c index 28208a874f8..bc28b7e8d73 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -2331,7 +2331,8 @@ x_window (f, window_prompting, minibuffer_only) BLOCK_INPUT; { - char *str = (STRINGP (f->name) ? XSTRING (f->name)->data : "emacs"); + char *str + = (STRINGP (f->name) ? (char *)XSTRING (f->name)->data : "emacs"); f->namebuf = (char *) xrealloc (f->namebuf, strlen (str) + 1); strcpy (f->namebuf, str); } @@ -2954,14 +2955,19 @@ This function is an internal primitive--use `make-frame' instead.") return unbind_to (count, frame); } +/* FRAME is used only to get a handle on the X display. We don't pass the + display info directly because we're called from frame.c, which doesn't + know about that structure. */ Lisp_Object -x_get_focus_frame () +x_get_focus_frame (frame) + struct frame *frame; { + struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (frame); Lisp_Object xfocus; - if (! x_focus_frame) + if (! dpyinfo->x_focus_frame) return Qnil; - XSETFRAME (xfocus, x_focus_frame); + XSETFRAME (xfocus, dpyinfo->x_focus_frame); return xfocus; } @@ -2987,10 +2993,11 @@ DEFUN ("unfocus-frame", Funfocus_frame, Sunfocus_frame, 0, 0, 0, "If a frame has been focused, release it.") () { - if (x_focus_frame) + struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (selected_frame); + if (dpyinfo->x_focus_frame) { BLOCK_INPUT; - x_unfocus_frame (x_focus_frame); + x_unfocus_frame (dpyinfo->x_focus_frame); UNBLOCK_INPUT; }