OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 // This has to be before any other includes, else default is picked up. | |
6 // See base/logging for details on this. | |
7 #define NOTIMPLEMENTED_POLICY 5 | |
James Cook
2016/10/03 20:33:08
Gentle pushback: We're already pretty spammy at st
sky
2016/10/03 20:52:13
I realize we're spammy, but I think that's the poi
| |
8 | |
5 #include "ui/views/mus/native_widget_mus.h" | 9 #include "ui/views/mus/native_widget_mus.h" |
6 | 10 |
7 #include <utility> | 11 #include <utility> |
8 #include <vector> | 12 #include <vector> |
9 | 13 |
10 #include "base/callback.h" | 14 #include "base/callback.h" |
11 #include "base/macros.h" | 15 #include "base/macros.h" |
12 #include "base/message_loop/message_loop.h" | 16 #include "base/message_loop/message_loop.h" |
13 #include "base/run_loop.h" | 17 #include "base/run_loop.h" |
14 #include "base/threading/thread_task_runner_handle.h" | 18 #include "base/threading/thread_task_runner_handle.h" |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
401 : native_widget_mus_(native_widget_mus), | 405 : native_widget_mus_(native_widget_mus), |
402 show_state_(ui::mojom::ShowState::DEFAULT) { | 406 show_state_(ui::mojom::ShowState::DEFAULT) { |
403 mus_window()->AddObserver(this); | 407 mus_window()->AddObserver(this); |
404 } | 408 } |
405 | 409 |
406 ~MusWindowObserver() override { | 410 ~MusWindowObserver() override { |
407 mus_window()->RemoveObserver(this); | 411 mus_window()->RemoveObserver(this); |
408 } | 412 } |
409 | 413 |
410 // ui::WindowObserver: | 414 // ui::WindowObserver: |
411 void OnWindowVisibilityChanging(ui::Window* window) override { | 415 void OnWindowVisibilityChanging(ui::Window* window, bool visible) override { |
412 native_widget_mus_->OnMusWindowVisibilityChanging(window); | 416 native_widget_mus_->OnMusWindowVisibilityChanging(window, visible); |
413 } | 417 } |
414 void OnWindowVisibilityChanged(ui::Window* window) override { | 418 void OnWindowVisibilityChanged(ui::Window* window, bool visible) override { |
415 native_widget_mus_->OnMusWindowVisibilityChanged(window); | 419 native_widget_mus_->OnMusWindowVisibilityChanged(window, visible); |
416 } | 420 } |
417 void OnWindowPredefinedCursorChanged(ui::Window* window, | 421 void OnWindowPredefinedCursorChanged(ui::Window* window, |
418 ui::mojom::Cursor cursor) override { | 422 ui::mojom::Cursor cursor) override { |
419 DCHECK_EQ(window, mus_window()); | 423 DCHECK_EQ(window, mus_window()); |
420 native_widget_mus_->set_last_cursor(cursor); | 424 native_widget_mus_->set_last_cursor(cursor); |
421 } | 425 } |
422 void OnWindowSharedPropertyChanged( | 426 void OnWindowSharedPropertyChanged( |
423 ui::Window* window, | 427 ui::Window* window, |
424 const std::string& name, | 428 const std::string& name, |
425 const std::vector<uint8_t>* old_data, | 429 const std::vector<uint8_t>* old_data, |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
768 void NativeWidgetMus::OnWidgetInitDone() { | 772 void NativeWidgetMus::OnWidgetInitDone() { |
769 // The client area is calculated from the NonClientView. During | 773 // The client area is calculated from the NonClientView. During |
770 // InitNativeWidget() the NonClientView has not been created. When this | 774 // InitNativeWidget() the NonClientView has not been created. When this |
771 // function is called the NonClientView has been created, so that we can | 775 // function is called the NonClientView has been created, so that we can |
772 // correctly calculate the client area and push it to the ui::Window. | 776 // correctly calculate the client area and push it to the ui::Window. |
773 UpdateClientArea(); | 777 UpdateClientArea(); |
774 UpdateHitTestMask(); | 778 UpdateHitTestMask(); |
775 } | 779 } |
776 | 780 |
777 bool NativeWidgetMus::ShouldUseNativeFrame() const { | 781 bool NativeWidgetMus::ShouldUseNativeFrame() const { |
778 // NOTIMPLEMENTED(); | 782 NOTIMPLEMENTED(); |
779 return false; | 783 return false; |
780 } | 784 } |
781 | 785 |
782 bool NativeWidgetMus::ShouldWindowContentsBeTransparent() const { | 786 bool NativeWidgetMus::ShouldWindowContentsBeTransparent() const { |
783 // NOTIMPLEMENTED(); | 787 NOTIMPLEMENTED(); |
784 return true; | 788 return true; |
785 } | 789 } |
786 | 790 |
787 void NativeWidgetMus::FrameTypeChanged() { | 791 void NativeWidgetMus::FrameTypeChanged() { |
788 // NOTIMPLEMENTED(); | 792 NOTIMPLEMENTED(); |
789 } | 793 } |
790 | 794 |
791 Widget* NativeWidgetMus::GetWidget() { | 795 Widget* NativeWidgetMus::GetWidget() { |
792 return native_widget_delegate_->AsWidget(); | 796 return native_widget_delegate_->AsWidget(); |
793 } | 797 } |
794 | 798 |
795 const Widget* NativeWidgetMus::GetWidget() const { | 799 const Widget* NativeWidgetMus::GetWidget() const { |
796 return native_widget_delegate_->AsWidget(); | 800 return native_widget_delegate_->AsWidget(); |
797 } | 801 } |
798 | 802 |
(...skipping 11 matching lines...) Expand all Loading... | |
810 | 814 |
811 const ui::Compositor* NativeWidgetMus::GetCompositor() const { | 815 const ui::Compositor* NativeWidgetMus::GetCompositor() const { |
812 return window_tree_host_->compositor(); | 816 return window_tree_host_->compositor(); |
813 } | 817 } |
814 | 818 |
815 const ui::Layer* NativeWidgetMus::GetLayer() const { | 819 const ui::Layer* NativeWidgetMus::GetLayer() const { |
816 return content_ ? content_->layer() : nullptr; | 820 return content_ ? content_->layer() : nullptr; |
817 } | 821 } |
818 | 822 |
819 void NativeWidgetMus::ReorderNativeViews() { | 823 void NativeWidgetMus::ReorderNativeViews() { |
820 // NOTIMPLEMENTED(); | 824 NOTIMPLEMENTED(); |
821 } | 825 } |
822 | 826 |
823 void NativeWidgetMus::ViewRemoved(View* view) { | 827 void NativeWidgetMus::ViewRemoved(View* view) { |
824 // NOTIMPLEMENTED(); | 828 NOTIMPLEMENTED(); |
825 } | 829 } |
826 | 830 |
827 // These methods are wrong in mojo. They're not usually used to associate | 831 // These methods are wrong in mojo. They're not usually used to associate |
828 // data with a window; they are used exclusively in chrome/ to unsafely pass | 832 // data with a window; they are used exclusively in chrome/ to unsafely pass |
829 // raw pointers around. I can only find two places where we do the "safe" | 833 // raw pointers around. I can only find two places where we do the "safe" |
830 // thing (and even that requires casting an integer to a void*). They can't be | 834 // thing (and even that requires casting an integer to a void*). They can't be |
831 // used safely in a world where we separate things with mojo. They should be | 835 // used safely in a world where we separate things with mojo. They should be |
832 // removed; not ported. | 836 // removed; not ported. |
833 void NativeWidgetMus::SetNativeWindowProperty(const char* name, void* value) { | 837 void NativeWidgetMus::SetNativeWindowProperty(const char* name, void* value) { |
834 native_window_properties_[name] = value; | 838 native_window_properties_[name] = value; |
835 } | 839 } |
836 | 840 |
837 void* NativeWidgetMus::GetNativeWindowProperty(const char* name) const { | 841 void* NativeWidgetMus::GetNativeWindowProperty(const char* name) const { |
838 auto it = native_window_properties_.find(name); | 842 auto it = native_window_properties_.find(name); |
839 if (it == native_window_properties_.end()) | 843 if (it == native_window_properties_.end()) |
840 return nullptr; | 844 return nullptr; |
841 return it->second; | 845 return it->second; |
842 } | 846 } |
843 | 847 |
844 TooltipManager* NativeWidgetMus::GetTooltipManager() const { | 848 TooltipManager* NativeWidgetMus::GetTooltipManager() const { |
845 // NOTIMPLEMENTED(); | 849 NOTIMPLEMENTED(); |
846 return nullptr; | 850 return nullptr; |
847 } | 851 } |
848 | 852 |
849 void NativeWidgetMus::SetCapture() { | 853 void NativeWidgetMus::SetCapture() { |
850 if (content_) | 854 if (content_) |
851 content_->SetCapture(); | 855 content_->SetCapture(); |
852 } | 856 } |
853 | 857 |
854 void NativeWidgetMus::ReleaseCapture() { | 858 void NativeWidgetMus::ReleaseCapture() { |
855 if (content_) | 859 if (content_) |
(...skipping 18 matching lines...) Expand all Loading... | |
874 gfx::Rect bounds = display::Screen::GetScreen() | 878 gfx::Rect bounds = display::Screen::GetScreen() |
875 ->GetDisplayNearestWindow(content_) | 879 ->GetDisplayNearestWindow(content_) |
876 .work_area(); | 880 .work_area(); |
877 bounds.ClampToCenteredSize(size); | 881 bounds.ClampToCenteredSize(size); |
878 window_->SetBounds(bounds); | 882 window_->SetBounds(bounds); |
879 } | 883 } |
880 | 884 |
881 void NativeWidgetMus::GetWindowPlacement( | 885 void NativeWidgetMus::GetWindowPlacement( |
882 gfx::Rect* bounds, | 886 gfx::Rect* bounds, |
883 ui::WindowShowState* maximized) const { | 887 ui::WindowShowState* maximized) const { |
884 // NOTIMPLEMENTED(); | 888 NOTIMPLEMENTED(); |
885 } | 889 } |
886 | 890 |
887 bool NativeWidgetMus::SetWindowTitle(const base::string16& title) { | 891 bool NativeWidgetMus::SetWindowTitle(const base::string16& title) { |
888 if (!window_ || is_parallel_widget_in_window_manager()) | 892 if (!window_ || is_parallel_widget_in_window_manager()) |
889 return false; | 893 return false; |
890 const char* kWindowTitle_Property = | 894 const char* kWindowTitle_Property = |
891 ui::mojom::WindowManager::kWindowTitle_Property; | 895 ui::mojom::WindowManager::kWindowTitle_Property; |
892 const base::string16 current_title = | 896 const base::string16 current_title = |
893 window_->HasSharedProperty(kWindowTitle_Property) | 897 window_->HasSharedProperty(kWindowTitle_Property) |
894 ? window_->GetSharedProperty<base::string16>(kWindowTitle_Property) | 898 ? window_->GetSharedProperty<base::string16>(kWindowTitle_Property) |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
992 | 996 |
993 void NativeWidgetMus::SetSize(const gfx::Size& size) { | 997 void NativeWidgetMus::SetSize(const gfx::Size& size) { |
994 if (!window_tree_host_) | 998 if (!window_tree_host_) |
995 return; | 999 return; |
996 | 1000 |
997 gfx::Rect bounds = window_tree_host_->GetBounds(); | 1001 gfx::Rect bounds = window_tree_host_->GetBounds(); |
998 SetBounds(gfx::Rect(bounds.origin(), size)); | 1002 SetBounds(gfx::Rect(bounds.origin(), size)); |
999 } | 1003 } |
1000 | 1004 |
1001 void NativeWidgetMus::StackAbove(gfx::NativeView native_view) { | 1005 void NativeWidgetMus::StackAbove(gfx::NativeView native_view) { |
1002 // NOTIMPLEMENTED(); | 1006 NOTIMPLEMENTED(); |
1003 } | 1007 } |
1004 | 1008 |
1005 void NativeWidgetMus::StackAtTop() { | 1009 void NativeWidgetMus::StackAtTop() { |
1006 // NOTIMPLEMENTED(); | 1010 NOTIMPLEMENTED(); |
1007 } | 1011 } |
1008 | 1012 |
1009 void NativeWidgetMus::StackBelow(gfx::NativeView native_view) { | 1013 void NativeWidgetMus::StackBelow(gfx::NativeView native_view) { |
1010 // NOTIMPLEMENTED(); | 1014 NOTIMPLEMENTED(); |
1011 } | 1015 } |
1012 | 1016 |
1013 void NativeWidgetMus::SetShape(std::unique_ptr<SkRegion> shape) { | 1017 void NativeWidgetMus::SetShape(std::unique_ptr<SkRegion> shape) { |
1014 // NOTIMPLEMENTED(); | 1018 NOTIMPLEMENTED(); |
1015 } | 1019 } |
1016 | 1020 |
1017 void NativeWidgetMus::Close() { | 1021 void NativeWidgetMus::Close() { |
1018 Hide(); | 1022 Hide(); |
1019 if (!close_widget_factory_.HasWeakPtrs()) { | 1023 if (!close_widget_factory_.HasWeakPtrs()) { |
1020 base::ThreadTaskRunnerHandle::Get()->PostTask( | 1024 base::ThreadTaskRunnerHandle::Get()->PostTask( |
1021 FROM_HERE, base::Bind(&NativeWidgetMus::CloseNow, | 1025 FROM_HERE, base::Bind(&NativeWidgetMus::CloseNow, |
1022 close_widget_factory_.GetWeakPtr())); | 1026 close_widget_factory_.GetWeakPtr())); |
1023 } | 1027 } |
1024 } | 1028 } |
(...skipping 12 matching lines...) Expand all Loading... | |
1037 if (!(window_ && window_tree_host_)) | 1041 if (!(window_ && window_tree_host_)) |
1038 return; | 1042 return; |
1039 | 1043 |
1040 // NOTE: |window_tree_host_| and |window_| visibility is updated in | 1044 // NOTE: |window_tree_host_| and |window_| visibility is updated in |
1041 // OnMusWindowVisibilityChanged(). | 1045 // OnMusWindowVisibilityChanged(). |
1042 window_->SetVisible(false); | 1046 window_->SetVisible(false); |
1043 } | 1047 } |
1044 | 1048 |
1045 void NativeWidgetMus::ShowMaximizedWithBounds( | 1049 void NativeWidgetMus::ShowMaximizedWithBounds( |
1046 const gfx::Rect& restored_bounds) { | 1050 const gfx::Rect& restored_bounds) { |
1047 // NOTIMPLEMENTED(); | 1051 NOTIMPLEMENTED(); |
1048 } | 1052 } |
1049 | 1053 |
1050 void NativeWidgetMus::ShowWithWindowState(ui::WindowShowState state) { | 1054 void NativeWidgetMus::ShowWithWindowState(ui::WindowShowState state) { |
1051 if (!(window_ && window_tree_host_)) | 1055 if (!(window_ && window_tree_host_)) |
1052 return; | 1056 return; |
1053 | 1057 |
1054 // NOTE: |window_tree_host_| and |window_| visibility is updated in | 1058 // NOTE: |window_tree_host_| and |window_| visibility is updated in |
1055 // OnMusWindowVisibilityChanged(). | 1059 // OnMusWindowVisibilityChanged(). |
1056 window_->SetVisible(true); | 1060 window_->SetVisible(true); |
1057 if (native_widget_delegate_->CanActivate()) { | 1061 if (native_widget_delegate_->CanActivate()) { |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1157 bool NativeWidgetMus::IsFullscreen() const { | 1161 bool NativeWidgetMus::IsFullscreen() const { |
1158 return GetShowState(window_) == ui::mojom::ShowState::FULLSCREEN; | 1162 return GetShowState(window_) == ui::mojom::ShowState::FULLSCREEN; |
1159 } | 1163 } |
1160 | 1164 |
1161 void NativeWidgetMus::SetOpacity(float opacity) { | 1165 void NativeWidgetMus::SetOpacity(float opacity) { |
1162 if (window_) | 1166 if (window_) |
1163 window_->SetOpacity(opacity); | 1167 window_->SetOpacity(opacity); |
1164 } | 1168 } |
1165 | 1169 |
1166 void NativeWidgetMus::FlashFrame(bool flash_frame) { | 1170 void NativeWidgetMus::FlashFrame(bool flash_frame) { |
1167 // NOTIMPLEMENTED(); | 1171 NOTIMPLEMENTED(); |
1168 } | 1172 } |
1169 | 1173 |
1170 void NativeWidgetMus::RunShellDrag(View* view, | 1174 void NativeWidgetMus::RunShellDrag(View* view, |
1171 const ui::OSExchangeData& data, | 1175 const ui::OSExchangeData& data, |
1172 const gfx::Point& location, | 1176 const gfx::Point& location, |
1173 int drag_operations, | 1177 int drag_operations, |
1174 ui::DragDropTypes::DragEventSource source) { | 1178 ui::DragDropTypes::DragEventSource source) { |
1175 if (window_) | 1179 if (window_) |
1176 views::RunShellDrag(content_, data, location, drag_operations, source); | 1180 views::RunShellDrag(content_, data, location, drag_operations, source); |
1177 } | 1181 } |
(...skipping 12 matching lines...) Expand all Loading... | |
1190 // we support right now. If native_type() == kCursorCustom, than we should | 1194 // we support right now. If native_type() == kCursorCustom, than we should |
1191 // also send an image, but as the cursor code is currently written, the image | 1195 // also send an image, but as the cursor code is currently written, the image |
1192 // is in a platform native format that's already uploaded to the window | 1196 // is in a platform native format that's already uploaded to the window |
1193 // server. | 1197 // server. |
1194 ui::mojom::Cursor new_cursor = ui::mojom::Cursor(cursor.native_type()); | 1198 ui::mojom::Cursor new_cursor = ui::mojom::Cursor(cursor.native_type()); |
1195 if (last_cursor_ != new_cursor) | 1199 if (last_cursor_ != new_cursor) |
1196 window_->SetPredefinedCursor(new_cursor); | 1200 window_->SetPredefinedCursor(new_cursor); |
1197 } | 1201 } |
1198 | 1202 |
1199 bool NativeWidgetMus::IsMouseEventsEnabled() const { | 1203 bool NativeWidgetMus::IsMouseEventsEnabled() const { |
1200 // NOTIMPLEMENTED(); | 1204 NOTIMPLEMENTED(); |
1201 return true; | 1205 return true; |
1202 } | 1206 } |
1203 | 1207 |
1204 void NativeWidgetMus::ClearNativeFocus() { | 1208 void NativeWidgetMus::ClearNativeFocus() { |
1205 if (!IsActive()) | 1209 if (!IsActive()) |
1206 return; | 1210 return; |
1207 ui::Window* focused = | 1211 ui::Window* focused = |
1208 window_ ? window_->window_tree()->GetFocusedWindow() : nullptr; | 1212 window_ ? window_->window_tree()->GetFocusedWindow() : nullptr; |
1209 if (focused && window_->Contains(focused) && focused != window_) | 1213 if (focused && window_->Contains(focused) && focused != window_) |
1210 window_->SetFocus(); | 1214 window_->SetFocus(); |
1211 // Move aura-focus back to |content_|, so that the Widget still receives | 1215 // Move aura-focus back to |content_|, so that the Widget still receives |
1212 // events correctly. | 1216 // events correctly. |
1213 aura::client::GetFocusClient(content_)->ResetFocusWithinActiveWindow( | 1217 aura::client::GetFocusClient(content_)->ResetFocusWithinActiveWindow( |
1214 content_); | 1218 content_); |
1215 } | 1219 } |
1216 | 1220 |
1217 gfx::Rect NativeWidgetMus::GetWorkAreaBoundsInScreen() const { | 1221 gfx::Rect NativeWidgetMus::GetWorkAreaBoundsInScreen() const { |
1218 // NOTIMPLEMENTED(); | 1222 NOTIMPLEMENTED(); |
1219 return gfx::Rect(); | 1223 return gfx::Rect(); |
1220 } | 1224 } |
1221 | 1225 |
1222 Widget::MoveLoopResult NativeWidgetMus::RunMoveLoop( | 1226 Widget::MoveLoopResult NativeWidgetMus::RunMoveLoop( |
1223 const gfx::Vector2d& drag_offset, | 1227 const gfx::Vector2d& drag_offset, |
1224 Widget::MoveLoopSource source, | 1228 Widget::MoveLoopSource source, |
1225 Widget::MoveLoopEscapeBehavior escape_behavior) { | 1229 Widget::MoveLoopEscapeBehavior escape_behavior) { |
1226 ReleaseCapture(); | 1230 ReleaseCapture(); |
1227 | 1231 |
1228 base::MessageLoopForUI* loop = base::MessageLoopForUI::current(); | 1232 base::MessageLoopForUI* loop = base::MessageLoopForUI::current(); |
(...skipping 15 matching lines...) Expand all Loading... | |
1244 run_loop.Run(); | 1248 run_loop.Run(); |
1245 | 1249 |
1246 return success ? Widget::MOVE_LOOP_SUCCESSFUL : Widget::MOVE_LOOP_CANCELED; | 1250 return success ? Widget::MOVE_LOOP_SUCCESSFUL : Widget::MOVE_LOOP_CANCELED; |
1247 } | 1251 } |
1248 | 1252 |
1249 void NativeWidgetMus::EndMoveLoop() { | 1253 void NativeWidgetMus::EndMoveLoop() { |
1250 window_->CancelWindowMove(); | 1254 window_->CancelWindowMove(); |
1251 } | 1255 } |
1252 | 1256 |
1253 void NativeWidgetMus::SetVisibilityChangedAnimationsEnabled(bool value) { | 1257 void NativeWidgetMus::SetVisibilityChangedAnimationsEnabled(bool value) { |
1254 // NOTIMPLEMENTED(); | 1258 NOTIMPLEMENTED(); |
1255 } | 1259 } |
1256 | 1260 |
1257 void NativeWidgetMus::SetVisibilityAnimationDuration( | 1261 void NativeWidgetMus::SetVisibilityAnimationDuration( |
1258 const base::TimeDelta& duration) { | 1262 const base::TimeDelta& duration) { |
1259 // NOTIMPLEMENTED(); | 1263 NOTIMPLEMENTED(); |
1260 } | 1264 } |
1261 | 1265 |
1262 void NativeWidgetMus::SetVisibilityAnimationTransition( | 1266 void NativeWidgetMus::SetVisibilityAnimationTransition( |
1263 Widget::VisibilityTransition transition) { | 1267 Widget::VisibilityTransition transition) { |
1264 // NOTIMPLEMENTED(); | 1268 NOTIMPLEMENTED(); |
1265 } | 1269 } |
1266 | 1270 |
1267 ui::NativeTheme* NativeWidgetMus::GetNativeTheme() const { | 1271 ui::NativeTheme* NativeWidgetMus::GetNativeTheme() const { |
1268 return ui::NativeThemeAura::instance(); | 1272 return ui::NativeThemeAura::instance(); |
1269 } | 1273 } |
1270 | 1274 |
1271 void NativeWidgetMus::OnRootViewLayout() { | 1275 void NativeWidgetMus::OnRootViewLayout() { |
1272 // NOTIMPLEMENTED(); | 1276 NOTIMPLEMENTED(); |
1273 } | 1277 } |
1274 | 1278 |
1275 bool NativeWidgetMus::IsTranslucentWindowOpacitySupported() const { | 1279 bool NativeWidgetMus::IsTranslucentWindowOpacitySupported() const { |
1276 // NOTIMPLEMENTED(); | 1280 NOTIMPLEMENTED(); |
1277 return true; | 1281 return true; |
1278 } | 1282 } |
1279 | 1283 |
1280 void NativeWidgetMus::OnSizeConstraintsChanged() { | 1284 void NativeWidgetMus::OnSizeConstraintsChanged() { |
1281 if (!window_ || is_parallel_widget_in_window_manager()) | 1285 if (!window_ || is_parallel_widget_in_window_manager()) |
1282 return; | 1286 return; |
1283 | 1287 |
1284 window_->SetSharedProperty<int32_t>( | 1288 window_->SetSharedProperty<int32_t>( |
1285 ui::mojom::WindowManager::kResizeBehavior_Property, | 1289 ui::mojom::WindowManager::kResizeBehavior_Property, |
1286 ResizeBehaviorFromDelegate(GetWidget()->widget_delegate())); | 1290 ResizeBehaviorFromDelegate(GetWidget()->widget_delegate())); |
1287 } | 1291 } |
1288 | 1292 |
1289 void NativeWidgetMus::RepostNativeEvent(gfx::NativeEvent native_event) { | 1293 void NativeWidgetMus::RepostNativeEvent(gfx::NativeEvent native_event) { |
1290 // NOTIMPLEMENTED(); | 1294 NOTIMPLEMENTED(); |
1291 } | 1295 } |
1292 | 1296 |
1293 std::string NativeWidgetMus::GetName() const { | 1297 std::string NativeWidgetMus::GetName() const { |
1294 return window_->GetName(); | 1298 return window_->GetName(); |
1295 } | 1299 } |
1296 | 1300 |
1297 //////////////////////////////////////////////////////////////////////////////// | 1301 //////////////////////////////////////////////////////////////////////////////// |
1298 // NativeWidgetMus, aura::WindowDelegate implementation: | 1302 // NativeWidgetMus, aura::WindowDelegate implementation: |
1299 | 1303 |
1300 gfx::Size NativeWidgetMus::GetMinimumSize() const { | 1304 gfx::Size NativeWidgetMus::GetMinimumSize() const { |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1467 std::unique_ptr<ui::Event> event = ui::Event::Clone(event_in); | 1471 std::unique_ptr<ui::Event> event = ui::Event::Clone(event_in); |
1468 // TODO(markdittmer): This should be this->OnEvent(event.get()), but that | 1472 // TODO(markdittmer): This should be this->OnEvent(event.get()), but that |
1469 // can't happen until IME is refactored out of in WindowTreeHostMus. | 1473 // can't happen until IME is refactored out of in WindowTreeHostMus. |
1470 platform_window_delegate()->DispatchEvent(event.get()); | 1474 platform_window_delegate()->DispatchEvent(event.get()); |
1471 // NOTE: |this| may be deleted. | 1475 // NOTE: |this| may be deleted. |
1472 | 1476 |
1473 ack_handler.set_handled(event->handled()); | 1477 ack_handler.set_handled(event->handled()); |
1474 // |ack_handler| acks the event on destruction if necessary. | 1478 // |ack_handler| acks the event on destruction if necessary. |
1475 } | 1479 } |
1476 | 1480 |
1477 void NativeWidgetMus::OnMusWindowVisibilityChanging(ui::Window* window) { | 1481 void NativeWidgetMus::OnMusWindowVisibilityChanging(ui::Window* window, |
1478 if (window == window_) { | 1482 bool visible) { |
1479 native_widget_delegate_->OnNativeWidgetVisibilityChanging( | 1483 if (window == window_) |
1480 !window->visible()); | 1484 native_widget_delegate_->OnNativeWidgetVisibilityChanging(visible); |
1481 } | |
1482 } | 1485 } |
1483 | 1486 |
1484 void NativeWidgetMus::OnMusWindowVisibilityChanged(ui::Window* window) { | 1487 void NativeWidgetMus::OnMusWindowVisibilityChanged(ui::Window* window, |
1488 bool visible) { | |
1485 if (window != window_) | 1489 if (window != window_) |
1486 return; | 1490 return; |
1487 | 1491 |
1488 if (window->visible()) { | 1492 if (visible) { |
1489 window_tree_host_->Show(); | 1493 window_tree_host_->Show(); |
1490 GetNativeWindow()->Show(); | 1494 GetNativeWindow()->Show(); |
1491 } else { | 1495 } else { |
1492 window_tree_host_->Hide(); | 1496 window_tree_host_->Hide(); |
1493 GetNativeWindow()->Hide(); | 1497 GetNativeWindow()->Hide(); |
1494 } | 1498 } |
1495 native_widget_delegate_->OnNativeWidgetVisibilityChanged(window->visible()); | 1499 native_widget_delegate_->OnNativeWidgetVisibilityChanged(visible); |
1496 } | 1500 } |
1497 | 1501 |
1498 void NativeWidgetMus::UpdateHitTestMask() { | 1502 void NativeWidgetMus::UpdateHitTestMask() { |
1499 // The window manager (or other underlay window provider) is not allowed to | 1503 // The window manager (or other underlay window provider) is not allowed to |
1500 // set a hit test mask, as that could interfere with a client app mask. | 1504 // set a hit test mask, as that could interfere with a client app mask. |
1501 if (is_parallel_widget_in_window_manager()) | 1505 if (is_parallel_widget_in_window_manager()) |
1502 return; | 1506 return; |
1503 | 1507 |
1504 if (!native_widget_delegate_->HasHitTestMask()) { | 1508 if (!native_widget_delegate_->HasHitTestMask()) { |
1505 window_->ClearHitTestMask(); | 1509 window_->ClearHitTestMask(); |
1506 return; | 1510 return; |
1507 } | 1511 } |
1508 | 1512 |
1509 gfx::Path mask_path; | 1513 gfx::Path mask_path; |
1510 native_widget_delegate_->GetHitTestMask(&mask_path); | 1514 native_widget_delegate_->GetHitTestMask(&mask_path); |
1511 // TODO(jamescook): Use the full path for the mask. | 1515 // TODO(jamescook): Use the full path for the mask. |
1512 gfx::Rect mask_rect = | 1516 gfx::Rect mask_rect = |
1513 gfx::ToEnclosingRect(gfx::SkRectToRectF(mask_path.getBounds())); | 1517 gfx::ToEnclosingRect(gfx::SkRectToRectF(mask_path.getBounds())); |
1514 window_->SetHitTestMask(mask_rect); | 1518 window_->SetHitTestMask(mask_rect); |
1515 } | 1519 } |
1516 | 1520 |
1517 } // namespace views | 1521 } // namespace views |
OLD | NEW |