Check-in [1f4d776263]

Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update of TIP 532.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1f4d77626376958ad8a0b285d12d88f8b2819b9a85b743302dae69247a31727b
User & Date: gcramer 2019-01-13 17:49:47
Context
2019-01-14
10:22
Minor fix in #532. check-in: 342b828704 user: gcramer tags: trunk
2019-01-13
17:49
Update of TIP 532. check-in: 1f4d776263 user: gcramer tags: trunk
17:40
Update of TIP 532. check-in: 04480a5df1 user: gcramer tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to tip/532.md.

77
78
79
80
81
82
83
84

85
86
87
88
89
90
91
..
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
	> If more than one binding matches a particular event and they have the
	> same tag, then the most specific binding is chosen and its script is
	> evaluated.

	And the sequence <code>\<Double-1\></code> is more specific than <code>\<1\>\<1\></code> because
	of time and space requirements (in <code>\<Double-1\></code>). Note that constant
	<code>PREFER_MOST_SPECIALIZED_EVENT=1</code> has to be set when compiling to enable this new feature.


5. Legacy implementation cannot handle homogeneous equal sequences properly, see this script:

		bind . <1><Control-1> { lappend x "first" }
		bind . <Control-1><1> { lappend x "last" }
		event generate . <Control-1>
		event generate . <Control-1>
................................................................................
	In this script there is no winner, so the later defined one has to be chosen, and
	revised implementation is doing this.

Legacy code also suffers from causing memory holes, revised implementation is tested
to be memory friendly.

The revised implementation supports an additional syntax for binding motion events
(if constant <code>SUPPORT_ADDITIONAL_MOTION_SYNTAX=1</code> is set when compiling). E.g.,
the following bindings

	bind . <B2-Motion> { ... }  
	bind . <B1-B2-Motion> { ... }

can be expressed in a different way:







|
>







 







|







77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
...
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
	> If more than one binding matches a particular event and they have the
	> same tag, then the most specific binding is chosen and its script is
	> evaluated.

	And the sequence <code>\<Double-1\></code> is more specific than <code>\<1\>\<1\></code> because
	of time and space requirements (in <code>\<Double-1\></code>). Note that constant
	<code>PREFER\_MOST\_SPECIALIZED\_EVENT=1</code> has to be set when compiling to enable this
	new feature.

5. Legacy implementation cannot handle homogeneous equal sequences properly, see this script:

		bind . <1><Control-1> { lappend x "first" }
		bind . <Control-1><1> { lappend x "last" }
		event generate . <Control-1>
		event generate . <Control-1>
................................................................................
	In this script there is no winner, so the later defined one has to be chosen, and
	revised implementation is doing this.

Legacy code also suffers from causing memory holes, revised implementation is tested
to be memory friendly.

The revised implementation supports an additional syntax for binding motion events
(if constant <code>SUPPORT\_ADDITIONAL\_MOTION\_SYNTAX=1</code> is set when compiling). E.g.,
the following bindings

	bind . <B2-Motion> { ... }  
	bind . <B1-B2-Motion> { ... }

can be expressed in a different way: