# HG changeset patch # User Karl Heuer # Date 798748091 0 # Node ID 9d4df3cf95b33c369dd3179b26d9b77afec35d47 # Parent c4d3218acd7e992c42b45b3af439e94ffe7798ca (x_get_focus_frame): New arg FRAME. Callers changed. (Funfocus_frame): Unfocus on selected_frame's display. diff -r c4d3218acd7e -r 9d4df3cf95b3 src/xfns.c --- a/src/xfns.c Mon Apr 24 18:27:33 1995 +0000 +++ b/src/xfns.c Mon Apr 24 18:28:11 1995 +0000 @@ -2331,7 +2331,8 @@ 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 @@ 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 @@ "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; }