Mercurial > emacs
diff src/nsfns.m @ 103296:a23e4364bf6e
Ensure NS frames remain hidden when invisible
* nsterm.m (ns_raise_frame): only raise frame if visible.
(x_make_frame_visible): move frame to front rather than calling
ns_raise_frame().
(keyDown:) do not swallow events that aren't re-sent if frame
isn't key window.
(drawRect:) do not set visibility/iconified flags because
drawRect may be called by NSView even if the frame is hidden.
* nsfns.m (Fx_create_frame): follow other ports in
determining visibility; default to t. Ensure async_visible is set.
| author | David Reitter <david.reitter@gmail.com> |
|---|---|
| date | Tue, 26 May 2009 18:14:14 +0000 |
| parents | e0a85c405ceb |
| children | 1cd6f938ca95 |
line wrap: on
line diff
--- a/src/nsfns.m Tue May 26 14:37:51 2009 +0000 +++ b/src/nsfns.m Tue May 26 18:14:14 2009 +0000 @@ -1317,13 +1317,20 @@ if (! f->output_data.ns->explicit_parent) { - tem = x_get_arg (dpyinfo, parms, Qvisibility, 0, 0, RES_TYPE_BOOLEAN); - if (EQ (tem, Qunbound)) - tem = Qnil; - - x_set_visibility (f, tem, Qnil); - if (EQ (tem, Qt)) - [[FRAME_NS_VIEW (f) window] makeKeyWindow]; + tem = x_get_arg (dpyinfo, parms, Qvisibility, 0, 0, RES_TYPE_SYMBOL); + if (EQ (tem, Qunbound)) + tem = Qt; + x_set_visibility (f, tem, Qnil); + if (EQ (tem, Qicon)) + x_iconify_frame (f); + else if (! NILP (tem)) + { + x_make_frame_visible (f); + f->async_visible = 1; + [[FRAME_NS_VIEW (f) window] makeKeyWindow]; + } + else + f->async_visible = 0; } if (FRAME_HAS_MINIBUF_P (f)
