Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: ash/wm/ash_native_cursor_manager.cc

Issue 92413002: Cursor state should be global for all CursorManagers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch for review Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698