| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ash/wm/ash_native_cursor_manager.h" | 5 #include "ash/wm/ash_native_cursor_manager.h" | 
| 6 | 6 | 
| 7 #include "ash/display/display_controller.h" | 7 #include "ash/display/display_controller.h" | 
| 8 #include "ash/display/mirror_window_controller.h" | 8 #include "ash/display/mirror_window_controller.h" | 
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" | 
| 10 #include "ash/wm/image_cursors.h" | 10 #include "ash/wm/image_cursors.h" | 
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 55     : image_cursors_(new ImageCursors) { | 55     : image_cursors_(new ImageCursors) { | 
| 56 } | 56 } | 
| 57 | 57 | 
| 58 AshNativeCursorManager::~AshNativeCursorManager() { | 58 AshNativeCursorManager::~AshNativeCursorManager() { | 
| 59 } | 59 } | 
| 60 | 60 | 
| 61 void AshNativeCursorManager::SetDisplay( | 61 void AshNativeCursorManager::SetDisplay( | 
| 62     const gfx::Display& display, | 62     const gfx::Display& display, | 
| 63     views::corewm::NativeCursorManagerDelegate* delegate) { | 63     views::corewm::NativeCursorManagerDelegate* delegate) { | 
| 64   if (image_cursors_->SetDisplay(display)) | 64   if (image_cursors_->SetDisplay(display)) | 
| 65     SetCursor(delegate->GetCurrentCursor(), delegate); | 65     SetCursor(delegate->GetCursor(), delegate); | 
| 66 } | 66 } | 
| 67 | 67 | 
| 68 void AshNativeCursorManager::SetCursor( | 68 void AshNativeCursorManager::SetCursor( | 
| 69     gfx::NativeCursor cursor, | 69     gfx::NativeCursor cursor, | 
| 70     views::corewm::NativeCursorManagerDelegate* delegate) { | 70     views::corewm::NativeCursorManagerDelegate* delegate) { | 
| 71   gfx::NativeCursor new_cursor = cursor; | 71   gfx::NativeCursor new_cursor = cursor; | 
| 72   image_cursors_->SetPlatformCursor(&new_cursor); | 72   image_cursors_->SetPlatformCursor(&new_cursor); | 
| 73   new_cursor.set_device_scale_factor( | 73   new_cursor.set_device_scale_factor( | 
| 74       image_cursors_->GetDisplay().device_scale_factor()); | 74       image_cursors_->GetDisplay().device_scale_factor()); | 
| 75 | 75 | 
| 76   delegate->CommitCursor(new_cursor); | 76   delegate->CommitCursor(new_cursor); | 
| 77 | 77 | 
| 78   if (delegate->GetCurrentVisibility()) | 78   if (delegate->IsCursorVisible()) | 
| 79     SetCursorOnAllRootWindows(new_cursor); | 79     SetCursorOnAllRootWindows(new_cursor); | 
| 80 } | 80 } | 
| 81 | 81 | 
| 82 void AshNativeCursorManager::SetCursorSet( | 82 void AshNativeCursorManager::SetCursorSet( | 
| 83     ui::CursorSetType cursor_set, | 83     ui::CursorSetType cursor_set, | 
| 84     views::corewm::NativeCursorManagerDelegate* delegate) { | 84     views::corewm::NativeCursorManagerDelegate* delegate) { | 
| 85   image_cursors_->SetCursorSet(cursor_set); | 85   image_cursors_->SetCursorSet(cursor_set); | 
| 86   delegate->CommitCursorSet(cursor_set); | 86   delegate->CommitCursorSet(cursor_set); | 
| 87 | 87 | 
| 88   // Sets the cursor to reflect the scale change immediately. | 88   // Sets the cursor to reflect the scale change immediately. | 
| 89   if (delegate->GetCurrentVisibility()) | 89   if (delegate->IsCursorVisible()) | 
| 90     SetCursor(delegate->GetCurrentCursor(), delegate); | 90     SetCursor(delegate->GetCursor(), delegate); | 
| 91 } | 91 } | 
| 92 | 92 | 
| 93 void AshNativeCursorManager::SetScale( | 93 void AshNativeCursorManager::SetScale( | 
| 94     float scale, | 94     float scale, | 
| 95     views::corewm::NativeCursorManagerDelegate* delegate) { | 95     views::corewm::NativeCursorManagerDelegate* delegate) { | 
| 96   image_cursors_->SetScale(scale); | 96   image_cursors_->SetScale(scale); | 
| 97   delegate->CommitScale(scale); | 97   delegate->CommitScale(scale); | 
| 98 | 98 | 
| 99   // Sets the cursor to reflect the scale change immediately. | 99   // Sets the cursor to reflect the scale change immediately. | 
| 100   SetCursor(delegate->GetCurrentCursor(), delegate); | 100   SetCursor(delegate->GetCursor(), delegate); | 
| 101 } | 101 } | 
| 102 | 102 | 
| 103 void AshNativeCursorManager::SetVisibility( | 103 void AshNativeCursorManager::SetVisibility( | 
| 104     bool visible, | 104     bool visible, | 
| 105     views::corewm::NativeCursorManagerDelegate* delegate) { | 105     views::corewm::NativeCursorManagerDelegate* delegate) { | 
| 106   delegate->CommitVisibility(visible); | 106   delegate->CommitVisibility(visible); | 
| 107 | 107 | 
| 108   if (visible) { | 108   if (visible) { | 
| 109     SetCursor(delegate->GetCurrentCursor(), delegate); | 109     SetCursor(delegate->GetCursor(), delegate); | 
| 110   } else { | 110   } else { | 
| 111     gfx::NativeCursor invisible_cursor(ui::kCursorNone); | 111     gfx::NativeCursor invisible_cursor(ui::kCursorNone); | 
| 112     image_cursors_->SetPlatformCursor(&invisible_cursor); | 112     image_cursors_->SetPlatformCursor(&invisible_cursor); | 
| 113     SetCursorOnAllRootWindows(invisible_cursor); | 113     SetCursorOnAllRootWindows(invisible_cursor); | 
| 114   } | 114   } | 
| 115 | 115 | 
| 116   NotifyCursorVisibilityChange(visible); | 116   NotifyCursorVisibilityChange(visible); | 
| 117 } | 117 } | 
| 118 | 118 | 
| 119 void AshNativeCursorManager::SetMouseEventsEnabled( | 119 void AshNativeCursorManager::SetMouseEventsEnabled( | 
| 120     bool enabled, | 120     bool enabled, | 
| 121     views::corewm::NativeCursorManagerDelegate* delegate) { | 121     views::corewm::NativeCursorManagerDelegate* delegate) { | 
| 122   delegate->CommitMouseEventsEnabled(enabled); | 122   delegate->CommitMouseEventsEnabled(enabled); | 
| 123 | 123 | 
| 124   if (enabled) { | 124   if (enabled) { | 
| 125     aura::Env::GetInstance()->set_last_mouse_location( | 125     aura::Env::GetInstance()->set_last_mouse_location( | 
| 126         disabled_cursor_location_); | 126         disabled_cursor_location_); | 
| 127   } else { | 127   } else { | 
| 128     disabled_cursor_location_ = aura::Env::GetInstance()->last_mouse_location(); | 128     disabled_cursor_location_ = aura::Env::GetInstance()->last_mouse_location(); | 
| 129   } | 129   } | 
| 130 | 130 | 
| 131   SetVisibility(delegate->GetCurrentVisibility(), delegate); | 131   SetVisibility(delegate->IsCursorVisible(), delegate); | 
| 132   NotifyMouseEventsEnableStateChange(enabled); | 132   NotifyMouseEventsEnableStateChange(enabled); | 
| 133 } | 133 } | 
| 134 | 134 | 
| 135 }  // namespace ash | 135 }  // namespace ash | 
| OLD | NEW | 
|---|