<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src/frame.c, branch show</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>; Add 2024 to copyright years</title>
<updated>2024-01-02T01:47:10+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2024-01-02T01:47:10+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=8e1c56ae46754dd7baedff49a464f078f0e9912d'/>
<id>8e1c56ae46754dd7baedff49a464f078f0e9912d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug#64152 (Minibuffer sometimes goes "modal")</title>
<updated>2023-06-21T14:23:14+00:00</updated>
<author>
<name>Alan Mackenzie</name>
</author>
<published>2023-06-21T14:23:14+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4ca371e9cc7178572cc25cbe47371c0075405ff7'/>
<id>4ca371e9cc7178572cc25cbe47371c0075405ff7</id>
<content type='text'>
In particular, when a frame has no minibuffer and is using that
of a different "normal" frame, C-x 5 o, etc., and GUI
operations fail.

Fix by partially reverting the commit from 2022-07-07 15:38:09
+0000 "Remove obscure, obsolete code from do_switch_frame".  As
a consequent change, also revert the commit from 2022-07-08
20:19:03 +0000 "Remove now unused parameter TRACK from
do_switch_frame".

* src/frame.c (do_switch_frame): Restore the TRACK parameter.
Restore the code which redirects the frame focus when a new
frame gets selected.

* src/frame.c (Fselect_frame, Fhandle_switch_frame)
(delete_frame)
* src/keyboard.c (quit_throw_to_read_char)
* src/lisp.h (do_switch_frame prototype)
* src/minibuf.c (read_minibuf_unwind)
* src/window.c (Fset_window_configuration): Restore the TRACK
argument to do_switch_frame.

* src/xterm.c (x_try_restore_frame): Add a zero TRACK argument
to do_switch_frame.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In particular, when a frame has no minibuffer and is using that
of a different "normal" frame, C-x 5 o, etc., and GUI
operations fail.

Fix by partially reverting the commit from 2022-07-07 15:38:09
+0000 "Remove obscure, obsolete code from do_switch_frame".  As
a consequent change, also revert the commit from 2022-07-08
20:19:03 +0000 "Remove now unused parameter TRACK from
do_switch_frame".

* src/frame.c (do_switch_frame): Restore the TRACK parameter.
Restore the code which redirects the frame focus when a new
frame gets selected.

* src/frame.c (Fselect_frame, Fhandle_switch_frame)
(delete_frame)
* src/keyboard.c (quit_throw_to_read_char)
* src/lisp.h (do_switch_frame prototype)
* src/minibuf.c (read_minibuf_unwind)
* src/window.c (Fset_window_configuration): Restore the TRACK
argument to do_switch_frame.

* src/xterm.c (x_try_restore_frame): Add a zero TRACK argument
to do_switch_frame.
</pre>
</div>
</content>
</entry>
<entry>
<title>; Add 2023 to copyright years.</title>
<updated>2023-01-01T10:31:12+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2023-01-01T10:31:12+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=cae528457cb862dc886a34240c9d4c73035b6659'/>
<id>cae528457cb862dc886a34240c9d4c73035b6659</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix crashes and memory leaks during display deinitialization</title>
<updated>2022-12-01T06:23:04+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-12-01T06:21:14+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4161023a63d68534d3e70931645ac82a88330334'/>
<id>4161023a63d68534d3e70931645ac82a88330334</id>
<content type='text'>
* .dir-locals.el (c-mode): Add more noise macro names.
* src/frame.c (delete_frame): Do not delete terminal if force is
Qnoelisp.

* src/xterm.c (x_wm_supports): Fix coding style.
(x_delete_display): Delete the supported atoms list.
(x_delete_terminal): Delete all terminals.  Free the scratch
cursor GC.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* .dir-locals.el (c-mode): Add more noise macro names.
* src/frame.c (delete_frame): Do not delete terminal if force is
Qnoelisp.

