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

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

Issue 290573003: Make tooltips toplevel windows on Linux (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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_native_widget_aura.h" 5 #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "ui/aura/client/aura_constants.h" 9 #include "ui/aura/client/aura_constants.h"
10 #include "ui/aura/client/cursor_client.h" 10 #include "ui/aura/client/cursor_client.h"
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 { 292 {
293 aura::Window* capture_window = capture_client_->GetCaptureWindow(); 293 aura::Window* capture_window = capture_client_->GetCaptureWindow();
294 if (capture_window && host_->window()->Contains(capture_window)) 294 if (capture_window && host_->window()->Contains(capture_window))
295 capture_window->ReleaseCapture(); 295 capture_window->ReleaseCapture();
296 } 296 }
297 297
298 // DesktopWindowTreeHost owns the ActivationController which ShadowController 298 // DesktopWindowTreeHost owns the ActivationController which ShadowController
299 // references. Make sure we destroy ShadowController early on. 299 // references. Make sure we destroy ShadowController early on.
300 shadow_controller_.reset(); 300 shadow_controller_.reset();
301 tooltip_manager_.reset(); 301 tooltip_manager_.reset();
302 host_->window()->RemovePreTargetHandler(tooltip_controller_.get()); 302 if (tooltip_controller_.get()) {
303 aura::client::SetTooltipClient(host_->window(), NULL); 303 host_->window()->RemovePreTargetHandler(tooltip_controller_.get());
304 tooltip_controller_.reset(); 304 aura::client::SetTooltipClient(host_->window(), NULL);
305 tooltip_controller_.reset();
306 }
305 307
306 root_window_event_filter_->RemoveHandler(input_method_event_filter_.get()); 308 root_window_event_filter_->RemoveHandler(input_method_event_filter_.get());
307 309
308 window_tree_client_.reset(); // Uses host_->dispatcher() at destruction. 310 window_tree_client_.reset(); // Uses host_->dispatcher() at destruction.
309 311
310 capture_client_.reset(); // Uses host_->dispatcher() at destruction. 312 capture_client_.reset(); // Uses host_->dispatcher() at destruction.
311 313
312 // FocusController uses |content_window_|. Destroy it now so that we don't 314 // FocusController uses |content_window_|. Destroy it now so that we don't
313 // have to worry about the possibility of FocusController attempting to use 315 // have to worry about the possibility of FocusController attempting to use
314 // |content_window_| after it's been destroyed but before all child windows 316 // |content_window_| after it's been destroyed but before all child windows
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 491
490 OnHostResized(host()); 492 OnHostResized(host());
491 493
492 host_->AddObserver(this); 494 host_->AddObserver(this);
493 495
494 window_tree_client_.reset( 496 window_tree_client_.reset(
495 new DesktopNativeWidgetAuraWindowTreeClient(host_->window())); 497 new DesktopNativeWidgetAuraWindowTreeClient(host_->window()));
496 drop_helper_.reset(new DropHelper(GetWidget()->GetRootView())); 498 drop_helper_.reset(new DropHelper(GetWidget()->GetRootView()));
497 aura::client::SetDragDropDelegate(content_window_, this); 499 aura::client::SetDragDropDelegate(content_window_, this);
498 500
499 tooltip_manager_.reset(new TooltipManagerAura(GetWidget())); 501 if (params.type != Widget::InitParams::TYPE_TOOLTIP) {
500 502 tooltip_manager_.reset(new TooltipManagerAura(GetWidget()));
501 tooltip_controller_.reset( 503 tooltip_controller_.reset(
502 new corewm::TooltipController( 504 new corewm::TooltipController(
503 desktop_window_tree_host_->CreateTooltip())); 505 desktop_window_tree_host_->CreateTooltip()));
504 aura::client::SetTooltipClient(host_->window(), 506 aura::client::SetTooltipClient(host_->window(),
505 tooltip_controller_.get()); 507 tooltip_controller_.get());
506 host_->window()->AddPreTargetHandler(tooltip_controller_.get()); 508 host_->window()->AddPreTargetHandler(tooltip_controller_.get());
509 }
507 510
508 if (params.opacity == Widget::InitParams::TRANSLUCENT_WINDOW) { 511 if (params.opacity == Widget::InitParams::TRANSLUCENT_WINDOW) {
509 visibility_controller_.reset(new wm::VisibilityController); 512 visibility_controller_.reset(new wm::VisibilityController);
510 aura::client::SetVisibilityClient(host_->window(), 513 aura::client::SetVisibilityClient(host_->window(),
511 visibility_controller_.get()); 514 visibility_controller_.get());
512 wm::SetChildWindowVisibilityChangesAnimated(host_->window()); 515 wm::SetChildWindowVisibilityChangesAnimated(host_->window());
513 wm::SetChildWindowVisibilityChangesAnimated( 516 wm::SetChildWindowVisibilityChangesAnimated(
514 content_window_container_); 517 content_window_container_);
515 } 518 }
516 519
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after
1205 if (cursor_reference_count_ == 0) { 1208 if (cursor_reference_count_ == 0) {
1206 // We are the last DesktopNativeWidgetAura instance, and we are responsible 1209 // We are the last DesktopNativeWidgetAura instance, and we are responsible
1207 // for cleaning up |cursor_manager_|. 1210 // for cleaning up |cursor_manager_|.
1208 delete cursor_manager_; 1211 delete cursor_manager_;
1209 native_cursor_manager_ = NULL; 1212 native_cursor_manager_ = NULL;
1210 cursor_manager_ = NULL; 1213 cursor_manager_ = NULL;
1211 } 1214 }
1212 } 1215 }
1213 1216
1214 } // namespace views 1217 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/corewm/tooltip_aura.cc ('k') | ui/views/widget/desktop_aura/desktop_screen_position_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698