Skip to content

Commit 2986b24

Browse files
atsushienojonpryor
authored andcommitted
[generator] Don't trim 8 name chars on non-set-listeners. (#181)
Fixes: https://bugzilla.xamarin.com/show_bug.cgi?id=58403 An event names is generated from the method name which was supposed to be `setOnXxxListener()`. Though we had been generating events for methods that do not end with "Listener", resulting in weird event names (e.g. it was "VisibleWidt" for `setOnVisibleWidthChanged` method). Trim trailing 8 characters only on `setOnXxx**Listener**()` methods.
1 parent 7d9d72a commit 2986b24

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

tools/generator/Method.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,8 @@ internal string CalculateEventName (Func<string, bool> checkNameDuplicate)
396396
{
397397
string event_name = EventName;
398398
if (event_name == null) {
399-
event_name = Name.Substring (0, Name.Length - 8).Substring (3);
399+
var trimSize = Name.EndsWith ("Listener", StringComparison.Ordinal) ? 8 : 0;
400+
event_name = Name.Substring (0, Name.Length - trimSize).Substring (3);
400401
if (event_name.StartsWith ("On"))
401402
event_name = event_name.Substring (2);
402403
if (checkNameDuplicate (event_name))

0 commit comments

Comments
 (0)