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

Side by Side Diff: ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc

Issue 184903003: Window ownership -> WindowTreeHost (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 9 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/views/widget/desktop_aura/desktop_window_tree_host_x11.h" 5 #include "ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h"
6 6
7 #include <X11/extensions/shape.h> 7 #include <X11/extensions/shape.h>
8 #include <X11/extensions/XInput2.h> 8 #include <X11/extensions/XInput2.h>
9 #include <X11/Xatom.h> 9 #include <X11/Xatom.h>
10 #include <X11/Xregion.h> 10 #include <X11/Xregion.h>
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 dispatcher_->window()->ClearProperty(kHostForRootWindow); 147 dispatcher_->window()->ClearProperty(kHostForRootWindow);
148 aura::client::SetWindowMoveClient(dispatcher_->window(), NULL); 148 aura::client::SetWindowMoveClient(dispatcher_->window(), NULL);
149 desktop_native_widget_aura_->OnDesktopWindowTreeHostDestroyed(dispatcher_); 149 desktop_native_widget_aura_->OnDesktopWindowTreeHostDestroyed(dispatcher_);
150 if (custom_window_shape_) 150 if (custom_window_shape_)
151 XDestroyRegion(custom_window_shape_); 151 XDestroyRegion(custom_window_shape_);
152 DestroyDispatcher(); 152 DestroyDispatcher();
153 } 153 }
154 154
155 // static 155 // static
156 aura::Window* DesktopWindowTreeHostX11::GetContentWindowForXID(XID xid) { 156 aura::Window* DesktopWindowTreeHostX11::GetContentWindowForXID(XID xid) {
157 aura::WindowEventDispatcher* dispatcher = 157 aura::WindowTreeHost* host =
158 aura::WindowEventDispatcher::GetForAcceleratedWidget(xid); 158 aura::WindowTreeHost::GetForAcceleratedWidget(xid);
159 return dispatcher ? 159 return host ? host->window()->GetProperty(kViewsWindowForRootWindow) : NULL;
160 dispatcher->window()->GetProperty(kViewsWindowForRootWindow) : NULL;
161 } 160 }
162 161
163 // static 162 // static
164 DesktopWindowTreeHostX11* DesktopWindowTreeHostX11::GetHostForXID(XID xid) { 163 DesktopWindowTreeHostX11* DesktopWindowTreeHostX11::GetHostForXID(XID xid) {
165 aura::WindowEventDispatcher* dispatcher = 164 aura::WindowTreeHost* host =
166 aura::WindowEventDispatcher::GetForAcceleratedWidget(xid); 165 aura::WindowTreeHost::GetForAcceleratedWidget(xid);
167 return dispatcher ? 166 return host ? host->window()->GetProperty(kHostForRootWindow) : NULL;
168 dispatcher->window()->GetProperty(kHostForRootWindow) : NULL;
169 } 167 }
170 168
171 // static 169 // static
172 std::vector<aura::Window*> DesktopWindowTreeHostX11::GetAllOpenWindows() { 170 std::vector<aura::Window*> DesktopWindowTreeHostX11::GetAllOpenWindows() {
173 std::vector<aura::Window*> windows(open_windows().size()); 171 std::vector<aura::Window*> windows(open_windows().size());
174 std::transform(open_windows().begin(), 172 std::transform(open_windows().begin(),
175 open_windows().end(), 173 open_windows().end(),
176 windows.begin(), 174 windows.begin(),
177 GetContentWindowForXID); 175 GetContentWindowForXID);
178 return windows; 176 return windows;
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 } 830 }
833 831
834 void DesktopWindowTreeHostX11::ReleaseCapture() { 832 void DesktopWindowTreeHostX11::ReleaseCapture() {
835 if (g_current_capture == this) 833 if (g_current_capture == this)
836 g_current_capture->OnCaptureReleased(); 834 g_current_capture->OnCaptureReleased();
837 } 835 }
838 836
839 bool DesktopWindowTreeHostX11::QueryMouseLocation( 837 bool DesktopWindowTreeHostX11::QueryMouseLocation(
840 gfx::Point* location_return) { 838 gfx::Point* location_return) {
841 aura::client::CursorClient* cursor_client = 839 aura::client::CursorClient* cursor_client =
842 aura::client::GetCursorClient(GetDispatcher()->window()); 840 aura::client::GetCursorClient(window());
843 if (cursor_client && !cursor_client->IsMouseEventsEnabled()) { 841 if (cursor_client && !cursor_client->IsMouseEventsEnabled()) {
844 *location_return = gfx::Point(0, 0); 842 *location_return = gfx::Point(0, 0);
845 return false; 843 return false;
846 } 844 }
847 845
848 ::Window root_return, child_return; 846 ::Window root_return, child_return;
849 int root_x_return, root_y_return, win_x_return, win_y_return; 847 int root_x_return, root_y_return, win_x_return, win_y_return;
850 unsigned int mask_return; 848 unsigned int mask_return;
851 XQueryPointer(xdisplay_, 849 XQueryPointer(xdisplay_,
852 xwindow_, 850 xwindow_,
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 if (params.remove_standard_frame) { 1069 if (params.remove_standard_frame) {
1072 // Setting _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED tells gnome-shell to not force 1070 // Setting _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED tells gnome-shell to not force
1073 // fullscreen on the window when it matches the desktop size. 1071 // fullscreen on the window when it matches the desktop size.
1074 ui::SetHideTitlebarWhenMaximizedProperty(xwindow_, 1072 ui::SetHideTitlebarWhenMaximizedProperty(xwindow_,
1075 ui::HIDE_TITLEBAR_WHEN_MAXIMIZED); 1073 ui::HIDE_TITLEBAR_WHEN_MAXIMIZED);
1076 } 1074 }
1077 1075
1078 // If we have a parent, record the parent/child relationship. We use this 1076 // If we have a parent, record the parent/child relationship. We use this
1079 // data during destruction to make sure that when we try to close a parent 1077 // data during destruction to make sure that when we try to close a parent
1080 // window, we also destroy all child windows. 1078 // window, we also destroy all child windows.
1081 if (params.parent && params.parent->GetDispatcher()) { 1079 if (params.parent && params.parent->GetHost()) {
1082 XID parent_xid = 1080 XID parent_xid =
1083 params.parent->GetDispatcher()->host()->GetAcceleratedWidget(); 1081 params.parent->GetHost()->GetAcceleratedWidget();
1084 window_parent_ = GetHostForXID(parent_xid); 1082 window_parent_ = GetHostForXID(parent_xid);
1085 DCHECK(window_parent_); 1083 DCHECK(window_parent_);
1086 window_parent_->window_children_.insert(this); 1084 window_parent_->window_children_.insert(this);
1087 } 1085 }
1088 1086
1089 // If we have a delegate which is providing a default window icon, use that 1087 // If we have a delegate which is providing a default window icon, use that
1090 // icon. 1088 // icon.
1091 gfx::ImageSkia* window_icon = ViewsDelegate::views_delegate ? 1089 gfx::ImageSkia* window_icon = ViewsDelegate::views_delegate ?
1092 ViewsDelegate::views_delegate->GetDefaultWindowIcon() : NULL; 1090 ViewsDelegate::views_delegate->GetDefaultWindowIcon() : NULL;
1093 if (window_icon) { 1091 if (window_icon) {
(...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
1630 if (linux_ui) { 1628 if (linux_ui) {
1631 ui::NativeTheme* native_theme = linux_ui->GetNativeTheme(); 1629 ui::NativeTheme* native_theme = linux_ui->GetNativeTheme();
1632 if (native_theme) 1630 if (native_theme)
1633 return native_theme; 1631 return native_theme;
1634 } 1632 }
1635 1633
1636 return ui::NativeTheme::instance(); 1634 return ui::NativeTheme::instance();
1637 } 1635 }
1638 1636
1639 } // namespace views 1637 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698