diff --git a/panda/src/tform/mouseWatcher.cxx b/panda/src/tform/mouseWatcher.cxx index 6b602baa57..599ab9d008 100644 --- a/panda/src/tform/mouseWatcher.cxx +++ b/panda/src/tform/mouseWatcher.cxx @@ -113,7 +113,7 @@ bool MouseWatcher:: remove_region(MouseWatcherRegion *region) { MutexHolder holder(_lock); - remove_region_from(_regions, region); + remove_region_from(_current_regions, region); if (region == _preferred_region) { if (_preferred_region != (MouseWatcherRegion *)NULL) { exit_region(_preferred_region, MouseWatcherParameter()); @@ -201,8 +201,8 @@ remove_group(MouseWatcherGroup *group) { Regions only_a, only_b, both; intersect_regions(only_a, only_b, both, - _regions, group->_regions); - _regions.swap(only_a); + _current_regions, group->_regions); + _current_regions.swap(only_a); if (has_region_in(both, _preferred_region)) { if (_preferred_region != (MouseWatcherRegion *)NULL) { @@ -275,8 +275,8 @@ replace_group(MouseWatcherGroup *old_group, MouseWatcherGroup *new_group) { if (!remove.empty()) { Regions only_a, only_b, both; intersect_regions(only_a, only_b, both, - _regions, remove); - _regions.swap(only_a); + _current_regions, remove); + _current_regions.swap(only_a); if (has_region_in(both, _preferred_region)) { if (_preferred_region != (MouseWatcherRegion *)NULL) { @@ -293,8 +293,8 @@ replace_group(MouseWatcherGroup *old_group, MouseWatcherGroup *new_group) { if (!add.empty()) { Regions new_list; intersect_regions(new_list, new_list, new_list, - _regions, add); - _regions.swap(new_list); + _current_regions, add); + _current_regions.swap(new_list); } // Add the new group, if it's not already there. @@ -757,14 +757,8 @@ clear_current_regions() { while (old_ri != _current_regions.end()) { // Here's a region we don't have any more. MouseWatcherRegion *old_region = (*old_ri); - without_region(old_region, param); - - if (!_enter_multiple) - { - old_region->exit_region(param); - throw_event_pattern(_leave_pattern, old_region, ButtonHandle::none()); - } - + old_region->exit_region(param); + throw_event_pattern(_leave_pattern, old_region, ButtonHandle::none()); ++old_ri; }