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

Side by Side Diff: ash/wm/workspace/frame_maximize_button.cc

Issue 11280283: Extract the code of showing a dragging window on another display from PhantomWindowController. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: assign NULL after deleting Layer Created 8 years 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
« no previous file with comments | « ash/wm/gestures/system_pinch_handler.cc ('k') | ash/wm/workspace/phantom_window_controller.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "ash/wm/workspace/frame_maximize_button.h" 5 #include "ash/wm/workspace/frame_maximize_button.h"
6 6
7 #include "ash/launcher/launcher.h" 7 #include "ash/launcher/launcher.h"
8 #include "ash/screen_ash.h" 8 #include "ash/screen_ash.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/wm/maximize_bubble_controller.h" 10 #include "ash/wm/maximize_bubble_controller.h"
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 382
383 void FrameMaximizeButton::UpdateSnap(const gfx::Point& location, 383 void FrameMaximizeButton::UpdateSnap(const gfx::Point& location,
384 bool select_default, 384 bool select_default,
385 bool is_touch) { 385 bool is_touch) {
386 SnapType type = SnapTypeForLocation(location); 386 SnapType type = SnapTypeForLocation(location);
387 if (type == snap_type_) { 387 if (type == snap_type_) {
388 if (snap_sizer_.get()) { 388 if (snap_sizer_.get()) {
389 snap_sizer_->Update(LocationForSnapSizer(location)); 389 snap_sizer_->Update(LocationForSnapSizer(location));
390 phantom_window_->Show(ScreenAsh::ConvertRectToScreen( 390 phantom_window_->Show(ScreenAsh::ConvertRectToScreen(
391 frame_->GetWidget()->GetNativeView()->parent(), 391 frame_->GetWidget()->GetNativeView()->parent(),
392 snap_sizer_->target_bounds()), NULL); 392 snap_sizer_->target_bounds()));
393 } 393 }
394 return; 394 return;
395 } 395 }
396 396
397 snap_type_ = type; 397 snap_type_ = type;
398 snap_sizer_.reset(); 398 snap_sizer_.reset();
399 SchedulePaint(); 399 SchedulePaint();
400 400
401 if (snap_type_ == SNAP_NONE) { 401 if (snap_type_ == SNAP_NONE) {
402 phantom_window_.reset(); 402 phantom_window_.reset();
(...skipping 15 matching lines...) Expand all
418 } 418 }
419 if (!phantom_window_.get()) { 419 if (!phantom_window_.get()) {
420 phantom_window_.reset(new internal::PhantomWindowController( 420 phantom_window_.reset(new internal::PhantomWindowController(
421 frame_->GetWidget()->GetNativeWindow())); 421 frame_->GetWidget()->GetNativeWindow()));
422 } 422 }
423 if (maximizer_.get()) { 423 if (maximizer_.get()) {
424 phantom_window_->set_phantom_below_window(maximizer_->GetBubbleWindow()); 424 phantom_window_->set_phantom_below_window(maximizer_->GetBubbleWindow());
425 maximizer_->SetSnapType(snap_type_); 425 maximizer_->SetSnapType(snap_type_);
426 } 426 }
427 phantom_window_->Show( 427 phantom_window_->Show(
428 ScreenBoundsForType(snap_type_, *snap_sizer_.get()), NULL); 428 ScreenBoundsForType(snap_type_, *snap_sizer_.get()));
429 } 429 }
430 430
431 SnapType FrameMaximizeButton::SnapTypeForLocation( 431 SnapType FrameMaximizeButton::SnapTypeForLocation(
432 const gfx::Point& location) const { 432 const gfx::Point& location) const {
433 MaximizeBubbleFrameState maximize_type = GetMaximizeBubbleFrameState(); 433 MaximizeBubbleFrameState maximize_type = GetMaximizeBubbleFrameState();
434 gfx::Vector2d delta(location - press_location_); 434 gfx::Vector2d delta(location - press_location_);
435 if (!views::View::ExceededDragThreshold(delta)) 435 if (!views::View::ExceededDragThreshold(delta))
436 return maximize_type != FRAME_STATE_FULL ? SNAP_MAXIMIZE : SNAP_RESTORE; 436 return maximize_type != FRAME_STATE_FULL ? SNAP_MAXIMIZE : SNAP_RESTORE;
437 if (delta.x() < 0 && delta.y() > delta.x() && delta.y() < -delta.x()) 437 if (delta.x() < 0 && delta.y() > delta.x() && delta.y() < -delta.x())
438 return maximize_type == FRAME_STATE_SNAP_LEFT ? SNAP_RESTORE : SNAP_LEFT; 438 return maximize_type == FRAME_STATE_SNAP_LEFT ? SNAP_RESTORE : SNAP_LEFT;
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 return FRAME_STATE_SNAP_LEFT; 558 return FRAME_STATE_SNAP_LEFT;
559 if (bounds.right() == screen.right()) 559 if (bounds.right() == screen.right())
560 return FRAME_STATE_SNAP_RIGHT; 560 return FRAME_STATE_SNAP_RIGHT;
561 // If we come here, it is likely caused by the fact that the 561 // If we come here, it is likely caused by the fact that the
562 // "VerticalResizeDoubleClick" stored a restore rectangle. In that case 562 // "VerticalResizeDoubleClick" stored a restore rectangle. In that case
563 // we allow all maximize operations (and keep the restore rectangle). 563 // we allow all maximize operations (and keep the restore rectangle).
564 return FRAME_STATE_NONE; 564 return FRAME_STATE_NONE;
565 } 565 }
566 566
567 } // namespace ash 567 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/gestures/system_pinch_handler.cc ('k') | ash/wm/workspace/phantom_window_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698