<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src/frame.c, branch scratch/org-sync</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>; Fix typos</title>
<updated>2021-09-03T11:05:32+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2021-09-03T09:13:53+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=0cabf8bc363cdeace84523b251752c0aac32b31b'/>
<id>0cabf8bc363cdeace84523b251752c0aac32b31b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix 'clone-frame' on TTY frames</title>
<updated>2021-09-02T11:58:41+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2021-09-02T11:58:41+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=110db95e13535cb6b364ac9ca3490dca7ea9ac50'/>
<id>110db95e13535cb6b364ac9ca3490dca7ea9ac50</id>
<content type='text'>
* src/frame.c (Fmake_terminal_frame): Make a separate copy of the
faces for the new frame before calling modify-frame-parameters, as
on TTY frames that needs the faces already set up.  (Bug#34715)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/frame.c (Fmake_terminal_frame): Make a separate copy of the
faces for the new frame before calling modify-frame-parameters, as
on TTY frames that needs the faces already set up.  (Bug#34715)
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve recently-changed docs</title>
<updated>2021-08-23T16:11:49+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2021-08-23T16:11:49+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=efddcc9fbef9e3b11362cc05b12d3e378a0b11c4'/>
<id>efddcc9fbef9e3b11362cc05b12d3e378a0b11c4</id>
<content type='text'>
* src/frame.c (Fnext_frame):
* doc/lispref/frames.texi (Finding All Frames): Improve wording
and style of the 'next-frame's documentation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/frame.c (Fnext_frame):
* doc/lispref/frames.texi (Finding All Frames): Improve wording
and style of the 'next-frame's documentation.
</pre>
</div>
</content>
</entry>
<entry>
<title>Clarify the documentation of `next-frame'</title>
<updated>2021-08-23T14:32:33+00:00</updated>
<author>
<name>Lars Ingebrigtsen</name>
</author>
<published>2021-08-23T14:32:33+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4167d4b4b2727ef9de5ad91228934eef11233e27'/>
<id>4167d4b4b2727ef9de5ad91228934eef11233e27</id>
<content type='text'>
* doc/lispref/frames.texi (Finding All Frames): Clarify what it
means to "consider".
* src/frame.c (Fnext_frame): Rewrite doc string to say what the
parameters actually mean (bug#13339).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* doc/lispref/frames.texi (Finding All Frames): Clarify what it
means to "consider".
* src/frame.c (Fnext_frame): Rewrite doc string to say what the
parameters actually mean (bug#13339).
</pre>
</div>
</content>
</entry>
<entry>
<title>Speed up by storing frame faces in hash tables instead of alists</title>
<updated>2021-07-21T14:01:13+00:00</updated>
<author>
<name>Jashank Jeremy</name>
</author>
<published>2021-07-21T14:01:03+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e3b8ddd5005903465ec86823559a2e884c7b13f2'/>
<id>e3b8ddd5005903465ec86823559a2e884c7b13f2</id>
<content type='text'>
* src/frame.h (struct frame): Add face_hash_table, remove face_alist.
(fset_face_hash_table): New function.
(fset_face_alist): Remove.
* src/frame.c (make_frame): Initialize f-&gt;face_hash_table.
(Fmake_terminal_frame): Update to work with hash tables instead of
alists.
* src/xfaces.c (lface_from_face_name_no_resolve):
(Finternal_make_lisp_face):
(update_face_from_frame_parameter): Update to work with hash tables
instead of alists.
(Fframe_face_hash_table): New function.
(Fframe_face_alist): Move to faces.el as frame-face-alist.
(syms_of_xfaces): Add frame_face_hash_table.

* lisp/progmodes/elisp-mode.el (elisp--eval-defun-1):
* lisp/frame.el (frame-set-background-mode): Update to work with hash
tables instead of alists.
* lisp/faces.el (face-new-frame-defaults): Mark obsolete.
(face-list): Update to use face--new-frame-defaults.
(frame-face-alist): Moved here from src/xfaces.c.
(x-create-frame-with-faces): Update to handle subtle semantic change
to how frame faces propagate, which otherwise breaks frame creation
with reverse video enabled (bug#41200).

Reworked from a patch by Clément Pit-Claudel &lt;clement.pitclaudel@live.com&gt;.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/frame.h (struct frame): Add face_hash_table, remove face_alist.
(fset_face_hash_table): New function.
(fset_face_alist): Remove.
* src/frame.c (make_frame): Initialize f-&gt;face_hash_table.
(Fmake_terminal_frame): Update to work with hash tables instead of
alists.
* src/xfaces.c (lface_from_face_name_no_resolve):
(Finternal_make_lisp_face):
(update_face_from_frame_parameter): Update to work with hash tables
instead of alists.
(Fframe_face_hash_table): New function.
(Fframe_face_alist): Move to faces.el as frame-face-alist.
(syms_of_xfaces): Add frame_face_hash_table.

* lisp/progmodes/elisp-mode.el (elisp--eval-defun-1):
* lisp/frame.el (frame-set-background-mode): Update to work with hash
tables instead of alists.
* lisp/faces.el (face-new-frame-defaults): Mark obsolete.
(face-list): Update to use face--new-frame-defaults.
(frame-face-alist): Moved here from src/xfaces.c.
(x-create-frame-with-faces): Update to handle subtle semantic change
to how frame faces propagate, which otherwise breaks frame creation
with reverse video enabled (bug#41200).

Reworked from a patch by Clément Pit-Claudel &lt;clement.pitclaudel@live.com&gt;.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make frames record when their selected window was the mini-window</title>
<updated>2021-05-31T16:24:11+00:00</updated>
<author>
<name>Alan Mackenzie</name>
</author>
<published>2021-05-31T16:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=2ee5ce208f212ed658cf2125ef6bc24a435dda50'/>
<id>2ee5ce208f212ed658cf2125ef6bc24a435dda50</id>
<content type='text'>
When a frame in this state is selected again by Fselect_frame (but not by
Fselect_window), the mini-window rather than the frame's currently selected
window, is chosen for selection, should there still be an active minibuffer in
it.

This fixes bug #48674.

* src/frame.h (struct frame): Add new boolean field select_mini_window_flag.

* src/frame.c (make_frame): Initialize select_mini_window_flag to false.
(do_switch_frame): Set the new flag appropriately for the old frame, and
process the new frame's setting of this flag, before setting it to false.

* src/window.c (select_window): Set f-&gt;select_mini_window_flag to false.
(Fset_frame_selected_window, Fdelete_other_windows_internal)
(Fdelete_window_internal): Add comments clarifying that there is no clearing
of f-&gt;select_mini_window_flag in these functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a frame in this state is selected again by Fselect_frame (but not by
Fselect_window), the mini-window rather than the frame's currently selected
window, is chosen for selection, should there still be an active minibuffer in
it.

This fixes bug #48674.

* src/frame.h (struct frame): Add new boolean field select_mini_window_flag.

* src/frame.c (make_frame): Initialize select_mini_window_flag to false.
(do_switch_frame): Set the new flag appropriately for the old frame, and
process the new frame's setting of this flag, before setting it to false.

* src/window.c (select_window): Set f-&gt;select_mini_window_flag to false.
(Fset_frame_selected_window, Fdelete_other_windows_internal)
(Fdelete_window_internal): Add comments clarifying that there is no clearing
of f-&gt;select_mini_window_flag in these functions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle Bug#24526 without breaking Emacs on tiling WMs (Bug#48268)</title>
<updated>2021-05-12T07:44:02+00:00</updated>
<author>
<name>Martin Rudalics</name>
</author>
<published>2021-05-12T07:44:02+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b41f39d22cdb921fe88311f4fd113cbb9c2f0c76'/>
<id>b41f39d22cdb921fe88311f4fd113cbb9c2f0c76</id>
<content type='text'>
Since tiling window managers may react allergically to resize
requests immediately following MapNotify events on X, make sure
that such requests are issued only when a new frame should not
become visible and a size has been explicitly requested for it.

* lisp/faces.el (x-create-frame-with-faces): Mark frame as
'was-invisible' if it should be initially invisible or iconified
and has its size specified explicitly.
* src/frame.c (make_frame): Initialize new frame's was_invisible
flag.
(Fframe__set_was_invisible): New internal function.
* src/frame.h (struct frame): Specify size of new_size_p slot.
New flag was_invisible.
* src/w32fns.c (Fx_create_frame)
* src/nsfns.m (Fx_create_frame)
* src/xfns.c (Fx_create_frame): Set new frame's was_invisible
flag.
* src/xterm.c (handle_one_xevent): Call xg_frame_set_char_size
after a PropertyNotify or MapNotify event only if F's
was_invisible flag was set.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since tiling window managers may react allergically to resize
requests immediately following MapNotify events on X, make sure
that such requests are issued only when a new frame should not
become visible and a size has been explicitly requested for it.

* lisp/faces.el (x-create-frame-with-faces): Mark frame as
'was-invisible' if it should be initially invisible or iconified
and has its size specified explicitly.
* src/frame.c (make_frame): Initialize new frame's was_invisible
flag.
(Fframe__set_was_invisible): New internal function.
* src/frame.h (struct frame): Specify size of new_size_p slot.
New flag was_invisible.
* src/w32fns.c (Fx_create_frame)
* src/nsfns.m (Fx_create_frame)
* src/xfns.c (Fx_create_frame): Set new frame's was_invisible
flag.
* src/xterm.c (handle_one_xevent): Call xg_frame_set_char_size
after a PropertyNotify or MapNotify event only if F's
was_invisible flag was set.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix wrong handling of minibuffers when frames get iconified/made invisible</title>
<updated>2021-05-06T10:48:14+00:00</updated>
<author>
<name>Alan Mackenzie</name>
</author>
<published>2021-05-06T10:48:14+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c873d16af61ae9b956c6dd6d9e50ebad2bb7666e'/>
<id>c873d16af61ae9b956c6dd6d9e50ebad2bb7666e</id>
<content type='text'>
This should fix bug #47766.

* lisp/window.el (window-deletable-p): Add a quote where it was missing from
minibuffer-follows-selected-frame.

* src/frame.c (check_minibuf_window): Delete the function.
(delete_frame): In place of calling check_minibuf_window, call
move_minibuffers_onto_frame, possibly to move minibuffers onto the new current
frame.
(Fmake_frame_invisible, Ficonify_frame): Remove calls to check_minibuf_window.

* src/minibuf.c (Factive_minibuffer_window): Search the frames for the active
minibuffer rather than just assuming minibuf_window has been correctly
updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should fix bug #47766.

* lisp/window.el (window-deletable-p): Add a quote where it was missing from
minibuffer-follows-selected-frame.

* src/frame.c (check_minibuf_window): Delete the function.
(delete_frame): In place of calling check_minibuf_window, call
move_minibuffers_onto_frame, possibly to move minibuffers onto the new current
frame.
(Fmake_frame_invisible, Ficonify_frame): Remove calls to check_minibuf_window.

* src/minibuf.c (Factive_minibuffer_window): Search the frames for the active
minibuffer rather than just assuming minibuf_window has been correctly
updated.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix setting of 'width' and 'height' frame parameters</title>
<updated>2021-05-05T16:36:00+00:00</updated>
<author>
<name>Martin Rudalics</name>
</author>
<published>2021-05-05T16:36:00+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e9baa733b8cac00e008cb834abc8712c8c00beed'/>
<id>e9baa733b8cac00e008cb834abc8712c8c00beed</id>
<content type='text'>
* src/frame.c (Fframe_parameters): Fix bogus setting of 'height'
and 'width' parameters.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/frame.c (Fframe_parameters): Fix bogus setting of 'height'
and 'width' parameters.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add two changes announced but not included in previous commit</title>
<updated>2021-05-02T15:44:01+00:00</updated>
<author>
<name>Martin Rudalics</name>
</author>
<published>2021-05-02T15:44:01+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=30d974bf5c02a1367291fbb6fa17a182bb7974b7'/>
<id>30d974bf5c02a1367291fbb6fa17a182bb7974b7</id>
<content type='text'>
* src/frame.c (adjust_frame_size): Remove extra
inhibit_horizontal/_vertical checks.  Improve the implied
resize check when INHIBIT equals 2.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/frame.c (adjust_frame_size): Remove extra
inhibit_horizontal/_vertical checks.  Improve the implied
resize check when INHIBIT equals 2.
</pre>
</div>
</content>
</entry>
</feed>