* src/xterm.c (x_wm_supports): Fix coding style.
(x_delete_display): Delete the supported atoms list.
(x_delete_terminal): Delete all terminals.  Free the scratch
cursor GC.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix automatic DPI adjustment and add workarounds for some systems</title>
<updated>2022-11-19T05:59:53+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-11-19T05:59:53+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b18d4dbe0d64bd1277731f9a7faedbb4dd3cd197'/>
<id>b18d4dbe0d64bd1277731f9a7faedbb4dd3cd197</id>
<content type='text'>
* lisp/faces.el (x-create-frame-with-faces): New field
`delayed-font'.  Set the `font-parameter' property to `font' in
the given parameter list after face-set-after-frame-default is
called.
* src/fontset.c (Fset_fontset_font): Avoid changing
`font-parameter' with the call to Fmodify_frame_parameters.
* src/frame.c (gui_set_frame_parameters_1): New function.
Factor out gui_set_frame_parameters here, and add an argument
DEFAULT_PARAMETER.  If the `font' parameter is set, and
`default_parameter' is not, then set the `font-parameter' frame
parameter to the `font' parameter as well, to keep track of
which user-specified `font' frame parameter set the default
face's font on the frame.
(gui_set_frame_parameters): Call gui_set_frame_parameters_1 with
new arg set to false.
(gui_set_font): Remove broken implementation of
`font-parameter'.
(gui_default_parameter): If the default value was used, then
call gui_set_frame_parameters_1 with the new argument set to
false.  This is because no font was specified as a frame
parameter by the user, so Freconsider_frame_fonts is free to do
anything it wants.
(Freconsider_frame_fonts): If `font-parameter' is set, then use
it.
(syms_of_frame): New defsym Qfont_parameter.

* src/frame.h: Update prototypes.

* src/haikuterm.c (haiku_default_font_parameter):
* src/pgtkfns.c (pgtk_default_font_parameter):
* src/w32fns.c (w32_default_font_parameter): Stop setting
`font-parameter' here.  This code resulted in decades of
automatic font rescaling not working correctly.

* src/xfaces.c (set_font_frame_param): Clear the
`font-parameter' frame parameter.
(Finternal_merge_in_global_face):
* src/xfns.c (x_default_font_parameter): Avoid changing
`font-parameter' in response to changes to face attributes.
* src/xsettings.c (apply_xft_settings): Add workaround for
Cairo.  (bug#59371, bug#59347, bug#59283, bug#59271, bug#59285,
bug#59306.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/faces.el (x-create-frame-with-faces): New field
`delayed-font'.  Set the `font-parameter' property to `font' in
the given parameter list after face-set-after-frame-default is
called.
* src/fontset.c (Fset_fontset_font): Avoid changing
`font-parameter' with the call to Fmodify_frame_parameters.
* src/frame.c (gui_set_frame_parameters_1): New function.
Factor out gui_set_frame_parameters here, and add an argument
DEFAULT_PARAMETER.  If the `font' parameter is set, and
`default_parameter' is not, then set the `font-parameter' frame
parameter to the `font' parameter as well, to keep track of
which user-specified `font' frame parameter set the default
face's font on the frame.
(gui_set_frame_parameters): Call gui_set_frame_parameters_1 with
new arg set to false.
(gui_set_font): Remove broken implementation of
`font-parameter'.
(gui_default_parameter): If the default value was used, then
call gui_set_frame_parameters_1 with the new argument set to
false.  This is because no font was specified as a frame
parameter by the user, so Freconsider_frame_fonts is free to do
anything it wants.
(Freconsider_frame_fonts): If `font-parameter' is set, then use
it.
(syms_of_frame): New defsym Qfont_parameter.

* src/frame.h: Update prototypes.

