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

Unified Diff: views/desktop/desktop_window_manager.h

Issue 7740039: Don't activate POPUP window (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 9 years, 4 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | views/desktop/desktop_window_manager.cc » ('j') | views/desktop/desktop_window_manager.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: views/desktop/desktop_window_manager.h
diff --git a/views/desktop/desktop_window_manager.h b/views/desktop/desktop_window_manager.h
index 146bb2aeafabec4ac2fc7083bb73fb372d0de838..9f39b6dde247d24aa820a4b3281e997c7a787f88 100644
--- a/views/desktop/desktop_window_manager.h
+++ b/views/desktop/desktop_window_manager.h
@@ -7,6 +7,7 @@
#include "base/compiler_specific.h"
#include "base/scoped_ptr.h"
+#include "views/widget/widget.h"
#include "views/widget/window_manager.h"
namespace gfx {
@@ -14,7 +15,6 @@ class Point;
}
namespace views {
-class Widget;
namespace desktop {
class WindowController;
@@ -22,8 +22,9 @@ class WindowController;
// A tentative window manager for views destktop until we have *right*
// implementation based on aura/layer API. This is minimum
// implmenetation and complicated actio like moving transformed window
-// doesn't work. TODO(oshima): move active widget to WindowManager.
-class DesktopWindowManager : public views::WindowManager {
+// doesn't work.
+class DesktopWindowManager : public views::WindowManager,
+ public Widget::Observer {
public:
DesktopWindowManager(Widget* desktop);
virtual ~DesktopWindowManager();
@@ -37,16 +38,28 @@ class DesktopWindowManager : public views::WindowManager {
virtual bool SetMouseCapture(views::Widget* widget) OVERRIDE;
virtual bool ReleaseMouseCapture(views::Widget* widget) OVERRIDE;
virtual bool HasMouseCapture(const views::Widget* widget) const OVERRIDE;
+ virtual bool HandleKeyEvent(views::Widget* widget,
+ const views::KeyEvent& event) OVERRIDE;
virtual bool HandleMouseEvent(views::Widget* widget,
const views::MouseEvent& event) OVERRIDE;
+ virtual void Register(Widget* widget) OVERRIDE;
+
private:
+ // Overridden from Widget::Observer.
+ virtual void OnWidgetClosing(Widget* widget) OVERRIDE;
+ virtual void OnWidgetVisibilityChanged(Widget* widget, bool visible) OVERRIDE;
+ virtual void OnWidgetActivationChanged(Widget* widget, bool active) OVERRIDE;
+
void SetMouseCapture();
void ReleaseMouseCapture();
bool HasMouseCapture() const;
+ void Activate(Widget* widget);
+
views::Widget* desktop_;
views::Widget* mouse_capture_;
+ views::Widget* active_widget_;
scoped_ptr<WindowController> window_controller_;
DISALLOW_COPY_AND_ASSIGN(DesktopWindowManager);
« no previous file with comments | « no previous file | views/desktop/desktop_window_manager.cc » ('j') | views/desktop/desktop_window_manager.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698