So tracing the fireEvent method, I found that the source does indeed reference the button, but in HandlerManager, the source gets changed to SimpleWidget.
Object oldSource = event.getSource(); //event.getSouce is button event.setSource(source); //here source is SimpleWidget Not sure why. the full method. /** * Fires the given event to the handlers listening to the event's type. * * Note, any subclass should be very careful about overriding this method, as * adds/removes of handlers will not be safe except within this * implementation. * * @param event the event */ public void fireEvent(GwtEvent<?> event) { // If it not live we should revive it. if (!event.isLive()) { event.revive(); } Object oldSource = event.getSource(); event.setSource(source); try { firingDepth++; registry.fireEvent(event, isReverseOrder); } finally { firingDepth--; if (firingDepth == 0) { handleQueuedAddsAndRemoves(); } } if (oldSource == null) { // This was my event, so I should kill it now that I'm done. event.kill(); } else { // Restoring the source for the next handler to use. event.setSource(oldSource); } } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to Google-Web-Toolkit@googlegroups.com To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---