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

Unified Diff: ui/views/widget/x11_desktop_handler.cc

Issue 11369220: Move the desktop aura classes into a desktop subdir to make the gyp simpler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 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
« no previous file with comments | « ui/views/widget/x11_desktop_handler.h ('k') | ui/views/widget/x11_desktop_window_move_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/widget/x11_desktop_handler.cc
===================================================================
--- ui/views/widget/x11_desktop_handler.cc (revision 167419)
+++ ui/views/widget/x11_desktop_handler.cc (working copy)
@@ -1,126 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/views/widget/x11_desktop_handler.h"
-
-#include "base/message_loop.h"
-#include "ui/aura/env.h"
-#include "ui/aura/focus_manager.h"
-#include "ui/aura/root_window.h"
-#include "ui/base/x/x11_util.h"
-#include "ui/views/widget/desktop_aura/desktop_activation_client.h"
-
-#if !defined(OS_CHROMEOS)
-#include "ui/views/ime/input_method.h"
-#include "ui/views/widget/desktop_root_window_host_linux.h"
-#endif
-
-namespace {
-
-const char* kAtomsToCache[] = {
- "_NET_ACTIVE_WINDOW",
- NULL
-};
-
-// Our global instance. Deleted when our Env() is deleted.
-views::X11DesktopHandler* g_handler = NULL;
-
-} // namespace
-
-namespace views {
-
-// static
-X11DesktopHandler* X11DesktopHandler::get() {
- if (!g_handler)
- g_handler = new X11DesktopHandler;
-
- return g_handler;
-}
-
-X11DesktopHandler::X11DesktopHandler()
- : xdisplay_(base::MessagePumpAuraX11::GetDefaultXDisplay()),
- x_root_window_(DefaultRootWindow(xdisplay_)),
- current_window_(None),
- atom_cache_(xdisplay_, kAtomsToCache) {
- base::MessagePumpAuraX11::Current()->AddDispatcherForRootWindow(this);
- aura::Env::GetInstance()->AddObserver(this);
-
- XWindowAttributes attr;
- XGetWindowAttributes(xdisplay_, x_root_window_, &attr);
- XSelectInput(xdisplay_, x_root_window_,
- attr.your_event_mask | PropertyChangeMask |
- StructureNotifyMask | SubstructureNotifyMask);
-}
-
-X11DesktopHandler::~X11DesktopHandler() {
- aura::Env::GetInstance()->RemoveObserver(this);
- base::MessagePumpAuraX11::Current()->RemoveDispatcherForRootWindow(this);
-}
-
-void X11DesktopHandler::ActivateWindow(::Window window) {
- XEvent xclient;
- memset(&xclient, 0, sizeof(xclient));
- xclient.type = ClientMessage;
- xclient.xclient.window = window;
- xclient.xclient.message_type = atom_cache_.GetAtom("_NET_ACTIVE_WINDOW");
- xclient.xclient.format = 32;
- xclient.xclient.data.l[0] = 1; // Specified we are an app.
- xclient.xclient.data.l[1] = CurrentTime;
- xclient.xclient.data.l[2] = None;
- xclient.xclient.data.l[3] = 0;
- xclient.xclient.data.l[4] = 0;
-
- XSendEvent(xdisplay_, x_root_window_, False,
- SubstructureRedirectMask | SubstructureNotifyMask,
- &xclient);
-}
-
-bool X11DesktopHandler::IsActiveWindow(::Window window) const {
- return window == current_window_;
-}
-
-bool X11DesktopHandler::Dispatch(const base::NativeEvent& event) {
- // Check for a change to the active window.
- switch (event->type) {
- case PropertyNotify: {
- ::Atom active_window = atom_cache_.GetAtom("_NET_ACTIVE_WINDOW");
-
- if (event->xproperty.window == x_root_window_ &&
- event->xproperty.atom == active_window) {
- int window;
- if (ui::GetIntProperty(x_root_window_, "_NET_ACTIVE_WINDOW", &window) &&
- window) {
- OnActiveWindowChanged(static_cast< ::Window>(window));
- }
- }
- break;
- }
- }
-
- return true;
-}
-
-void X11DesktopHandler::OnWindowInitialized(aura::Window* window) {
-}
-
-void X11DesktopHandler::OnWillDestroyEnv() {
- g_handler = NULL;
- delete this;
-}
-
-void X11DesktopHandler::OnActiveWindowChanged(::Window xid) {
- DesktopRootWindowHostLinux* old_host =
- views::DesktopRootWindowHostLinux::GetHostForXID(current_window_);
- if (old_host)
- old_host->HandleNativeWidgetActivationChanged(false);
-
- DesktopRootWindowHostLinux* new_host =
- views::DesktopRootWindowHostLinux::GetHostForXID(xid);
- if (new_host)
- new_host->HandleNativeWidgetActivationChanged(true);
-
- current_window_ = xid;
-}
-
-} // namespace views
« no previous file with comments | « ui/views/widget/x11_desktop_handler.h ('k') | ui/views/widget/x11_desktop_window_move_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698