Update to R2011b breaks call to addlistener

Just updated from R2010a to R2011b. In a custom "brush on" handler, I have the following call to addlistener that works fine in R2010a:
addlistener(figureHandle, 'windowButtonUp', @obj.BrushEnd);
but causes R2011b to return the following error:
"The specified event is not supported by the object"
when it tries to call save__listener__.
I've searched the Release Notes of every version from 2010a through 2011b, the bug reports, the entire MathWorks site, and Googled--nada. Any ideas? Thanks!

 采纳的回答

Please try this:
addlistener(figureHandle, 'WindowButtonUpFcn', 'PostSet', @obj.BrushEnd);
[EDITED]: I assume, the above will not do what you need. Try this:
addlistener(gcf, 'WindowMouseRelease', @obj.BrushEnd)

2 个评论

WindowMouseRelease worked, thanks. Subsequently, I searched the entire site for WindowMouseRelease, and received nothing but a "Check your spelling" warning--"very undocumented" indeed! (I'm going to report this as a bug.)
Here's the reply I got to my service request:
"Thank you for bringing this issue to our attention. It is indeed true that the events ‘WindowButtonUp’, ‘WindowButtonDown’ and ‘WindowButtonMotion’ have been renamed to ‘WindowMouseRelease’, ‘WindowMousePress’ and ‘WindowMouseMotion’ (respectively)...
The current documentation for MATLAB 7.13 (R2011b) has no indication of these name changes. I have made a request to update the documentation. Once again, thank you very much for helping us."
Hopefully that's the extent of that (but see my other post about the new database toolbox update function breaking my code).

请先登录,再进行评论。

更多回答(1 个)

does the event exist on the "figureHandle"?
get(get(classhandle(handle(figureHandle)),'Events'),'Name')
what if you try writing it "WindowButtonUpEvent"? I think its just a spelling error.

3 个评论

Also 2011b renamed some events.
>> addlistener(gcf, 'WindowButtonUpEvent', @why);
"Warning: The specified event will be removed in a future release.
Please use the following event instead: WindowMouseRelease"
But the WindowMouseRelease does not appear in the list shown by: get(get(classhandle(handle(gcf)),'Events'),'Name')
I think the non-trivial ineraction with GUIs is very undocumented and clumsy.
Thanks, all.
@ Walter: is there a "one-stop-shop" list of such events?
@ Jan: no scheisse! ;-(

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Programming 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by