libnui / nui3

libnui v3
http://libnui.net
Mozilla Public License 2.0
163 stars 31 forks source link

nuiEvent issue #17

Closed Jaydee2190 closed 13 years ago

Jaydee2190 commented 13 years ago

Cancel() in nuiEvent sets mCancel = false;

However to actually stop propogating events this should be true.

bool nuiEventSource::SendEvent(const nuiEvent& rEvent) { if (IsEnabled() && !mpTargets.empty()) { rEvent.SetSource(this); std::vector<nuiEventTargetBase> targets(mpTargets); std::vector<nuiEventTargetBase>::const_iterator it = targets.begin(); std::vector<nuiEventTargetBase*>::const_iterator end = targets.end();

bool handled = false;
while (it != end && !handled)
{
  ((*it)->OnEvent(rEvent));
  handled = rEvent.IsCanceled(); // returns FALSE when actually cancelled
  ++it;
}

return handled;

}

return false; }

meeloo commented 13 years ago

Indeed, you're right. Thanks for catching it!

meeloo commented 13 years ago

closed by 8220731c3393cdb4ec4b094153ea0b87dd2b0077 fixes nuiEvent::Cancel not actually cancelling the event :/ Thanks to Jaydee for finding this bug.