| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2009, 2010 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Google Inc. | 3 * Copyright (C) 2008 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 case DragSourceActionNone: | 104 case DragSourceActionNone: |
| 105 return false; | 105 return false; |
| 106 } | 106 } |
| 107 // Make sure MSVC doesn't complain that not all control paths return a value
. | 107 // Make sure MSVC doesn't complain that not all control paths return a value
. |
| 108 return false; | 108 return false; |
| 109 } | 109 } |
| 110 #endif | 110 #endif |
| 111 | 111 |
| 112 static PlatformMouseEvent createMouseEvent(DragData* dragData) | 112 static PlatformMouseEvent createMouseEvent(DragData* dragData) |
| 113 { | 113 { |
| 114 int keyState = dragData->modifierKeyState(); | |
| 115 bool shiftKey = static_cast<bool>(keyState & PlatformEvent::ShiftKey); | |
| 116 bool ctrlKey = static_cast<bool>(keyState & PlatformEvent::CtrlKey); | |
| 117 bool altKey = static_cast<bool>(keyState & PlatformEvent::AltKey); | |
| 118 bool metaKey = static_cast<bool>(keyState & PlatformEvent::MetaKey); | |
| 119 | |
| 120 return PlatformMouseEvent(dragData->clientPosition(), dragData->globalPositi
on(), | 114 return PlatformMouseEvent(dragData->clientPosition(), dragData->globalPositi
on(), |
| 121 LeftButton, PlatformEvent::MouseMoved, 0, shiftKey, ctrlKey, altKey, | 115 LeftButton, PlatformEvent::MouseMoved, 0, |
| 122 metaKey, PlatformMouseEvent::RealOrIndistinguishable, currentTime()); | 116 static_cast<PlatformEvent::Modifiers>(dragData->modifiers()), |
| 117 PlatformMouseEvent::RealOrIndistinguishable, currentTime()); |
| 123 } | 118 } |
| 124 | 119 |
| 125 static PassRefPtrWillBeRawPtr<DataTransfer> createDraggingDataTransfer(DataTrans
ferAccessPolicy policy, DragData* dragData) | 120 static PassRefPtrWillBeRawPtr<DataTransfer> createDraggingDataTransfer(DataTrans
ferAccessPolicy policy, DragData* dragData) |
| 126 { | 121 { |
| 127 return DataTransfer::create(DataTransfer::DragAndDrop, policy, dragData->pla
tformData()); | 122 return DataTransfer::create(DataTransfer::DragAndDrop, policy, dragData->pla
tformData()); |
| 128 } | 123 } |
| 129 | 124 |
| 130 DragController::DragController(Page* page, DragClient* client) | 125 DragController::DragController(Page* page, DragClient* client) |
| 131 : m_page(page) | 126 : m_page(page) |
| 132 , m_client(client) | 127 , m_client(client) |
| (...skipping 815 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 948 // FIXME: To match the MacOS behaviour we should return DragOperationNone | 943 // FIXME: To match the MacOS behaviour we should return DragOperationNone |
| 949 // if we are a modal window, we are the drag source, or the window is an | 944 // if we are a modal window, we are the drag source, or the window is an |
| 950 // attached sheet If this can be determined from within WebCore | 945 // attached sheet If this can be determined from within WebCore |
| 951 // operationForDrag can be pulled into WebCore itself | 946 // operationForDrag can be pulled into WebCore itself |
| 952 ASSERT(dragData); | 947 ASSERT(dragData); |
| 953 return dragData->containsURL() && !m_didInitiateDrag ? DragOperationCopy : D
ragOperationNone; | 948 return dragData->containsURL() && !m_didInitiateDrag ? DragOperationCopy : D
ragOperationNone; |
| 954 } | 949 } |
| 955 | 950 |
| 956 bool DragController::isCopyKeyDown(DragData* dragData) | 951 bool DragController::isCopyKeyDown(DragData* dragData) |
| 957 { | 952 { |
| 958 int keyState = dragData->modifierKeyState(); | 953 int modifiers = dragData->modifiers(); |
| 959 | 954 |
| 960 #if OS(MACOSX) | 955 #if OS(MACOSX) |
| 961 return keyState & PlatformEvent::AltKey; | 956 return modifiers & PlatformEvent::AltKey; |
| 962 #else | 957 #else |
| 963 return keyState & PlatformEvent::CtrlKey; | 958 return modifiers & PlatformEvent::CtrlKey; |
| 964 #endif | 959 #endif |
| 965 } | 960 } |
| 966 | 961 |
| 967 void DragController::cleanupAfterSystemDrag() | 962 void DragController::cleanupAfterSystemDrag() |
| 968 { | 963 { |
| 969 } | 964 } |
| 970 | 965 |
| 971 DEFINE_TRACE(DragController) | 966 DEFINE_TRACE(DragController) |
| 972 { | 967 { |
| 973 visitor->trace(m_page); | 968 visitor->trace(m_page); |
| 974 visitor->trace(m_documentUnderMouse); | 969 visitor->trace(m_documentUnderMouse); |
| 975 visitor->trace(m_dragInitiator); | 970 visitor->trace(m_dragInitiator); |
| 976 visitor->trace(m_fileInputElementUnderMouse); | 971 visitor->trace(m_fileInputElementUnderMouse); |
| 977 } | 972 } |
| 978 | 973 |
| 979 } // namespace blink | 974 } // namespace blink |
| OLD | NEW |