Index: chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc |
diff --git a/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc b/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc |
index 5c2385a4bb923a683400e87492823081ea78e7b3..e4a24f963b0314b123dc376799b9d021659c170c 100644 |
--- a/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc |
+++ b/chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc |
@@ -92,8 +92,9 @@ class ArcAppWindowLauncherController::AppWindow : public ui::BaseWindow { |
public: |
AppWindow(int task_id, |
const std::string app_id, |
+ views::Widget* widget, |
khmel
2016/09/14 23:42:19
Setting widget is legacy code for one of the first
|
ArcAppWindowLauncherController* owner) |
- : task_id_(task_id), app_id_(app_id), owner_(owner) {} |
+ : task_id_(task_id), app_id_(app_id), widget_(widget), owner_(owner) {} |
~AppWindow() {} |
void SetController(ArcAppWindowLauncherItemController* controller) { |
@@ -118,16 +119,13 @@ class ArcAppWindowLauncherController::AppWindow : public ui::BaseWindow { |
views::Widget* widget() const { return widget_; } |
- void set_widget(views::Widget* widget) { widget_ = widget; } |
- |
ArcAppWindowLauncherItemController* controller() { return controller_; } |
const std::string app_id() { return app_id_; } |
// ui::BaseWindow: |
bool IsActive() const override { |
- return widget_ && widget_->IsActive() && |
- owner_->active_task_id_ == task_id_; |
+ return widget_->IsActive() && owner_->active_task_id_ == task_id_; |
} |
bool IsMaximized() const override { |
@@ -146,7 +144,7 @@ class ArcAppWindowLauncherController::AppWindow : public ui::BaseWindow { |
} |
gfx::NativeWindow GetNativeWindow() const override { |
- return widget_ ? widget_->GetNativeWindow() : nullptr; |
+ return widget_->GetNativeWindow(); |
} |
gfx::Rect GetRestoredBounds() const override { |
@@ -164,9 +162,7 @@ class ArcAppWindowLauncherController::AppWindow : public ui::BaseWindow { |
return gfx::Rect(); |
} |
- void Show() override { |
- // TODO(khmel): support window minimizing. |
- } |
+ void Show() override { widget_->Show(); } |
khmel
2016/09/14 23:42:19
This is needed to correctly restore from clicking
|
void ShowInactive() override { NOTREACHED(); } |
@@ -174,16 +170,13 @@ class ArcAppWindowLauncherController::AppWindow : public ui::BaseWindow { |
void Close() override { arc::CloseTask(task_id_); } |
- void Activate() override { arc::SetTaskActive(task_id_); } |
+ void Activate() override { widget_->Activate(); } |
khmel
2016/09/14 23:42:19
As discussed let use wayland protocol whenever pos
|
void Deactivate() override { NOTREACHED(); } |
void Maximize() override { NOTREACHED(); } |
- void Minimize() override { |
- if (widget_) |
- widget_->Minimize(); |
- } |
+ void Minimize() override { widget_->Minimize(); } |
void Restore() override { NOTREACHED(); } |
@@ -217,10 +210,10 @@ class ArcAppWindowLauncherController::AppWindow : public ui::BaseWindow { |
std::string app_id_; |
FullScreenMode fullscreen_mode_ = FullScreenMode::NOT_DEFINED; |
// Unowned pointers |
+ views::Widget* widget_; |
Mr4D (OOO till 08-26)
2016/09/15 14:03:19
could this be then const?
khmel
2016/09/15 15:43:27
Indeed
|
ArcAppWindowLauncherController* owner_; |
ArcAppWindowLauncherItemController* controller_ = nullptr; |
// Unowned pointer, represents host Arc window. |
- views::Widget* widget_ = nullptr; |
arc::mojom::OrientationLock requested_orientation_lock_ = |
arc::mojom::OrientationLock::NONE; |
@@ -295,7 +288,7 @@ void ArcAppWindowLauncherController::OnWindowInitialized(aura::Window* window) { |
window->AddObserver(this); |
} |
-void ArcAppWindowLauncherController::OnWindowVisibilityChanging( |
+void ArcAppWindowLauncherController::OnWindowVisibilityChanged( |
khmel
2016/09/14 23:42:19
Quite tricky case. We used OnWindowVisibilityChang
Mr4D (OOO till 08-26)
2016/09/15 14:03:19
You might want to add a comment here towards that.
khmel
2016/09/15 15:43:27
Done.
|
aura::Window* window, |
bool visible) { |
// The application id property should be set at this time. |
@@ -369,8 +362,10 @@ void ArcAppWindowLauncherController::AttachControllerToWindowIfNeeded( |
const std::string& app_id = it->second; |
- std::unique_ptr<AppWindow> app_window(new AppWindow(task_id, app_id, this)); |
- app_window->set_widget(views::Widget::GetWidgetForNativeWindow(window)); |
+ views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window); |
+ DCHECK(widget); |
+ std::unique_ptr<AppWindow> app_window( |
+ new AppWindow(task_id, app_id, widget, this)); |
RegisterApp(app_window.get()); |
DCHECK(app_window->controller()); |
ash::SetShelfIDForWindow(app_window->shelf_id(), window); |