Index: views/widget/native_widget_aura.cc |
diff --git a/views/widget/native_widget_aura.cc b/views/widget/native_widget_aura.cc |
index a9c88e7adb53c7a9ed4b46ac55e922f7adda0ab3..d67e0f4ae917f0400ef29761c5409315d1f94071 100644 |
--- a/views/widget/native_widget_aura.cc |
+++ b/views/widget/native_widget_aura.cc |
@@ -5,6 +5,7 @@ |
#include "views/widget/native_widget_aura.h" |
#include "base/bind.h" |
+#include "ui/aura/aura_constants.h" |
#include "ui/aura/desktop.h" |
#include "ui/aura/event.h" |
#include "ui/aura/window.h" |
@@ -73,7 +74,8 @@ void NativeWidgetAura::InitNativeWidget(const Widget::InitParams& params) { |
window_->set_user_data(this); |
Widget::InitParams::Type window_type = |
params.child ? Widget::InitParams::TYPE_CONTROL : params.type; |
- SetNativeWindowProperty(kWindowTypeKey, reinterpret_cast<void*>(window_type)); |
+ window_->SetIntProperty(kWindowTypeKey, window_type); |
+ window_->SetIntProperty(aura::kShowStateKey, ui::SHOW_STATE_NORMAL); |
window_->SetType(window_type == Widget::InitParams::TYPE_CONTROL ? |
aura::kWindowType_Control : aura::kWindowType_None); |
window_->Init(params.create_texture_for_layer ? |
@@ -224,7 +226,8 @@ void NativeWidgetAura::CenterWindow(const gfx::Size& size) { |
void NativeWidgetAura::GetWindowPlacement( |
gfx::Rect* bounds, |
ui::WindowShowState* maximized) const { |
- *maximized = window_->show_state(); |
+ *maximized = static_cast<ui::WindowShowState>( |
+ window_->GetIntProperty(aura::kShowStateKey)); |
} |
void NativeWidgetAura::SetWindowTitle(const string16& title) { |
@@ -320,20 +323,14 @@ void NativeWidgetAura::Hide() { |
void NativeWidgetAura::ShowMaximizedWithBounds( |
const gfx::Rect& restored_bounds) { |
window_->SetBounds(restored_bounds); |
- window_->Maximize(); |
+ window_->SetIntProperty(aura::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
window_->Show(); |
} |
void NativeWidgetAura::ShowWithWindowState(ui::WindowShowState state) { |
- switch(state) { |
- case ui::SHOW_STATE_MAXIMIZED: |
- window_->Maximize(); |
- break; |
- case ui::SHOW_STATE_FULLSCREEN: |
- window_->Fullscreen(); |
- break; |
- default: |
- break; |
+ if (state == ui::SHOW_STATE_MAXIMIZED || |
+ state == ui::SHOW_STATE_FULLSCREEN) { |
+ window_->SetIntProperty(aura::kShowStateKey, state); |
} |
window_->Show(); |
} |
@@ -359,7 +356,7 @@ void NativeWidgetAura::SetAlwaysOnTop(bool on_top) { |
} |
void NativeWidgetAura::Maximize() { |
- window_->Maximize(); |
+ window_->SetIntProperty(aura::kShowStateKey, ui::SHOW_STATE_MAXIMIZED); |
} |
void NativeWidgetAura::Minimize() { |
@@ -367,23 +364,28 @@ void NativeWidgetAura::Minimize() { |
} |
bool NativeWidgetAura::IsMaximized() const { |
- return window_->show_state() == ui::SHOW_STATE_MAXIMIZED; |
+ return window_->GetIntProperty(aura::kShowStateKey) == |
+ ui::SHOW_STATE_MAXIMIZED; |
} |
bool NativeWidgetAura::IsMinimized() const { |
- return window_->show_state() == ui::SHOW_STATE_MINIMIZED; |
+ return window_->GetIntProperty(aura::kShowStateKey) == |
+ ui::SHOW_STATE_MINIMIZED; |
} |
void NativeWidgetAura::Restore() { |
- window_->Restore(); |
+ window_->SetIntProperty(aura::kShowStateKey, ui::SHOW_STATE_NORMAL); |
} |
void NativeWidgetAura::SetFullscreen(bool fullscreen) { |
- fullscreen ? window_->Fullscreen() : window_->Restore(); |
+ window_->SetIntProperty( |
+ aura::kShowStateKey, |
+ fullscreen ? ui::SHOW_STATE_FULLSCREEN : ui::SHOW_STATE_NORMAL); |
} |
bool NativeWidgetAura::IsFullscreen() const { |
- return window_->show_state() == ui::SHOW_STATE_FULLSCREEN; |
+ return window_->GetIntProperty(aura::kShowStateKey) == |
+ ui::SHOW_STATE_FULLSCREEN; |
} |
void NativeWidgetAura::SetOpacity(unsigned char opacity) { |
@@ -551,6 +553,7 @@ void NativeWidgetAura::OnWindowDestroying() { |
void NativeWidgetAura::OnWindowDestroyed() { |
window_ = NULL; |
+ tooltip_manager_.reset(); |
delegate_->OnNativeWidgetDestroyed(); |
if (ownership_ == Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET) |
delete this; |