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

Unified Diff: ui/base/x/active_window_watcher_x.h

Issue 8595003: Have panels respond to changes in work area on Linux. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move observers into their own header files. Created 9 years, 1 month 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
Index: ui/base/x/active_window_watcher_x.h
diff --git a/ui/base/x/active_window_watcher_x.h b/ui/base/x/active_window_watcher_x.h
index 4fa6b65898ddd21a540db0376f2bb3532672431a..1d6d3c604883c10607dd46f5798875c8d394ca1a 100644
--- a/ui/base/x/active_window_watcher_x.h
+++ b/ui/base/x/active_window_watcher_x.h
@@ -6,34 +6,34 @@
#define UI_BASE_X_ACTIVE_WINDOW_WATCHER_X_H_
#pragma once
-#include <gdk/gdk.h>
-
#include "base/basictypes.h"
#include "base/memory/singleton.h"
#include "base/observer_list.h"
-#include "ui/base/gtk/gtk_signal.h"
#include "ui/base/ui_export.h"
+#include "ui/base/x/x11_util.h"
namespace ui {
+class ActiveWindowWatcherXObserver;
+
+namespace internal {
+
sky 2011/11/21 23:50:32 nit: generally we don't use newlines for namespace
prasadt 2011/11/22 00:46:34 Done.
+class RootWindowPropertyWatcherX;
+
+}
+
// This is a helper class that is used to keep track of which window the X
-// window manager thinks is active. Add an Observer to listener for changes to
+// window manager thinks is active. Add an Observer to listen for changes to
// the active window.
class UI_EXPORT ActiveWindowWatcherX {
public:
- class Observer {
- public:
- // |active_window| will be NULL if the active window isn't one of Chrome's.
- virtual void ActiveWindowChanged(GdkWindow* active_window) = 0;
-
- protected:
- virtual ~Observer() {}
- };
-
static ActiveWindowWatcherX* GetInstance();
+ static void AddObserver(ActiveWindowWatcherXObserver* observer);
+ static void RemoveObserver(ActiveWindowWatcherXObserver* observer);
- static void AddObserver(Observer* observer);
- static void RemoveObserver(Observer* observer);
+ // Gets the atom for the default display for the property this class is
+ // watching for.
+ static Atom GetPropertyAtom();
sky 2011/11/21 23:50:32 Can this be private too?
prasadt 2011/11/22 00:46:34 Done.
// Checks if the WM supports the active window property. Note that the return
// value can change, especially during system startup.
@@ -41,21 +41,16 @@ class UI_EXPORT ActiveWindowWatcherX {
private:
friend struct DefaultSingletonTraits<ActiveWindowWatcherX>;
+ friend class ui::internal::RootWindowPropertyWatcherX;
+
+ // Notify observers that the active window has changed.
+ static void Notify();
ActiveWindowWatcherX();
sky 2011/11/21 23:50:32 constructor/destructor before other methods.
prasadt 2011/11/22 00:46:34 Done.
~ActiveWindowWatcherX();
-
- void Init();
-
- // Sends a notification out through the NotificationService that the active
- // window has changed.
void NotifyActiveWindowChanged();
- // Callback for PropertyChange XEvents.
- CHROMEG_CALLBACK_1(ActiveWindowWatcherX, GdkFilterReturn,
- OnWindowXEvent, GdkXEvent*, GdkEvent*);
-
- ObserverList<Observer> observers_;
+ ObserverList<ActiveWindowWatcherXObserver> observers_;
DISALLOW_COPY_AND_ASSIGN(ActiveWindowWatcherX);
};

Powered by Google App Engine
This is Rietveld 408576698