Browse Source

suggested patch from Clemens Pecinovsky

David Rose 17 years ago
parent
commit
28dbf6e736
2 changed files with 15 additions and 7 deletions
  1. 4 2
      doc/makepanda/makepandacore.py
  2. 11 5
      panda/src/tform/mouseWatcher.cxx

+ 4 - 2
doc/makepanda/makepandacore.py

@@ -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",
-                           "Install Dir")
+    platsdk=GetRegistryKey("SOFTWARE\\Microsoft\\MicrosoftSDK\\InstalledSDKs\\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1", "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
 
 

+ 11 - 5
panda/src/tform/mouseWatcher.cxx

@@ -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);
-  _current_regions.swap(only_a);
+                    _regions, group->_regions);
+  _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);
-      throw_event_pattern(_leave_pattern, old_region, ButtonHandle::none());
+      without_region(old_region, param);
+
+      if (!_enter_multiple)
+      {
+        old_region->exit_region(param);
+        throw_event_pattern(_leave_pattern, old_region, ButtonHandle::none());
+      }
+	  
       ++old_ri;
       ++old_ri;
     }
     }