<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src/xterm.c, branch scratch/bug64391</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 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>; * src/xterm.c (x_update_end): Condition on HAVE_XDBE</title>
<updated>2023-02-21T17:05:32+00:00</updated>
<author>
<name>Robert Pluim</name>
</author>
<published>2023-02-21T17:05:32+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4dc1f2b9a01e35633acb7d01ec177e896b3b49c6'/>
<id>4dc1f2b9a01e35633acb7d01ec177e896b3b49c6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix build --without-xdbe</title>
<updated>2023-02-21T16:15:35+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2023-02-21T16:15:35+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f1c838980601f05479bf29502c04fc5c38339c97'/>
<id>f1c838980601f05479bf29502c04fc5c38339c97</id>
<content type='text'>
* src/xterm.c (x_end_cr_clip, handle_one_xevent): Condition
double-buffering code on HAVE_XDBE.  (Bug#61667)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (x_end_cr_clip, handle_one_xevent): Condition
double-buffering code on HAVE_XDBE.  (Bug#61667)
</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 typos</title>
<updated>2022-12-26T09:42:02+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2022-12-23T17:21:10+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=2608e5edcca5094b61b4ccebcef160cc2bfd7f83'/>
<id>2608e5edcca5094b61b4ccebcef160cc2bfd7f83</id>
<content type='text'>
(cherry picked from commit a5d39e11443fa30c8e8bc58254a1a59550dcd99e)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(cherry picked from commit a5d39e11443fa30c8e8bc58254a1a59550dcd99e)
</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>Make frame synchronization more robust</title>
<updated>2022-11-27T11:21:03+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-11-27T11:17:38+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=80bfd6dc5bc3738db595a4972893b149b1224800'/>
<id>80bfd6dc5bc3738db595a4972893b149b1224800</id>
<content type='text'>
* src/xterm.c (x_sync_wait_for_frame_drawn_event)
(x_sync_handle_frame_drawn): Only cancel frame synchronization
if hanging twice or more in a row.
* src/xterm.h (struct x_output, FRAME_X_DRAW_JUST_HUNG): New
flag.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (x_sync_wait_for_frame_drawn_event)
(x_sync_handle_frame_drawn): Only cancel frame synchronization
if hanging twice or more in a row.
* src/xterm.h (struct x_output, FRAME_X_DRAW_JUST_HUNG): New
flag.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix no-accept-focus handling for embedded frames</title>
<updated>2022-11-26T00:47:25+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-11-25T11:35:14+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=123e90f6d349ca8882973db74007cb5d9067305c'/>
<id>123e90f6d349ca8882973db74007cb5d9067305c</id>
<content type='text'>
* src/xterm.c (handle_one_xevent): Don't focus embedded frames
on click if they have `no-accept-focus' set.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (handle_one_xevent): Don't focus embedded frames
on click if they have `no-accept-focus' set.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix reentrancy problem/crash in xterm.c</title>
<updated>2022-11-24T12:10:32+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-11-24T12:10:14+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=9fcff114b8fe2d538699172fe756606441e67b92'/>
<id>9fcff114b8fe2d538699172fe756606441e67b92</id>
<content type='text'>
* src/xterm.c (x_ignore_errors_for_next_request)
(x_stop_ignoring_errors): Be paranoid and block input inside the
protected section.
(x_focus_frame): Block input around critical section.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (x_ignore_errors_for_next_request)
(x_stop_ignoring_errors): Be paranoid and block input inside the
protected section.
(x_focus_frame): Block input around critical section.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve last change to xterm.c</title>
<updated>2022-11-23T12:40:35+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-11-23T12:36:39+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=43060910874f46579fa190d9b5534508e4ea058e'/>
<id>43060910874f46579fa190d9b5534508e4ea058e</id>
<content type='text'>
* src/xfns.c (Fx_display_last_user_time): Reject overly large
timestamps.
* src/xterm.c (x_display_set_last_user_time, handle_one_xevent):
New functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xfns.c (Fx_display_last_user_time): Reject overly large
timestamps.
* src/xterm.c (x_display_set_last_user_time, handle_one_xevent):
New functions.
</pre>
</div>
</content>
</entry>
</feed>