* src/haikuterm.c (haiku_default_font_parameter):
* src/pgtkfns.c (pgtk_default_font_parameter):
* src/w32fns.c (w32_default_font_parameter): Stop setting
`font-parameter' here.  This code resulted in decades of
automatic font rescaling not working correctly.

* src/xfaces.c (set_font_frame_param): Clear the
`font-parameter' frame parameter.
(Finternal_merge_in_global_face):
* src/xfns.c (x_default_font_parameter): Avoid changing
`font-parameter' in response to changes to face attributes.
* src/xsettings.c (apply_xft_settings): Add workaround for
Cairo.  (bug#59371, bug#59347, bug#59283, bug#59271, bug#59285,
bug#59306.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug#59371</title>
<updated>2022-11-19T03:19:41+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-11-19T03:19:41+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=10701635cfefde5e416215d72f4dababe0ce8d7f'/>
<id>10701635cfefde5e416215d72f4dababe0ce8d7f</id>
<content type='text'>
* src/frame.c (Freconsider_frame_fonts): If a font parameter was
set, create a params alist with it.  Then, pass it to both
default_font_parameter and face-set-after-frame-default.
(bug#59371)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/frame.c (Freconsider_frame_fonts): If a font parameter was
set, create a params alist with it.  Then, pass it to both
default_font_parameter and face-set-after-frame-default.
(bug#59371)
</pre>
</div>
</content>
</entry>
<entry>
<title>; Fix typos (prefer US spelling)</title>
<updated>2022-11-18T12:06:55+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2022-11-18T12:06:55+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f7ee6609ae3b9cbafd48c89bad160b4e17f5b386'/>
<id>f7ee6609ae3b9cbafd48c89bad160b4e17f5b386</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix last change again</title>
<updated>2022-11-15T13:42:59+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-11-15T13:42:59+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c63d77ac6b10dc453d08afc852debc6a9a3cde36'/>
<id>c63d77ac6b10dc453d08afc852debc6a9a3cde36</id>
<content type='text'>
* src/frame.c (Freconsider_frame_fonts): Apply value of default
face again.  (bug#59283)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/frame.c (Freconsider_frame_fonts): Apply value of default
face again.  (bug#59283)
</pre>
</div>
</content>
</entry>
<entry>
<title>More fixes to last change</title>
<updated>2022-11-15T11:48:39+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-11-15T11:45:28+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c6df541783246ea867cd128c74e50afb8c9bf662'/>
<id>c6df541783246ea867cd128c74e50afb8c9bf662</id>
<content type='text'>
* lisp/dynamic-setting.el (font-setting-change-default-font):
Call `reconsider-frame-fonts'.
* src/frame.c (Freconsider_frame_fonts): New function.
(syms_of_frame): Add new function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/dynamic-setting.el (font-setting-change-default-font):
Call `reconsider-frame-fonts'.
* src/frame.c (Freconsider_frame_fonts): New function.
(syms_of_frame): Add new function.
</pre>
</div>
</content>
</entry>
<entry>
<title>src/frame.c (do_switch_frame): Fix bug#58343</title>
<updated>2022-10-12T21:06:33+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2022-10-12T21:06:33+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=da752c04664c0e22a2f6b4a41dfa1fed4d5276ff'/>
<id>da752c04664c0e22a2f6b4a41dfa1fed4d5276ff</id>
<content type='text'>
* src/frame.c (do_switch_frame): Move call to `get-mru-window` outside
of the "critical region" where (selected-window) != (frame-selected-window).
* src/minibuf.c (move_minibuffers_onto_frame): Add arg `frame`.
Use it instead of `selected_frame`.  Adjust all callers.
* src/lisp.h (move_minibuffers_onto_frame): Adjust declaration.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/frame.c (do_switch_frame): Move call to `get-mru-window` outside
of the "critical region" where (selected-window) != (frame-selected-window).
* src/minibuf.c (move_minibuffers_onto_frame): Add arg `frame`.
Use it instead of `selected_frame`.  Adjust all callers.
* src/lisp.h (move_minibuffers_onto_frame): Adjust declaration.
</pre>
</div>
</content>
</entry>
</feed>
