| Index: chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| diff --git a/chrome/browser/ui/omnibox/omnibox_edit_model.cc b/chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| index 5a896518b4950c158196721bb311b55483a2f4cf..86f80f5fb7e696200f4cf35b4140c143f18d9d9c 100644
|
| --- a/chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| +++ b/chrome/browser/ui/omnibox/omnibox_edit_model.cc
|
| @@ -4,9 +4,11 @@
|
|
|
| #include "chrome/browser/ui/omnibox/omnibox_edit_model.h"
|
|
|
| +#include <algorithm>
|
| #include <string>
|
|
|
| #include "base/format_macros.h"
|
| +#include "base/i18n/rtl.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/string_util.h"
|
| #include "base/stringprintf.h"
|
| @@ -994,9 +996,21 @@ bool OmniboxEditModel::OnAfterPossibleChange(const string16& old_text,
|
| MaybeAcceptKeywordBySpace(user_text_));
|
| }
|
|
|
| -void OmniboxEditModel::PopupBoundsChangedTo(const gfx::Rect& bounds) {
|
| +void OmniboxEditModel::OnPopupBoundsChanged(const gfx::Rect& bounds) {
|
| if (InstantController* instant = controller_->GetInstant())
|
| - instant->SetOmniboxBounds(bounds);
|
| + instant->SetPopupBounds(bounds);
|
| +}
|
| +
|
| +void OmniboxEditModel::OnOmniboxBoundsChanged(const gfx::Rect& omnibox_bounds) {
|
| + if (InstantController* instant = controller_->GetInstant()) {
|
| + const gfx::Rect container_bounds = view_->GetContainerBounds();
|
| + int start = omnibox_bounds.x();
|
| + int end = container_bounds.x() + container_bounds.width() -
|
| + omnibox_bounds.width() - start;
|
| + if (base::i18n::IsRTL())
|
| + std::swap(start, end);
|
| + instant->SetMarginSize(start, end);
|
| + }
|
| }
|
|
|
| void OmniboxEditModel::OnResultChanged(bool default_match_changed) {
|
| @@ -1033,14 +1047,14 @@ void OmniboxEditModel::OnResultChanged(bool default_match_changed) {
|
| }
|
|
|
| if (popup_->IsOpen()) {
|
| - PopupBoundsChangedTo(popup_->view()->GetTargetBounds());
|
| + OnPopupBoundsChanged(popup_->view()->GetTargetBounds());
|
| } else if (was_open) {
|
| // Accepts the temporary text as the user text, because it makes little
|
| // sense to have temporary text when the popup is closed.
|
| InternalSetUserText(UserTextFromDisplayText(view_->GetText()));
|
| has_temporary_text_ = false;
|
| is_temporary_text_set_by_instant_ = false;
|
| - PopupBoundsChangedTo(gfx::Rect());
|
| + OnPopupBoundsChanged(gfx::Rect());
|
| NotifySearchTabHelper();
|
| }
|
|
|
|
|