Andy Piper <andy(a)xemacs.org> wrote:
At 14:37 16/11/00 +0900, Stephen J. Turnbull wrote:
> o focus being lost after pressing Done in a Customize buffer - I still
> see the problem on both Irix and win32 - I do use focus-follows-mouse
>
>
http://www.xemacs.org/list-archives/xemacs-beta/200001/msg00202.html
This fixes for X. I don't see the problem under win32.
2000-12-31 Andy Piper <andy(a)xemacs.org>
* glyphs-x.c (x_unmap_subwindow): return focus to enclosing frame
when widget gets unmapped.
* event-Xt.c (emacs_Xt_handle_widget_losing_focus): new
function. Make sure widgets losing focus don't just drop it.
(handle_focus_event_1): record the widget with focus.
I'm not sure this is related to this patch, Andy (maybe the bug was
there before), but this morning I was testing focus / accelerators issues and
I found a new (?) bug: click on FILE -> OPEN, get the dialog box, click on
CANCEL, get a core dump. This is with athena3d widgets.
The following patch fixes it:
Index: ChangeLog
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/ChangeLog,v
retrieving revision 1.154.2.800
diff -u -r1.154.2.800 ChangeLog
--- ChangeLog 2001/01/02 22:23:26 1.154.2.800
+++ ChangeLog 2001/01/03 14:34:39
@@ -1,3 +1,9 @@
+2001-01-03 Didier Verna <didier(a)xemacs.org>
+
+ * event-stream.c (emacs_handle_focus_change_preliminary): ensure
+ that `focus_frame' is alive before thinking of calling
+ `redisplay_redraw_cursor' on it.
+
2001-01-02 Andy Piper <andy(a)xemacs.org>
* frame.c (change_frame_size): make sure frame size is always
Index: event-stream.c
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/event-stream.c,v
retrieving revision 1.45.2.37
diff -u -r1.45.2.37 event-stream.c
--- event-stream.c 2000/11/15 09:31:12 1.45.2.37
+++ event-stream.c 2001/01/03 14:48:43
@@ -1807,7 +1807,8 @@
MARK_WINDOWS_CHANGED (w);
}
- if (FRAMEP (focus_frame) && !EQ (frame, focus_frame))
+ if (FRAMEP (focus_frame) && FRAME_LIVE_P (XFRAME (focus_frame))
+ && !EQ (frame, focus_frame))
{
/* Oops, we missed a focus-out event. */
DEVICE_FRAME_WITH_FOCUS_REAL (d) = Qnil;
--
/ / _ _ Didier Verna
http://www.inf.enst.fr/~verna/
- / / - / / /_/ / EPITA / LRDE mailto:didier@lrde.epita.fr
/_/ / /_/ / /__ / 14-16 rue Voltaire Tel. +33 (1) 53 14 59 47
94276 Kremlin-Bicêtre cedex Fax. +33 (1) 44 08 01 99