<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src, branch x-window-xwidget</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>Implement some drag and drop functions on NS</title>
<updated>2022-05-27T08:33:12+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-05-27T08:33:12+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=27de58af8b3a7617868408886f94bb12f7785800'/>
<id>27de58af8b3a7617868408886f94bb12f7785800</id>
<content type='text'>
* lisp/term/ns-win.el (ns-selection-exists-p):
(gui-backend-set-selection):
(x-begin-drag): New functions and selection types.
* src/nsfns.m (Fns_get_resource):
(Fns_set_resource):
(Fx_server_max_request_size): Fix coding style.
* src/nsselect.m (ns_decode_data_to_pasteboard):
(ns_lisp_to_pasteboard):
(ns_dnd_action_to_operation):
(ns_dnd_action_from_operation):
(Fns_begin_drag): New functions.
(syms_of_nsselect): New subrs.
* src/nsterm.h (EmacsWindow): New fields and messages.
(NSPasteboardNameGeneral): New define.
* src/nsterm.m ([EmacsView mouseDown:]): Store last mouse event.
([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Clear that event.
([EmacsWindow dealloc]): Free last mouse event.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/term/ns-win.el (ns-selection-exists-p):
(gui-backend-set-selection):
(x-begin-drag): New functions and selection types.
* src/nsfns.m (Fns_get_resource):
(Fns_set_resource):
(Fx_server_max_request_size): Fix coding style.
* src/nsselect.m (ns_decode_data_to_pasteboard):
(ns_lisp_to_pasteboard):
(ns_dnd_action_to_operation):
(ns_dnd_action_from_operation):
(Fns_begin_drag): New functions.
(syms_of_nsselect): New subrs.
* src/nsterm.h (EmacsWindow): New fields and messages.
(NSPasteboardNameGeneral): New define.
* src/nsterm.m ([EmacsView mouseDown:]): Store last mouse event.
([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Clear that event.
([EmacsWindow dealloc]): Free last mouse event.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update comments in some X code</title>
<updated>2022-05-27T06:40:43+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-05-27T06:32:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=edd11a2c6e4ea37fe8030ca310b1c009d42ed35e'/>
<id>edd11a2c6e4ea37fe8030ca310b1c009d42ed35e</id>
<content type='text'>
* src/xterm.c (x_parse_color): Update comment.
(syms_of_xterm): Add new debugging option too.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (x_parse_color): Update comment.
(syms_of_xterm): Add new debugging option too.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix XI scroll valuator reset on X Toolkit builds</title>
<updated>2022-05-27T02:34:04+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-05-27T02:34:04+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=bb0317442b4d62108ca40cc396f5ced467c55f25'/>
<id>bb0317442b4d62108ca40cc396f5ced467c55f25</id>
<content type='text'>
* src/xterm.c (handle_one_xevent): Reset valuators on XI_Leave
if leave-&gt;event is an edit widget as well.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (handle_one_xevent): Reset valuators on XI_Leave
if leave-&gt;event is an edit widget as well.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve lookup efficiency of color cache and prevent leaking</title>
<updated>2022-05-27T01:40:40+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-05-27T01:40:40+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c0807daedc22812add26f9f9be8d9b68afac1217'/>
<id>c0807daedc22812add26f9f9be8d9b68afac1217</id>
<content type='text'>
* src/xterm.c (x_parse_color): Move recently used colors to the
start of the cache and free unused entries when there are too
many.
(x_term_init, x_delete_display): Initialize and free new fields.
* src/xterm.h (struct x_display_info): New field
`color_names_length'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (x_parse_color): Move recently used colors to the
start of the cache and free unused entries when there are too
many.
(x_term_init, x_delete_display): Initialize and free new fields.
* src/xterm.h (struct x_display_info): New field
`color_names_length'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle allocation errors when creating menu items on Haiku</title>
<updated>2022-05-27T00:24:12+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-05-27T00:24:12+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=8dcebc96299149845d63e23f27c75a1ecc0b3538'/>
<id>8dcebc96299149845d63e23f27c75a1ecc0b3538</id>
<content type='text'>
* src/haiku_support.cc (class EmacsMenuItem): Don't abort on
failed strdup.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/haiku_support.cc (class EmacsMenuItem): Don't abort on
failed strdup.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix longjmp/siglongjmp mixup</title>
<updated>2022-05-27T00:13:09+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-05-27T00:12:52+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=061c2d683fae03b63872c08f6c4db37f930bb3b7'/>
<id>061c2d683fae03b63872c08f6c4db37f930bb3b7</id>
<content type='text'>
* src/xterm.c (xm_drag_window_io_error_handler)
(x_dnd_io_error_handler): Use `siglongjmp'.  Reported by Ken
Brown &lt;kbrown@cornell.edu&gt;.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (xm_drag_window_io_error_handler)
(x_dnd_io_error_handler): Use `siglongjmp'.  Reported by Ken
Brown &lt;kbrown@cornell.edu&gt;.
</pre>
</div>
</content>
</entry>
<entry>
<title>eval.c: New functions `defvar-1` and `defconst-1` (bug#55156)</title>
<updated>2022-05-26T16:21:32+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2022-05-25T21:53:39+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=80ba4c170756049a101b4e6692882ac30ba5e1a5'/>
<id>80ba4c170756049a101b4e6692882ac30ba5e1a5</id>
<content type='text'>
The bytecode interpreter can't directly call special forms, so
the byte-compiler usually converts special forms into some sequence of
byte codes (basically, providing a duplicate definition of the special
form).  There are still two exceptions to this: `defconst` and `defvar`,
where the compiler instead generates a convoluted chunk of code like:

    (funcall '(lambda (x) (defvar &lt;sym&gt; x &lt;doc&gt;)) &lt;value&gt;)

where the quote makes sure we keep the function non-compiled, so as
to end up running the special form at run time.

Get rid of this workaround by introducing `defvar-1` and `defconst-1`
which provide a *functional* interface to the functionality of the
corresponding special form.

* src/eval.c (defvar, Fdefvar_1, Fdefconst_1): New functions, extracted from
`Fdefvar` and `Fdefconst`.
(Fdefvar, Fdefconst): Use them.
(syms_of_eval): `defsubr` the new functions.

* lisp/emacs-lisp/bytecomp.el (byte-compile-tmp-var): Delete const.
(byte-compile-defvar): Simplify using the new functions.

* doc/lispref/variables.texi (Defining Variables): Adjust the doc of
`defvar` to reflect the actual semantics implemented.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The bytecode interpreter can't directly call special forms, so
the byte-compiler usually converts special forms into some sequence of
byte codes (basically, providing a duplicate definition of the special
form).  There are still two exceptions to this: `defconst` and `defvar`,
where the compiler instead generates a convoluted chunk of code like:

    (funcall '(lambda (x) (defvar &lt;sym&gt; x &lt;doc&gt;)) &lt;value&gt;)

where the quote makes sure we keep the function non-compiled, so as
to end up running the special form at run time.

Get rid of this workaround by introducing `defvar-1` and `defconst-1`
which provide a *functional* interface to the functionality of the
corresponding special form.

* src/eval.c (defvar, Fdefvar_1, Fdefconst_1): New functions, extracted from
`Fdefvar` and `Fdefconst`.
(Fdefvar, Fdefconst): Use them.
(syms_of_eval): `defsubr` the new functions.

* lisp/emacs-lisp/bytecomp.el (byte-compile-tmp-var): Delete const.
(byte-compile-defvar): Simplify using the new functions.

* doc/lispref/variables.texi (Defining Variables): Adjust the doc of
`defvar` to reflect the actual semantics implemented.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle alternate actions for Motif drop targets</title>
<updated>2022-05-26T13:00:35+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-05-26T13:00:17+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e490b80a105b82870e5571eaa3cfa5bc3ad936b0'/>
<id>e490b80a105b82870e5571eaa3cfa5bc3ad936b0</id>
<content type='text'>
* src/xterm.c (xm_side_effect_from_action): Handle
`XdndActionAsk'.
(xm_operations_from_actions): New function.
(xm_send_top_level_leave_message, x_dnd_cleanup_drag_and_drop)
(x_dnd_update_state, handle_one_xevent, x_connection_closed):
Use those actions when building a side effect.
(x_dnd_begin_drag_and_drop): Keep track of the set of
alternative drag-and-drop actions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (xm_side_effect_from_action): Handle
`XdndActionAsk'.
(xm_operations_from_actions): New function.
(xm_send_top_level_leave_message, x_dnd_cleanup_drag_and_drop)
(x_dnd_update_state, handle_one_xevent, x_connection_closed):
Use those actions when building a side effect.
(x_dnd_begin_drag_and_drop): Keep track of the set of
alternative drag-and-drop actions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix the `x_trace_wire' option</title>
<updated>2022-05-26T06:37:27+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-05-26T06:37:27+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=036b72575a073d43552fd75a435c6388afe95348'/>
<id>036b72575a073d43552fd75a435c6388afe95348</id>
<content type='text'>
* src/xterm.c (x_trace_wire):
(x_term_init): Fix debugging code for modern C and Xlib.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (x_trace_wire):
(x_term_init): Fix debugging code for modern C and Xlib.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use x_get_atom_name for some more things</title>
<updated>2022-05-26T06:27:32+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2022-05-26T06:27:32+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c67c7ab53c0fe4ff03c722c9bac44fcea6ad0699'/>
<id>c67c7ab53c0fe4ff03c722c9bac44fcea6ad0699</id>
<content type='text'>
* src/xterm.c (x_dnd_send_unsupported_drop, x_dnd_send_drop):
Use x_get_atom_name instead of XGetAtomName.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/xterm.c (x_dnd_send_unsupported_drop, x_dnd_send_drop):
Use x_get_atom_name instead of XGetAtomName.
</pre>
</div>
</content>
</entry>
</feed>
