suggested patch from Clemens Pecinovsky

This commit is contained in:
David Rose 2008-05-09 18:53:31 +00:00
parent 07e5322800
commit 28dbf6e736
2 changed files with 15 additions and 7 deletions

View File

@ -712,8 +712,10 @@ def SdkLocateVisualStudio():
SDK["VISUALSTUDIO"] = vcdir SDK["VISUALSTUDIO"] = vcdir
def SdkLocateMSPlatform(): def SdkLocateMSPlatform():
platsdk=GetRegistryKey("SOFTWARE\\Microsoft\\MicrosoftSDK\\InstalledSDKs\\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1", platsdk=GetRegistryKey("SOFTWARE\\Microsoft\\MicrosoftSDK\\InstalledSDKs\\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1", "Install Dir")
"Install Dir") if (platsdk == 0):
platsdk=GetRegistryKey("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v6.1","InstallationFolder")
if (platsdk != 0): if (platsdk != 0):
SDK["MSPLATFORM"] = platsdk SDK["MSPLATFORM"] = platsdk

View File

@ -117,7 +117,7 @@ bool MouseWatcher::
remove_region(MouseWatcherRegion *region) { remove_region(MouseWatcherRegion *region) {
MutexHolder holder(_lock); MutexHolder holder(_lock);
remove_region_from(_current_regions, region); remove_region_from(_regions, region);
if (region == _preferred_region) { if (region == _preferred_region) {
if (_preferred_region != (MouseWatcherRegion *)NULL) { if (_preferred_region != (MouseWatcherRegion *)NULL) {
exit_region(_preferred_region, MouseWatcherParameter()); exit_region(_preferred_region, MouseWatcherParameter());
@ -205,8 +205,8 @@ remove_group(MouseWatcherGroup *group) {
Regions only_a, only_b, both; Regions only_a, only_b, both;
intersect_regions(only_a, only_b, both, intersect_regions(only_a, only_b, both,
_current_regions, group->_regions); _regions, group->_regions);
_current_regions.swap(only_a); _regions.swap(only_a);
if (has_region_in(both, _preferred_region)) { if (has_region_in(both, _preferred_region)) {
if (_preferred_region != (MouseWatcherRegion *)NULL) { if (_preferred_region != (MouseWatcherRegion *)NULL) {
@ -761,8 +761,14 @@ clear_current_regions() {
while (old_ri != _current_regions.end()) { while (old_ri != _current_regions.end()) {
// Here's a region we don't have any more. // Here's a region we don't have any more.
MouseWatcherRegion *old_region = (*old_ri); MouseWatcherRegion *old_region = (*old_ri);
old_region->exit_region(param); without_region(old_region, param);
throw_event_pattern(_leave_pattern, old_region, ButtonHandle::none());
if (!_enter_multiple)
{
old_region->exit_region(param);
throw_event_pattern(_leave_pattern, old_region, ButtonHandle::none());
}
++old_ri; ++old_ri;
} }