mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git ui/shell_dialogs/base_shell_dialog_win.cc ui/shell_dialogs/base_shell_dialog_win.cc
 | |
| index 138167d4c0105..81562ffdd2162 100644
 | |
| --- ui/shell_dialogs/base_shell_dialog_win.cc
 | |
| +++ ui/shell_dialogs/base_shell_dialog_win.cc
 | |
| @@ -59,11 +59,15 @@ BaseShellDialogImpl::Owners& BaseShellDialogImpl::GetOwners() {
 | |
|  
 | |
|  // static
 | |
|  void BaseShellDialogImpl::DisableOwner(HWND owner) {
 | |
| +  if (owner)
 | |
| +    owner = GetAncestor(owner, GA_ROOT);
 | |
|    SetOwnerEnabled(owner, false);
 | |
|  }
 | |
|  
 | |
|  std::unique_ptr<BaseShellDialogImpl::RunState> BaseShellDialogImpl::BeginRun(
 | |
|      HWND owner) {
 | |
| +  if (owner)
 | |
| +    owner = GetAncestor(owner, GA_ROOT);
 | |
|    // Cannot run a modal shell dialog if one is already running for this owner.
 | |
|    DCHECK(!IsRunningDialogForOwner(owner));
 | |
|    // The owner must be a top level window, otherwise we could end up with two
 | |
| @@ -89,6 +93,8 @@ void BaseShellDialogImpl::EndRun(std::unique_ptr<RunState> run_state) {
 | |
|  }
 | |
|  
 | |
|  bool BaseShellDialogImpl::IsRunningDialogForOwner(HWND owner) const {
 | |
| +  if (owner)
 | |
| +    owner = GetAncestor(owner, GA_ROOT);
 | |
|    return (owner && GetOwners().find(owner) != GetOwners().end());
 | |
|  }
 | |
|  
 |