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

Side by Side Diff: chrome/browser/chromeos/input_method/candidate_window.cc

Issue 8888038: chromeos: Don't fire candidate window open/close events for suggestion window. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address yusukes@ comment Created 9 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 | « no previous file | chrome/browser/chromeos/input_method/candidate_window_view.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/chromeos/input_method/candidate_window.h" 5 #include "chrome/browser/chromeos/input_method/candidate_window.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 CandidateWindowView::CandidateWindowView(views::Widget* parent_frame) 834 CandidateWindowView::CandidateWindowView(views::Widget* parent_frame)
835 : selected_candidate_index_in_page_(0), 835 : selected_candidate_index_in_page_(0),
836 parent_frame_(parent_frame), 836 parent_frame_(parent_frame),
837 preedit_area_(NULL), 837 preedit_area_(NULL),
838 header_area_(NULL), 838 header_area_(NULL),
839 candidate_area_(NULL), 839 candidate_area_(NULL),
840 footer_area_(NULL), 840 footer_area_(NULL),
841 previous_shortcut_column_width_(0), 841 previous_shortcut_column_width_(0),
842 previous_candidate_column_width_(0), 842 previous_candidate_column_width_(0),
843 previous_annotation_column_width_(0), 843 previous_annotation_column_width_(0),
844 is_suggestion_window_location_available_(false) { 844 is_suggestion_window_location_available_(false),
845 was_candidate_window_open_(false) {
845 } 846 }
846 847
847 CandidateWindowView::~CandidateWindowView() { 848 CandidateWindowView::~CandidateWindowView() {
848 } 849 }
849 850
850 void CandidateWindowView::Init() { 851 void CandidateWindowView::Init() {
851 // Set the background and the border of the view. 852 // Set the background and the border of the view.
852 set_background( 853 set_background(
853 views::Background::CreateSolidBackground(kDefaultBackgroundColor)); 854 views::Background::CreateSolidBackground(kDefaultBackgroundColor));
854 set_border(views::Border::CreateSolidBorder(1, kFrameColor)); 855 set_border(views::Border::CreateSolidBorder(1, kFrameColor));
(...skipping 24 matching lines...) Expand all
879 // Add the candidate area. 880 // Add the candidate area.
880 layout->StartRow(0, 0); 881 layout->StartRow(0, 0);
881 layout->AddView(candidate_area_); // |candidate_area_| is owned by |this|. 882 layout->AddView(candidate_area_); // |candidate_area_| is owned by |this|.
882 883
883 // Add the footer area. 884 // Add the footer area.
884 layout->StartRow(0, 0); 885 layout->StartRow(0, 0);
885 layout->AddView(footer_area_); // |footer_area_| is owned by |this|. 886 layout->AddView(footer_area_); // |footer_area_| is owned by |this|.
886 } 887 }
887 888
888 void CandidateWindowView::HideAll() { 889 void CandidateWindowView::HideAll() {
889 bool was_visible = IsCandidateWindowOpen();
890 parent_frame_->Hide(); 890 parent_frame_->Hide();
891 if (was_visible) { 891 NotifyIfCandidateWindowOpenedOrClosed();
892 FOR_EACH_OBSERVER(Observer, observers_, OnCandidateWindowClosed());
893 }
894 } 892 }
895 893
896 void CandidateWindowView::HideLookupTable() { 894 void CandidateWindowView::HideLookupTable() {
897 bool was_visible = IsCandidateWindowOpen();
898 candidate_area_->Hide(); 895 candidate_area_->Hide();
899 if (preedit_area_->IsShown()) 896 if (preedit_area_->IsShown())
900 ResizeAndMoveParentFrame(); 897 ResizeAndMoveParentFrame();
901 else 898 else
902 parent_frame_->Hide(); 899 parent_frame_->Hide();
903 if (was_visible) { 900
904 FOR_EACH_OBSERVER(Observer, observers_, OnCandidateWindowClosed()); 901 NotifyIfCandidateWindowOpenedOrClosed();
905 }
906 } 902 }
907 903
908 InformationTextArea* CandidateWindowView::GetAuxiliaryTextArea() { 904 InformationTextArea* CandidateWindowView::GetAuxiliaryTextArea() {
909 return (lookup_table_.orientation == InputMethodLookupTable::kHorizontal ? 905 return (lookup_table_.orientation == InputMethodLookupTable::kHorizontal ?
910 header_area_ : footer_area_); 906 header_area_ : footer_area_);
911 } 907 }
912 908
913 void CandidateWindowView::HideAuxiliaryText() { 909 void CandidateWindowView::HideAuxiliaryText() {
914 GetAuxiliaryTextArea()->Hide(); 910 GetAuxiliaryTextArea()->Hide();
915 ResizeAndMoveParentFrame(); 911 ResizeAndMoveParentFrame();
(...skipping 20 matching lines...) Expand all
936 preedit_area_->Show(); 932 preedit_area_->Show();
937 ResizeAndMoveParentFrame(); 933 ResizeAndMoveParentFrame();
938 parent_frame_->Show(); 934 parent_frame_->Show();
939 } 935 }
940 936
941 void CandidateWindowView::UpdatePreeditText(const std::string& utf8_text) { 937 void CandidateWindowView::UpdatePreeditText(const std::string& utf8_text) {
942 preedit_area_->SetText(utf8_text); 938 preedit_area_->SetText(utf8_text);
943 } 939 }
944 940
945 void CandidateWindowView::ShowLookupTable() { 941 void CandidateWindowView::ShowLookupTable() {
946 bool was_visible = IsCandidateWindowOpen();
947 candidate_area_->Show(); 942 candidate_area_->Show();
948 ResizeAndMoveParentFrame(); 943 ResizeAndMoveParentFrame();
949 parent_frame_->Show(); 944 parent_frame_->Show();
950 if (!was_visible) { 945
946 NotifyIfCandidateWindowOpenedOrClosed();
947 }
948
949 void CandidateWindowView::NotifyIfCandidateWindowOpenedOrClosed() {
950 bool is_open = IsCandidateWindowOpen();
951 if (!was_candidate_window_open_ && is_open) {
951 FOR_EACH_OBSERVER(Observer, observers_, OnCandidateWindowOpened()); 952 FOR_EACH_OBSERVER(Observer, observers_, OnCandidateWindowOpened());
953 } else if (was_candidate_window_open_ && !is_open) {
954 FOR_EACH_OBSERVER(Observer, observers_, OnCandidateWindowClosed());
952 } 955 }
956 was_candidate_window_open_ = is_open;
953 } 957 }
954 958
955 bool CandidateWindowView::ShouldUpdateCandidateViews( 959 bool CandidateWindowView::ShouldUpdateCandidateViews(
956 const InputMethodLookupTable& old_table, 960 const InputMethodLookupTable& old_table,
957 const InputMethodLookupTable& new_table) { 961 const InputMethodLookupTable& new_table) {
958 962
959 // Check if mozc lookup table location is changed. 963 // Check if mozc lookup table location is changed.
960 if (old_table.mozc_candidates.has_window_location() || 964 if (old_table.mozc_candidates.has_window_location() ||
961 new_table.mozc_candidates.has_window_location()) { 965 new_table.mozc_candidates.has_window_location()) {
962 966
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1181 // Compute views size in |layout|. 1185 // Compute views size in |layout|.
1182 // If we don't call this function, GetHorizontalOffset() often 1186 // If we don't call this function, GetHorizontalOffset() often
1183 // returns invalid value (returns 0), then candidate window 1187 // returns invalid value (returns 0), then candidate window
1184 // moves right from the correct position in ResizeAndMoveParentFrame(). 1188 // moves right from the correct position in ResizeAndMoveParentFrame().
1185 // TODO(nhiroki): Figure out why it returns invalid value. 1189 // TODO(nhiroki): Figure out why it returns invalid value.
1186 // It seems that the x-position of the candidate labels is not set. 1190 // It seems that the x-position of the candidate labels is not set.
1187 layout->Layout(candidate_area_contents); 1191 layout->Layout(candidate_area_contents);
1188 } 1192 }
1189 1193
1190 bool CandidateWindowView::IsCandidateWindowOpen() const { 1194 bool CandidateWindowView::IsCandidateWindowOpen() const {
1191 return candidate_area_->IsVisible() && candidate_area_->IsShown(); 1195 return !is_suggestion_window_location_available_ &&
1196 candidate_area_->IsVisible() && candidate_area_->IsShown();
1192 } 1197 }
1193 1198
1194 void CandidateWindowView::SelectCandidateAt(int index_in_page) { 1199 void CandidateWindowView::SelectCandidateAt(int index_in_page) {
1195 const int current_page_index = ComputePageIndex(lookup_table_); 1200 const int current_page_index = ComputePageIndex(lookup_table_);
1196 if (current_page_index < 0) { 1201 if (current_page_index < 0) {
1197 LOG(ERROR) << "Invalid lookup_table: " << lookup_table_.ToString(); 1202 LOG(ERROR) << "Invalid lookup_table: " << lookup_table_.ToString();
1198 return; 1203 return;
1199 } 1204 }
1200 1205
1201 const int cursor_absolute_index = 1206 const int cursor_absolute_index =
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
1776 impl_->AddObserver(observer); 1781 impl_->AddObserver(observer);
1777 } 1782 }
1778 1783
1779 void CandidateWindowController::RemoveObserver( 1784 void CandidateWindowController::RemoveObserver(
1780 CandidateWindowController::Observer* observer) { 1785 CandidateWindowController::Observer* observer) {
1781 impl_->RemoveObserver(observer); 1786 impl_->RemoveObserver(observer);
1782 } 1787 }
1783 1788
1784 } // namespace input_method 1789 } // namespace input_method
1785 } // namespace chromeos 1790 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/input_method/candidate_window_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698