| Index: ui/aura/root_window_host_linux.cc
|
| ===================================================================
|
| --- ui/aura/root_window_host_linux.cc (revision 113260)
|
| +++ ui/aura/root_window_host_linux.cc (working copy)
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "ui/aura/desktop_host.h"
|
| +#include "ui/aura/root_window_host.h"
|
|
|
| #include <X11/cursorfont.h>
|
| #include <X11/Xlib.h>
|
| @@ -15,8 +15,8 @@
|
| #include "base/message_loop.h"
|
| #include "base/message_pump_x.h"
|
| #include "ui/aura/cursor.h"
|
| -#include "ui/aura/desktop.h"
|
| #include "ui/aura/event.h"
|
| +#include "ui/aura/root_window.h"
|
| #include "ui/base/keycodes/keyboard_codes.h"
|
| #include "ui/base/touch/touch_factory.h"
|
| #include "ui/base/x/x11_util.h"
|
| @@ -271,18 +271,18 @@
|
| }
|
| }
|
|
|
| -class DesktopHostLinux : public DesktopHost,
|
| - public MessageLoop::DestructionObserver {
|
| +class RootWindowHostLinux : public RootWindowHost,
|
| + public MessageLoop::DestructionObserver {
|
| public:
|
| - explicit DesktopHostLinux(const gfx::Rect& bounds);
|
| - virtual ~DesktopHostLinux();
|
| + explicit RootWindowHostLinux(const gfx::Rect& bounds);
|
| + virtual ~RootWindowHostLinux();
|
|
|
| private:
|
| // MessageLoop::Dispatcher Override.
|
| virtual DispatchStatus Dispatch(XEvent* xev) OVERRIDE;
|
|
|
| - // DesktopHost Overrides.
|
| - virtual void SetDesktop(Desktop* desktop) OVERRIDE;
|
| + // RootWindowHost Overrides.
|
| + virtual void SetRootWindow(RootWindow* root_window) OVERRIDE;
|
| virtual gfx::AcceleratedWidget GetAcceleratedWidget() OVERRIDE;
|
| virtual void Show() OVERRIDE;
|
| virtual void ToggleFullScreen() OVERRIDE;
|
| @@ -301,14 +301,14 @@
|
| // detect that they're there.
|
| bool IsWindowManagerPresent();
|
|
|
| - Desktop* desktop_;
|
| + RootWindow* root_window_;
|
|
|
| - // The display and the native X window hosting the desktop.
|
| + // The display and the native X window hosting the root window.
|
| Display* xdisplay_;
|
| ::Window xwindow_;
|
|
|
| // The native root window.
|
| - ::Window root_window_;
|
| + ::Window x_root_window_;
|
|
|
| // Current Aura cursor.
|
| gfx::NativeCursor current_cursor_;
|
| @@ -316,17 +316,17 @@
|
| // The bounds of |xwindow_|.
|
| gfx::Rect bounds_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(DesktopHostLinux);
|
| + DISALLOW_COPY_AND_ASSIGN(RootWindowHostLinux);
|
| };
|
|
|
| -DesktopHostLinux::DesktopHostLinux(const gfx::Rect& bounds)
|
| - : desktop_(NULL),
|
| +RootWindowHostLinux::RootWindowHostLinux(const gfx::Rect& bounds)
|
| + : root_window_(NULL),
|
| xdisplay_(base::MessagePumpX::GetDefaultXDisplay()),
|
| xwindow_(0),
|
| - root_window_(DefaultRootWindow(xdisplay_)),
|
| + x_root_window_(DefaultRootWindow(xdisplay_)),
|
| current_cursor_(aura::kCursorNull),
|
| bounds_(bounds) {
|
| - xwindow_ = XCreateSimpleWindow(xdisplay_, root_window_,
|
| + xwindow_ = XCreateSimpleWindow(xdisplay_, x_root_window_,
|
| bounds.x(), bounds.y(),
|
| bounds.width(), bounds.height(),
|
| 0, 0, 0);
|
| @@ -338,7 +338,7 @@
|
| StructureNotifyMask | PropertyChangeMask |
|
| PointerMotionMask;
|
| XSelectInput(xdisplay_, xwindow_, event_mask);
|
| - XSelectInput(xdisplay_, root_window_, StructureNotifyMask);
|
| + XSelectInput(xdisplay_, x_root_window_, StructureNotifyMask);
|
| XFlush(xdisplay_);
|
|
|
| // TODO(sad): Re-enable once crbug.com/106516 is fixed.
|
| @@ -351,7 +351,7 @@
|
| MessageLoopForUI::current()->AddDestructionObserver(this);
|
| }
|
|
|
| -DesktopHostLinux::~DesktopHostLinux() {
|
| +RootWindowHostLinux::~RootWindowHostLinux() {
|
| XDestroyWindow(xdisplay_, xwindow_);
|
|
|
| // Clears XCursorCache.
|
| @@ -361,7 +361,7 @@
|
| base::MessagePumpX::SetDefaultDispatcher(NULL);
|
| }
|
|
|
| -base::MessagePumpDispatcher::DispatchStatus DesktopHostLinux::Dispatch(
|
| +base::MessagePumpDispatcher::DispatchStatus RootWindowHostLinux::Dispatch(
|
| XEvent* xev) {
|
| bool handled = false;
|
|
|
| @@ -369,32 +369,32 @@
|
|
|
| switch (xev->type) {
|
| case Expose:
|
| - desktop_->ScheduleDraw();
|
| + root_window_->ScheduleDraw();
|
| handled = true;
|
| break;
|
| case KeyPress: {
|
| KeyEvent keydown_event(xev, false);
|
| - handled = desktop_->DispatchKeyEvent(&keydown_event);
|
| + handled = root_window_->DispatchKeyEvent(&keydown_event);
|
| if (ShouldSendCharEventForKeyboardCode(keydown_event.key_code())) {
|
| KeyEvent char_event(xev, true);
|
| - handled |= desktop_->DispatchKeyEvent(&char_event);
|
| + handled |= root_window_->DispatchKeyEvent(&char_event);
|
| }
|
| break;
|
| }
|
| case KeyRelease: {
|
| KeyEvent keyup_event(xev, false);
|
| - handled = desktop_->DispatchKeyEvent(&keyup_event);
|
| + handled = root_window_->DispatchKeyEvent(&keyup_event);
|
| break;
|
| }
|
| case ButtonPress:
|
| case ButtonRelease: {
|
| MouseEvent mouseev(xev);
|
| - handled = desktop_->DispatchMouseEvent(&mouseev);
|
| + handled = root_window_->DispatchMouseEvent(&mouseev);
|
| break;
|
| }
|
| case ConfigureNotify: {
|
| - if (xev->xconfigure.window == root_window_) {
|
| - desktop_->OnNativeScreenResized(
|
| + if (xev->xconfigure.window == x_root_window_) {
|
| + root_window_->OnNativeScreenResized(
|
| gfx::Size(xev->xconfigure.width, xev->xconfigure.height));
|
| handled = true;
|
| break;
|
| @@ -405,13 +405,13 @@
|
|
|
| // It's possible that the X window may be resized by some other means than
|
| // from within aura (e.g. the X window manager can change the size). Make
|
| - // sure the desktop size is maintained properly.
|
| + // sure the root window size is maintained properly.
|
| gfx::Rect bounds(xev->xconfigure.x, xev->xconfigure.y,
|
| xev->xconfigure.width, xev->xconfigure.height);
|
| bool size_changed = bounds_.size() != bounds.size();
|
| bounds_ = bounds;
|
| if (size_changed)
|
| - desktop_->OnHostResized(bounds.size());
|
| + root_window_->OnHostResized(bounds.size());
|
| handled = true;
|
| break;
|
| }
|
| @@ -436,7 +436,7 @@
|
| case ui::ET_TOUCH_RELEASED:
|
| case ui::ET_TOUCH_MOVED: {
|
| TouchEvent touchev(xev);
|
| - handled = desktop_->DispatchTouchEvent(&touchev);
|
| + handled = root_window_->DispatchTouchEvent(&touchev);
|
| break;
|
| }
|
| case ui::ET_MOUSE_PRESSED:
|
| @@ -447,7 +447,7 @@
|
| case ui::ET_MOUSE_ENTERED:
|
| case ui::ET_MOUSE_EXITED: {
|
| MouseEvent mouseev(xev);
|
| - handled = desktop_->DispatchMouseEvent(&mouseev);
|
| + handled = root_window_->DispatchMouseEvent(&mouseev);
|
| break;
|
| }
|
| case ui::ET_UNKNOWN:
|
| @@ -495,34 +495,34 @@
|
| }
|
|
|
| MouseEvent mouseev(xev);
|
| - handled = desktop_->DispatchMouseEvent(&mouseev);
|
| + handled = root_window_->DispatchMouseEvent(&mouseev);
|
| break;
|
| }
|
| }
|
| return handled ? EVENT_PROCESSED : EVENT_IGNORED;
|
| }
|
|
|
| -void DesktopHostLinux::SetDesktop(Desktop* desktop) {
|
| - desktop_ = desktop;
|
| +void RootWindowHostLinux::SetRootWindow(RootWindow* root_window) {
|
| + root_window_ = root_window;
|
| }
|
|
|
| -gfx::AcceleratedWidget DesktopHostLinux::GetAcceleratedWidget() {
|
| +gfx::AcceleratedWidget RootWindowHostLinux::GetAcceleratedWidget() {
|
| return xwindow_;
|
| }
|
|
|
| -void DesktopHostLinux::Show() {
|
| +void RootWindowHostLinux::Show() {
|
| XMapWindow(xdisplay_, xwindow_);
|
| }
|
|
|
| -void DesktopHostLinux::ToggleFullScreen() {
|
| +void RootWindowHostLinux::ToggleFullScreen() {
|
| NOTIMPLEMENTED();
|
| }
|
|
|
| -gfx::Size DesktopHostLinux::GetSize() const {
|
| +gfx::Size RootWindowHostLinux::GetSize() const {
|
| return bounds_.size();
|
| }
|
|
|
| -void DesktopHostLinux::SetSize(const gfx::Size& size) {
|
| +void RootWindowHostLinux::SetSize(const gfx::Size& size) {
|
| if (size == bounds_.size())
|
| return;
|
|
|
| @@ -534,14 +534,14 @@
|
| // (possibly synthetic) ConfigureNotify about the actual size and correct
|
| // |bounds_| later.
|
| bounds_.set_size(size);
|
| - desktop_->OnHostResized(size);
|
| + root_window_->OnHostResized(size);
|
| }
|
|
|
| -gfx::Point DesktopHostLinux::GetLocationOnNativeScreen() const {
|
| +gfx::Point RootWindowHostLinux::GetLocationOnNativeScreen() const {
|
| return bounds_.origin();
|
| }
|
|
|
| -void DesktopHostLinux::SetCursor(gfx::NativeCursor cursor) {
|
| +void RootWindowHostLinux::SetCursor(gfx::NativeCursor cursor) {
|
| if (current_cursor_ == cursor)
|
| return;
|
| current_cursor_ = cursor;
|
| @@ -553,7 +553,7 @@
|
| XDefineCursor(xdisplay_, xwindow_, xcursor);
|
| }
|
|
|
| -gfx::Point DesktopHostLinux::QueryMouseLocation() {
|
| +gfx::Point RootWindowHostLinux::QueryMouseLocation() {
|
| ::Window root_return, child_return;
|
| int root_x_return, root_y_return, win_x_return, win_y_return;
|
| unsigned int mask_return;
|
| @@ -568,7 +568,8 @@
|
| max(0, min(bounds_.height(), win_y_return)));
|
| }
|
|
|
| -void DesktopHostLinux::PostNativeEvent(const base::NativeEvent& native_event) {
|
| +void RootWindowHostLinux::PostNativeEvent(
|
| + const base::NativeEvent& native_event) {
|
| DCHECK(xwindow_);
|
| DCHECK(xdisplay_);
|
| XEvent xevent = *native_event;
|
| @@ -586,11 +587,11 @@
|
| // The fields used below are in the same place for all of events
|
| // above. Using xmotion from XEvent's unions to avoid repeating
|
| // the code.
|
| - xevent.xmotion.root = root_window_;
|
| + xevent.xmotion.root = x_root_window_;
|
| xevent.xmotion.time = CurrentTime;
|
|
|
| gfx::Point point(xevent.xmotion.x, xevent.xmotion.y);
|
| - desktop_->ConvertPointToNativeScreen(&point);
|
| + root_window_->ConvertPointToNativeScreen(&point);
|
| xevent.xmotion.x_root = point.x();
|
| xevent.xmotion.y_root = point.y();
|
| }
|
| @@ -600,11 +601,11 @@
|
| XSendEvent(xdisplay_, xwindow_, False, 0, &xevent);
|
| }
|
|
|
| -void DesktopHostLinux::WillDestroyCurrentMessageLoop() {
|
| - aura::Desktop::DeleteInstance();
|
| +void RootWindowHostLinux::WillDestroyCurrentMessageLoop() {
|
| + aura::RootWindow::DeleteInstance();
|
| }
|
|
|
| -bool DesktopHostLinux::IsWindowManagerPresent() {
|
| +bool RootWindowHostLinux::IsWindowManagerPresent() {
|
| // Per ICCCM 2.8, "Manager Selections", window managers should take ownership
|
| // of WM_Sn selections (where n is a screen number).
|
| ::Atom wm_s0_atom = XInternAtom(xdisplay_, "WM_S0", False);
|
| @@ -614,12 +615,12 @@
|
| } // namespace
|
|
|
| // static
|
| -DesktopHost* DesktopHost::Create(const gfx::Rect& bounds) {
|
| - return new DesktopHostLinux(bounds);
|
| +RootWindowHost* RootWindowHost::Create(const gfx::Rect& bounds) {
|
| + return new RootWindowHostLinux(bounds);
|
| }
|
|
|
| // static
|
| -gfx::Size DesktopHost::GetNativeScreenSize() {
|
| +gfx::Size RootWindowHost::GetNativeScreenSize() {
|
| ::Display* xdisplay = base::MessagePumpX::GetDefaultXDisplay();
|
| return gfx::Size(DisplayWidth(xdisplay, 0), DisplayHeight(xdisplay, 0));
|
| }
|
|
|