OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/aura/root_window_host_x11.h" | 5 #include "ui/aura/root_window_host_x11.h" |
6 | 6 |
7 #include <strings.h> | 7 #include <strings.h> |
8 #include <X11/cursorfont.h> | 8 #include <X11/cursorfont.h> |
9 #include <X11/extensions/Xfixes.h> | 9 #include <X11/extensions/Xfixes.h> |
10 #include <X11/extensions/XInput2.h> | 10 #include <X11/extensions/XInput2.h> |
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 // Likewise, the X server needs to know this window's pid so it knows which | 407 // Likewise, the X server needs to know this window's pid so it knows which |
408 // program to kill if the window hangs. | 408 // program to kill if the window hangs. |
409 pid_t pid = getpid(); | 409 pid_t pid = getpid(); |
410 XChangeProperty(xdisplay_, | 410 XChangeProperty(xdisplay_, |
411 xwindow_, | 411 xwindow_, |
412 atom_cache_.GetAtom("_NET_WM_PID"), | 412 atom_cache_.GetAtom("_NET_WM_PID"), |
413 XA_CARDINAL, | 413 XA_CARDINAL, |
414 32, | 414 32, |
415 PropModeReplace, | 415 PropModeReplace, |
416 reinterpret_cast<unsigned char*>(&pid), 1); | 416 reinterpret_cast<unsigned char*>(&pid), 1); |
417 | |
418 // crbug.com/120229 - set the window title so gtalk can find the primary root | |
419 // window to broadcast. | |
420 // TODO(jhorwich) Remove this once Chrome supports window-based broadcasting. | |
421 static int root_window_number = 0; | |
422 std::string name = base::StringPrintf("aura_root_%d", root_window_number++); | |
423 XStoreName(xdisplay_, xwindow_, name.c_str()); | |
424 XRRSelectInput(xdisplay_, x_root_window_, | |
425 RRScreenChangeNotifyMask | RROutputChangeNotifyMask); | |
426 Env::GetInstance()->AddObserver(this); | 417 Env::GetInstance()->AddObserver(this); |
427 } | 418 } |
428 | 419 |
429 RootWindowHostX11::~RootWindowHostX11() { | 420 RootWindowHostX11::~RootWindowHostX11() { |
430 Env::GetInstance()->RemoveObserver(this); | 421 Env::GetInstance()->RemoveObserver(this); |
431 base::MessagePumpAuraX11::Current()->RemoveDispatcherForRootWindow(this); | 422 base::MessagePumpAuraX11::Current()->RemoveDispatcherForRootWindow(this); |
432 base::MessagePumpAuraX11::Current()->RemoveDispatcherForWindow(xwindow_); | 423 base::MessagePumpAuraX11::Current()->RemoveDispatcherForWindow(xwindow_); |
433 | 424 |
434 UnConfineCursor(); | 425 UnConfineCursor(); |
435 | 426 |
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1105 } | 1096 } |
1106 | 1097 |
1107 namespace test { | 1098 namespace test { |
1108 | 1099 |
1109 void SetUseOverrideRedirectWindowByDefault(bool override_redirect) { | 1100 void SetUseOverrideRedirectWindowByDefault(bool override_redirect) { |
1110 default_override_redirect = override_redirect; | 1101 default_override_redirect = override_redirect; |
1111 } | 1102 } |
1112 | 1103 |
1113 } // namespace test | 1104 } // namespace test |
1114 } // namespace aura | 1105 } // namespace aura |
OLD | NEW |