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

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

Issue 23702017: Ensure that the AURA focused window is set correctly when the window is activated. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 3 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_root_window_host_x11.h" 5 #include "ui/views/widget/desktop_aura/desktop_root_window_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 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 open_windows().end(), 153 open_windows().end(),
154 windows.begin(), 154 windows.begin(),
155 GetContentWindowForXID); 155 GetContentWindowForXID);
156 return windows; 156 return windows;
157 } 157 }
158 158
159 void DesktopRootWindowHostX11::HandleNativeWidgetActivationChanged( 159 void DesktopRootWindowHostX11::HandleNativeWidgetActivationChanged(
160 bool active) { 160 bool active) {
161 if (active) 161 if (active)
162 root_window_host_delegate_->OnHostActivated(); 162 root_window_host_delegate_->OnHostActivated();
163 native_widget_delegate_->OnNativeWidgetActivationChanged(active); 163
164 // If we're not active we need to deactivate the corresponding aura::Window. 164 desktop_native_widget_aura_->HandleActivationChanged(active);
165 // This way if a child widget is active it gets correctly deactivated (child
166 // widgets don't get native desktop activation changes, only aura activation
167 // changes).
168 if (!active) {
169 aura::client::ActivationClient* activation_client =
170 aura::client::GetActivationClient(root_window_);
171 if (activation_client) {
172 aura::Window* active_window = activation_client->GetActiveWindow();
173 if (active_window)
174 activation_client->DeactivateWindow(active_window);
175 }
176 }
177 165
178 native_widget_delegate_->AsWidget()->GetRootView()->SchedulePaint(); 166 native_widget_delegate_->AsWidget()->GetRootView()->SchedulePaint();
179 } 167 }
180 168
181 void DesktopRootWindowHostX11::AddObserver( 169 void DesktopRootWindowHostX11::AddObserver(
182 views::DesktopRootWindowHostObserverX11* observer) { 170 views::DesktopRootWindowHostObserverX11* observer) {
183 observer_list_.AddObserver(observer); 171 observer_list_.AddObserver(observer);
184 } 172 }
185 173
186 void DesktopRootWindowHostX11::RemoveObserver( 174 void DesktopRootWindowHostX11::RemoveObserver(
(...skipping 1161 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 if (linux_ui) { 1336 if (linux_ui) {
1349 ui::NativeTheme* native_theme = linux_ui->GetNativeTheme(); 1337 ui::NativeTheme* native_theme = linux_ui->GetNativeTheme();
1350 if (native_theme) 1338 if (native_theme)
1351 return native_theme; 1339 return native_theme;
1352 } 1340 }
1353 1341
1354 return ui::NativeTheme::instance(); 1342 return ui::NativeTheme::instance();
1355 } 1343 }
1356 1344
1357 } // namespace views 1345 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/widget/desktop_aura/desktop_root_window_host_win.cc ('k') | ui/views/widget/widget_interactive_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698