OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "app/os_exchange_data_provider_win.h" | 5 #include "app/os_exchange_data_provider_win.h" |
6 | 6 |
7 #include "app/clipboard/clipboard_util_win.h" | 7 #include "app/clipboard/clipboard_util_win.h" |
8 #include "app/l10n_util.h" | 8 #include "app/l10n_util.h" |
9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
10 #include "base/i18n/file_util_icu.h" | 10 #include "base/i18n/file_util_icu.h" |
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
626 // yet, it probably means that the target does not support delay- | 626 // yet, it probably means that the target does not support delay- |
627 // rendering. So instead, we wait for the data. | 627 // rendering. So instead, we wait for the data. |
628 if (is_left_button_down) { | 628 if (is_left_button_down) { |
629 (*iter)->in_delay_rendering = true; | 629 (*iter)->in_delay_rendering = true; |
630 memset(medium, 0, sizeof(STGMEDIUM)); | 630 memset(medium, 0, sizeof(STGMEDIUM)); |
631 } else { | 631 } else { |
632 wait_for_data = true; | 632 wait_for_data = true; |
633 } | 633 } |
634 } | 634 } |
635 | 635 |
636 if (wait_for_data) { | 636 if (!wait_for_data) |
637 // Notify the observer we start waiting for the data. This gives | 637 return DV_E_FORMATETC; |
638 // an observer a chance to end the drag and drop. | |
639 if (observer_) | |
640 observer_->OnWaitForData(); | |
641 | 638 |
642 // Now we can start the download. | 639 // Notify the observer we start waiting for the data. This gives |
643 if ((*iter)->downloader.get()) { | 640 // an observer a chance to end the drag and drop. |
644 if (!(*iter)->downloader->Start(this)) { | 641 if (observer_) |
645 is_aborting_ = true; | 642 observer_->OnWaitForData(); |
646 return DV_E_FORMATETC; | 643 |
647 } | 644 // Now we can start the download. |
| 645 if ((*iter)->downloader.get()) { |
| 646 if (!(*iter)->downloader->Start(this)) { |
| 647 is_aborting_ = true; |
| 648 return DV_E_FORMATETC; |
648 } | 649 } |
| 650 } |
649 | 651 |
650 // The stored data should have been updated with the final version. | 652 // The stored data should have been updated with the final version. |
651 // So we just need to call this function again to retrieve it. | 653 // So we just need to call this function again to retrieve it. |
652 return GetData(format_etc, medium); | 654 return GetData(format_etc, medium); |
653 } | |
654 } | 655 } |
655 return S_OK; | 656 return S_OK; |
656 } | 657 } |
657 ++iter; | 658 ++iter; |
658 } | 659 } |
659 | 660 |
660 return DV_E_FORMATETC; | 661 return DV_E_FORMATETC; |
661 } | 662 } |
662 | 663 |
663 HRESULT DataObjectImpl::GetDataHere(FORMATETC* format_etc, | 664 HRESULT DataObjectImpl::GetDataHere(FORMATETC* format_etc, |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
909 // static | 910 // static |
910 OSExchangeData::Provider* OSExchangeData::CreateProvider() { | 911 OSExchangeData::Provider* OSExchangeData::CreateProvider() { |
911 return new OSExchangeDataProviderWin(); | 912 return new OSExchangeDataProviderWin(); |
912 } | 913 } |
913 | 914 |
914 // static | 915 // static |
915 OSExchangeData::CustomFormat OSExchangeData::RegisterCustomFormat( | 916 OSExchangeData::CustomFormat OSExchangeData::RegisterCustomFormat( |
916 const std::string& type) { | 917 const std::string& type) { |
917 return RegisterClipboardFormat(ASCIIToWide(type).c_str()); | 918 return RegisterClipboardFormat(ASCIIToWide(type).c_str()); |
918 } | 919 } |
OLD | NEW |