views: Implement focus and blur event.
This commit is contained in:
parent
ee5312fff9
commit
4e4227aef8
3 changed files with 25 additions and 1 deletions
|
@ -62,6 +62,8 @@ NativeWindowViews::NativeWindowViews(content::WebContents* web_contents,
|
||||||
options.Get(switches::kResizable, &resizable_);
|
options.Get(switches::kResizable, &resizable_);
|
||||||
options.Get(switches::kTitle, &title_);
|
options.Get(switches::kTitle, &title_);
|
||||||
|
|
||||||
|
window_->AddObserver(this);
|
||||||
|
|
||||||
views::Widget::InitParams params;
|
views::Widget::InitParams params;
|
||||||
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
||||||
params.delegate = this;
|
params.delegate = this;
|
||||||
|
@ -95,6 +97,7 @@ NativeWindowViews::NativeWindowViews(content::WebContents* web_contents,
|
||||||
}
|
}
|
||||||
|
|
||||||
NativeWindowViews::~NativeWindowViews() {
|
NativeWindowViews::~NativeWindowViews() {
|
||||||
|
window_->RemoveObserver(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NativeWindowViews::Close() {
|
void NativeWindowViews::Close() {
|
||||||
|
@ -291,6 +294,17 @@ void NativeWindowViews::UpdateDraggableRegions(
|
||||||
draggable_region_.reset(draggable_region);
|
draggable_region_.reset(draggable_region);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NativeWindowViews::OnWidgetActivationChanged(
|
||||||
|
views::Widget* widget, bool active) {
|
||||||
|
if (widget != window_.get())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (active)
|
||||||
|
NotifyWindowFocus();
|
||||||
|
else
|
||||||
|
NotifyWindowBlur();
|
||||||
|
}
|
||||||
|
|
||||||
void NativeWindowViews::DeleteDelegate() {
|
void NativeWindowViews::DeleteDelegate() {
|
||||||
NotifyWindowClosed();
|
NotifyWindowClosed();
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
#include "atom/browser/ui/accelerator_util.h"
|
#include "atom/browser/ui/accelerator_util.h"
|
||||||
#include "ui/views/widget/widget_delegate.h"
|
#include "ui/views/widget/widget_delegate.h"
|
||||||
|
#include "ui/views/widget/widget_observer.h"
|
||||||
|
|
||||||
namespace views {
|
namespace views {
|
||||||
class UnhandledKeyboardEventHandler;
|
class UnhandledKeyboardEventHandler;
|
||||||
|
@ -21,7 +22,8 @@ class Widget;
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
class NativeWindowViews : public NativeWindow,
|
class NativeWindowViews : public NativeWindow,
|
||||||
public views::WidgetDelegateView {
|
public views::WidgetDelegateView,
|
||||||
|
public views::WidgetObserver {
|
||||||
public:
|
public:
|
||||||
explicit NativeWindowViews(content::WebContents* web_contents,
|
explicit NativeWindowViews(content::WebContents* web_contents,
|
||||||
const mate::Dictionary& options);
|
const mate::Dictionary& options);
|
||||||
|
@ -74,6 +76,10 @@ class NativeWindowViews : public NativeWindow,
|
||||||
virtual void UpdateDraggableRegions(
|
virtual void UpdateDraggableRegions(
|
||||||
const std::vector<DraggableRegion>& regions) OVERRIDE;
|
const std::vector<DraggableRegion>& regions) OVERRIDE;
|
||||||
|
|
||||||
|
// views::WidgetObserver:
|
||||||
|
virtual void OnWidgetActivationChanged(
|
||||||
|
views::Widget* widget, bool active) OVERRIDE;
|
||||||
|
|
||||||
// views::WidgetDelegate:
|
// views::WidgetDelegate:
|
||||||
virtual void DeleteDelegate() OVERRIDE;
|
virtual void DeleteDelegate() OVERRIDE;
|
||||||
virtual views::View* GetInitiallyFocusedView() OVERRIDE;
|
virtual views::View* GetInitiallyFocusedView() OVERRIDE;
|
||||||
|
|
|
@ -199,7 +199,11 @@ views::View* MessageDialog::GetInitiallyFocusedView() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ui::ModalType MessageDialog::GetModalType() const {
|
ui::ModalType MessageDialog::GetModalType() const {
|
||||||
|
#if defined(USE_X11)
|
||||||
|
return ui::MODAL_TYPE_NONE;
|
||||||
|
#else
|
||||||
return ui::MODAL_TYPE_WINDOW;
|
return ui::MODAL_TYPE_WINDOW;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
gfx::Size MessageDialog::GetPreferredSize() {
|
gfx::Size MessageDialog::GetPreferredSize() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue