Have you ever wanted to trace some code which is part of the Morphic UI process, or code triggered by it? Had trouble trying to trace it in the debugger because interacting with the UI changes what you're trying to watch? EventInterceptorMorph may be able to help!
EventInterceptorMorph is a button which, when pressed, begins listening to the hand's event stream. When an even of the appropriate type is encountered, this morph intercepts it and traces the dispatch of the event using MessageSendTree, and opens a SendTreeExplorer on the results. This is useful for debugging parts of the UI process which are otherwise difficult to trace.
The eventType can be any of the Morphic event types, but #mouseUp, #mouseDown, and #keystroke are by far the most useful because they are the triggers for the majority of actual UI activity.
A methodSelector may be set which identifies a particular method the user is interested in. All method sends above this method are ignored. This is useful when the user wishes to study the execution of a known method which is eventually triggered by a UI gesture, but has no interest in the complete event dispatching send tree leading up to it. See example in changeset preamble.