| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "chrome/browser/find_in_page_controller.h" | 5 #include "chrome/browser/find_in_page_controller.h" |
| 6 | 6 |
| 7 #include "chrome/browser/browser.h" | 7 #include "chrome/browser/browser.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/find_in_page_view.h" | 9 #include "chrome/browser/find_in_page_view.h" |
| 10 #include "chrome/browser/find_notification_details.h" | 10 #include "chrome/browser/find_notification_details.h" |
| (...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 | 555 |
| 556 gfx::Rect FindInPageController::GetDialogPosition( | 556 gfx::Rect FindInPageController::GetDialogPosition( |
| 557 gfx::Rect avoid_overlapping_rect) { | 557 gfx::Rect avoid_overlapping_rect) { |
| 558 // Find the area we have to work with (after accounting for scrollbars, etc). | 558 // Find the area we have to work with (after accounting for scrollbars, etc). |
| 559 gfx::Rect dialog_bounds; | 559 gfx::Rect dialog_bounds; |
| 560 GetDialogBounds(&dialog_bounds); | 560 GetDialogBounds(&dialog_bounds); |
| 561 if (dialog_bounds.IsEmpty()) | 561 if (dialog_bounds.IsEmpty()) |
| 562 return gfx::Rect(); | 562 return gfx::Rect(); |
| 563 | 563 |
| 564 // Ask the view how large an area it needs to draw on. | 564 // Ask the view how large an area it needs to draw on. |
| 565 CSize prefsize; | 565 gfx::Size prefsize = view_->GetPreferredSize(); |
| 566 view_->GetPreferredSize(&prefsize); | |
| 567 | 566 |
| 568 // Place the view in the top right corner of the dialog boundaries (top left | 567 // Place the view in the top right corner of the dialog boundaries (top left |
| 569 // for RTL languages). | 568 // for RTL languages). |
| 570 gfx::Rect view_location; | 569 gfx::Rect view_location; |
| 571 int x = view_->UILayoutIsRightToLeft() ? | 570 int x = view_->UILayoutIsRightToLeft() ? |
| 572 dialog_bounds.x() : dialog_bounds.width() - prefsize.cx; | 571 dialog_bounds.x() : dialog_bounds.width() - prefsize.width(); |
| 573 int y = dialog_bounds.y(); | 572 int y = dialog_bounds.y(); |
| 574 view_location.SetRect(x, y, prefsize.cx, prefsize.cy); | 573 view_location.SetRect(x, y, prefsize.width(), prefsize.height()); |
| 575 | 574 |
| 576 // Make sure we don't go out of bounds to the left (right in RTL) if the | 575 // Make sure we don't go out of bounds to the left (right in RTL) if the |
| 577 // window is too small to fit our dialog. | 576 // window is too small to fit our dialog. |
| 578 if (view_->UILayoutIsRightToLeft()) { | 577 if (view_->UILayoutIsRightToLeft()) { |
| 579 int boundary = dialog_bounds.width() - prefsize.cx; | 578 int boundary = dialog_bounds.width() - prefsize.width(); |
| 580 view_location.set_x(std::min(view_location.x(), boundary)); | 579 view_location.set_x(std::min(view_location.x(), boundary)); |
| 581 } else { | 580 } else { |
| 582 view_location.set_x(std::max(view_location.x(), dialog_bounds.x())); | 581 view_location.set_x(std::max(view_location.x(), dialog_bounds.x())); |
| 583 } | 582 } |
| 584 | 583 |
| 585 gfx::Rect new_pos = view_location; | 584 gfx::Rect new_pos = view_location; |
| 586 | 585 |
| 587 // When we get Find results back, we specify a selection rect, which we | 586 // When we get Find results back, we specify a selection rect, which we |
| 588 // should strive to avoid overlapping. But first, we need to offset the | 587 // should strive to avoid overlapping. But first, we need to offset the |
| 589 // selection rect (if one was provided). | 588 // selection rect (if one was provided). |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 684 // TODO(finnur): Once we fix issue 1307173 we should not remember any old | 683 // TODO(finnur): Once we fix issue 1307173 we should not remember any old |
| 685 // accelerator targets and just Register and Unregister when needed. | 684 // accelerator targets and just Register and Unregister when needed. |
| 686 DCHECK(old_accel_target_for_esc_ != NULL); | 685 DCHECK(old_accel_target_for_esc_ != NULL); |
| 687 ChromeViews::Accelerator escape(VK_ESCAPE, false, false, false); | 686 ChromeViews::Accelerator escape(VK_ESCAPE, false, false, false); |
| 688 ChromeViews::AcceleratorTarget* current_target = | 687 ChromeViews::AcceleratorTarget* current_target = |
| 689 focus_manager_->GetTargetForAccelerator(escape); | 688 focus_manager_->GetTargetForAccelerator(escape); |
| 690 if (current_target == this) | 689 if (current_target == this) |
| 691 focus_manager_->RegisterAccelerator(escape, old_accel_target_for_esc_); | 690 focus_manager_->RegisterAccelerator(escape, old_accel_target_for_esc_); |
| 692 } | 691 } |
| 693 | 692 |
| OLD | NEW |