| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/views/widget/desktop_aura/x11_topmost_window_finder.h" | 5 #include "ui/views/widget/desktop_aura/x11_topmost_window_finder.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <X11/extensions/shape.h> | 8 #include <X11/extensions/shape.h> |
| 9 #include <X11/Xlib.h> | 9 #include <X11/Xlib.h> |
| 10 #include <X11/Xregion.h> | 10 #include <X11/Xregion.h> |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 atom_cache_.reset(new ui::X11AtomCache(gfx::GetXDisplay(), kAtomsToCache)); | 48 atom_cache_.reset(new ui::X11AtomCache(gfx::GetXDisplay(), kAtomsToCache)); |
| 49 } | 49 } |
| 50 | 50 |
| 51 ~MinimizeWaiter() override {} | 51 ~MinimizeWaiter() override {} |
| 52 | 52 |
| 53 private: | 53 private: |
| 54 // X11PropertyChangeWaiter: | 54 // X11PropertyChangeWaiter: |
| 55 bool ShouldKeepOnWaiting(const ui::PlatformEvent& event) override { | 55 bool ShouldKeepOnWaiting(const ui::PlatformEvent& event) override { |
| 56 std::vector<Atom> wm_states; | 56 std::vector<Atom> wm_states; |
| 57 if (ui::GetAtomArrayProperty(xwindow(), "_NET_WM_STATE", &wm_states)) { | 57 if (ui::GetAtomArrayProperty(xwindow(), "_NET_WM_STATE", &wm_states)) { |
| 58 std::vector<Atom>::iterator it = std::find( | 58 auto it = std::find(wm_states.cbegin(), wm_states.cend(), |
| 59 wm_states.begin(), | 59 atom_cache_->GetAtom("_NET_WM_STATE_HIDDEN")); |
| 60 wm_states.end(), | 60 return it == wm_states.cend(); |
| 61 atom_cache_->GetAtom("_NET_WM_STATE_HIDDEN")); | |
| 62 return it == wm_states.end(); | |
| 63 } | 61 } |
| 64 return true; | 62 return true; |
| 65 } | 63 } |
| 66 | 64 |
| 67 scoped_ptr<ui::X11AtomCache> atom_cache_; | 65 scoped_ptr<ui::X11AtomCache> atom_cache_; |
| 68 | 66 |
| 69 DISALLOW_COPY_AND_ASSIGN(MinimizeWaiter); | 67 DISALLOW_COPY_AND_ASSIGN(MinimizeWaiter); |
| 70 }; | 68 }; |
| 71 | 69 |
| 72 // Waits till |_NET_CLIENT_LIST_STACKING| is updated to include | 70 // Waits till |_NET_CLIENT_LIST_STACKING| is updated to include |
| (...skipping 17 matching lines...) Expand all Loading... |
| 90 | 88 |
| 91 X11PropertyChangeWaiter::Wait(); | 89 X11PropertyChangeWaiter::Wait(); |
| 92 } | 90 } |
| 93 | 91 |
| 94 private: | 92 private: |
| 95 // X11PropertyChangeWaiter: | 93 // X11PropertyChangeWaiter: |
| 96 bool ShouldKeepOnWaiting(const ui::PlatformEvent& event) override { | 94 bool ShouldKeepOnWaiting(const ui::PlatformEvent& event) override { |
| 97 std::vector<XID> stack; | 95 std::vector<XID> stack; |
| 98 ui::GetXWindowStack(ui::GetX11RootWindow(), &stack); | 96 ui::GetXWindowStack(ui::GetX11RootWindow(), &stack); |
| 99 for (size_t i = 0; i < expected_windows_.size(); ++i) { | 97 for (size_t i = 0; i < expected_windows_.size(); ++i) { |
| 100 std::vector<XID>::iterator it = std::find( | 98 auto it = std::find(stack.cbegin(), stack.cend(), expected_windows_[i]); |
| 101 stack.begin(), stack.end(), expected_windows_[i]); | 99 if (it == stack.cend()) |
| 102 if (it == stack.end()) | |
| 103 return true; | 100 return true; |
| 104 } | 101 } |
| 105 return false; | 102 return false; |
| 106 } | 103 } |
| 107 | 104 |
| 108 std::vector<XID> expected_windows_; | 105 std::vector<XID> expected_windows_; |
| 109 | 106 |
| 110 DISALLOW_COPY_AND_ASSIGN(StackingClientListWaiter); | 107 DISALLOW_COPY_AND_ASSIGN(StackingClientListWaiter); |
| 111 }; | 108 }; |
| 112 | 109 |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 | 432 |
| 436 EXPECT_EQ(xid, FindTopmostXWindowAt(110, 110)); | 433 EXPECT_EQ(xid, FindTopmostXWindowAt(110, 110)); |
| 437 EXPECT_EQ(menu_xid, FindTopmostXWindowAt(150, 120)); | 434 EXPECT_EQ(menu_xid, FindTopmostXWindowAt(150, 120)); |
| 438 EXPECT_EQ(menu_xid, FindTopmostXWindowAt(210, 120)); | 435 EXPECT_EQ(menu_xid, FindTopmostXWindowAt(210, 120)); |
| 439 | 436 |
| 440 XDestroyWindow(xdisplay(), xid); | 437 XDestroyWindow(xdisplay(), xid); |
| 441 XDestroyWindow(xdisplay(), menu_xid); | 438 XDestroyWindow(xdisplay(), menu_xid); |
| 442 } | 439 } |
| 443 | 440 |
| 444 } // namespace views | 441 } // namespace views |
| OLD | NEW |