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

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

Issue 11447007: Fix unexpected auxiliary text appearance. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 7 years, 11 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
« no previous file with comments | « chrome/browser/chromeos/input_method/input_method_engine_ibus.h ('k') | no next file » | 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 "chrome/browser/chromeos/input_method/input_method_engine_ibus.h" 5 #include "chrome/browser/chromeos/input_method/input_method_engine_ibus.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 context_id_(0), 45 context_id_(0),
46 next_context_id_(1), 46 next_context_id_(1),
47 current_object_path_(0), 47 current_object_path_(0),
48 aux_text_(new ibus::IBusText()), 48 aux_text_(new ibus::IBusText()),
49 aux_text_visible_(false), 49 aux_text_visible_(false),
50 observer_(NULL), 50 observer_(NULL),
51 preedit_text_(new ibus::IBusText()), 51 preedit_text_(new ibus::IBusText()),
52 preedit_cursor_(0), 52 preedit_cursor_(0),
53 component_(new ibus::IBusComponent()), 53 component_(new ibus::IBusComponent()),
54 table_(new ibus::IBusLookupTable()), 54 table_(new ibus::IBusLookupTable()),
55 table_visible_(false), 55 window_visible_(false),
56 weak_ptr_factory_(this) { 56 weak_ptr_factory_(this) {
57 } 57 }
58 58
59 InputMethodEngineIBus::~InputMethodEngineIBus() { 59 InputMethodEngineIBus::~InputMethodEngineIBus() {
60 GetCurrentService()->UnsetEngine(); 60 GetCurrentService()->UnsetEngine();
61 input_method::GetInputMethodManager()->RemoveInputMethodExtension(ibus_id_); 61 input_method::GetInputMethodManager()->RemoveInputMethodExtension(ibus_id_);
62 } 62 }
63 63
64 void InputMethodEngineIBus::Initialize( 64 void InputMethodEngineIBus::Initialize(
65 InputMethodEngine::Observer* observer, 65 InputMethodEngine::Observer* observer,
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 return true; 202 return true;
203 } 203 }
204 204
205 bool InputMethodEngineIBus::SetCandidateWindowVisible(bool visible, 205 bool InputMethodEngineIBus::SetCandidateWindowVisible(bool visible,
206 std::string* error) { 206 std::string* error) {
207 if (!active_) { 207 if (!active_) {
208 *error = kErrorNotActive; 208 *error = kErrorNotActive;
209 return false; 209 return false;
210 } 210 }
211 211
212 table_visible_ = visible; 212 window_visible_ = visible;
213 GetCurrentService()->UpdateLookupTable(*table_.get(), table_visible_); 213 GetCurrentService()->UpdateLookupTable(*table_.get(), window_visible_);
214 return true; 214 return true;
215 } 215 }
216 216
217 void InputMethodEngineIBus::SetCandidateWindowCursorVisible(bool visible) { 217 void InputMethodEngineIBus::SetCandidateWindowCursorVisible(bool visible) {
218 if (!active_)
219 return;
220 table_->set_is_cursor_visible(visible); 218 table_->set_is_cursor_visible(visible);
221 GetCurrentService()->UpdateLookupTable(*table_.get(), table_visible_); 219 if (active_)
220 GetCurrentService()->UpdateLookupTable(*table_.get(), window_visible_);
222 } 221 }
223 222
224 void InputMethodEngineIBus::SetCandidateWindowVertical(bool vertical) { 223 void InputMethodEngineIBus::SetCandidateWindowVertical(bool vertical) {
225 if (!active_)
226 return;
227 table_->set_orientation( 224 table_->set_orientation(
228 vertical ? ibus::IBusLookupTable::IBUS_LOOKUP_TABLE_ORIENTATION_VERTICAL : 225 vertical ? ibus::IBusLookupTable::IBUS_LOOKUP_TABLE_ORIENTATION_VERTICAL :
229 ibus::IBusLookupTable::IBUS_LOOKUP_TABLE_ORIENTATION_HORIZONTAL); 226 ibus::IBusLookupTable::IBUS_LOOKUP_TABLE_ORIENTATION_HORIZONTAL);
230 GetCurrentService()->UpdateLookupTable(*table_.get(), table_visible_); 227 if (active_)
228 GetCurrentService()->UpdateLookupTable(*table_.get(), window_visible_);
231 } 229 }
232 230
233 void InputMethodEngineIBus::SetCandidateWindowPageSize(int size) { 231 void InputMethodEngineIBus::SetCandidateWindowPageSize(int size) {
234 if (!active_)
235 return;
236 table_->set_page_size(size); 232 table_->set_page_size(size);
237 GetCurrentService()->UpdateLookupTable(*table_.get(), table_visible_); 233 if (active_)
234 GetCurrentService()->UpdateLookupTable(*table_.get(), window_visible_);
238 } 235 }
239 236
240 void InputMethodEngineIBus::SetCandidateWindowAuxText(const char* text) { 237 void InputMethodEngineIBus::SetCandidateWindowAuxText(const char* text) {
241 if (!active_)
242 return;
243 aux_text_->set_text(text); 238 aux_text_->set_text(text);
244 GetCurrentService()->UpdateAuxiliaryText(*aux_text_.get(), aux_text_visible_); 239 if (active_) {
240 // Should not show auxiliary text if the whole window visibility is false.
241 GetCurrentService()->UpdateAuxiliaryText(
242 *aux_text_.get(),
243 window_visible_ && aux_text_visible_);
244 }
245 } 245 }
246 246
247 void InputMethodEngineIBus::SetCandidateWindowAuxTextVisible(bool visible) { 247 void InputMethodEngineIBus::SetCandidateWindowAuxTextVisible(bool visible) {
248 if (!active_)
249 return;
250 aux_text_visible_ = visible; 248 aux_text_visible_ = visible;
251 GetCurrentService()->UpdateAuxiliaryText(*aux_text_.get(), aux_text_visible_); 249 if (active_) {
250 // Should not show auxiliary text if the whole window visibility is false.
251 GetCurrentService()->UpdateAuxiliaryText(
252 *aux_text_.get(),
253 window_visible_ && aux_text_visible_);
254 }
252 } 255 }
253 256
254 bool InputMethodEngineIBus::SetCandidates( 257 bool InputMethodEngineIBus::SetCandidates(
255 int context_id, 258 int context_id,
256 const std::vector<Candidate>& candidates, 259 const std::vector<Candidate>& candidates,
257 std::string* error) { 260 std::string* error) {
258 if (!active_) { 261 if (!active_) {
259 *error = kErrorNotActive; 262 *error = kErrorNotActive;
260 return false; 263 return false;
261 } 264 }
(...skipping 14 matching lines...) Expand all
276 entry.annotation = ix->annotation; 279 entry.annotation = ix->annotation;
277 entry.description_title = ix->usage.title; 280 entry.description_title = ix->usage.title;
278 entry.description_body = ix->usage.body; 281 entry.description_body = ix->usage.body;
279 282
280 // Store a mapping from the user defined ID to the candidate index. 283 // Store a mapping from the user defined ID to the candidate index.
281 candidate_indexes_[ix->id] = candidate_ids_.size(); 284 candidate_indexes_[ix->id] = candidate_ids_.size();
282 candidate_ids_.push_back(ix->id); 285 candidate_ids_.push_back(ix->id);
283 286
284 table_->mutable_candidates()->push_back(entry); 287 table_->mutable_candidates()->push_back(entry);
285 } 288 }
286 GetCurrentService()->UpdateLookupTable(*table_.get(), table_visible_); 289 GetCurrentService()->UpdateLookupTable(*table_.get(), window_visible_);
287 return true; 290 return true;
288 } 291 }
289 292
290 bool InputMethodEngineIBus::SetCursorPosition(int context_id, int candidate_id, 293 bool InputMethodEngineIBus::SetCursorPosition(int context_id, int candidate_id,
291 std::string* error) { 294 std::string* error) {
292 if (!active_) { 295 if (!active_) {
293 *error = kErrorNotActive; 296 *error = kErrorNotActive;
294 return false; 297 return false;
295 } 298 }
296 if (context_id != context_id_ || context_id_ == -1) { 299 if (context_id != context_id_ || context_id_ == -1) {
297 *error = kErrorWrongContext; 300 *error = kErrorWrongContext;
298 return false; 301 return false;
299 } 302 }
300 303
301 std::map<int, int>::const_iterator position = 304 std::map<int, int>::const_iterator position =
302 candidate_indexes_.find(candidate_id); 305 candidate_indexes_.find(candidate_id);
303 if (position == candidate_indexes_.end()) { 306 if (position == candidate_indexes_.end()) {
304 *error = kCandidateNotFound; 307 *error = kCandidateNotFound;
305 return false; 308 return false;
306 } 309 }
307 310
308 table_->set_cursor_position(position->second); 311 table_->set_cursor_position(position->second);
309 GetCurrentService()->UpdateLookupTable(*table_.get(), table_visible_); 312 GetCurrentService()->UpdateLookupTable(*table_.get(), window_visible_);
310 return true; 313 return true;
311 } 314 }
312 315
313 bool InputMethodEngineIBus::SetMenuItems(const std::vector<MenuItem>& items) { 316 bool InputMethodEngineIBus::SetMenuItems(const std::vector<MenuItem>& items) {
314 if (!active_) 317 if (!active_)
315 return false; 318 return false;
316 319
317 ibus::IBusPropertyList properties; 320 ibus::IBusPropertyList properties;
318 for (std::vector<MenuItem>::const_iterator item = items.begin(); 321 for (std::vector<MenuItem>::const_iterator item = items.begin();
319 item != items.end(); ++item) { 322 item != items.end(); ++item) {
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 DBusThreadManager::Get()->RemoveIBusEngineService(object_path_); 575 DBusThreadManager::Get()->RemoveIBusEngineService(object_path_);
573 576
574 current_object_path_++; 577 current_object_path_++;
575 object_path_ = dbus::ObjectPath(kObjectPathPrefix + 578 object_path_ = dbus::ObjectPath(kObjectPathPrefix +
576 base::IntToString(current_object_path_)); 579 base::IntToString(current_object_path_));
577 GetCurrentService()->SetEngine(this); 580 GetCurrentService()->SetEngine(this);
578 sender.Run(object_path_); 581 sender.Run(object_path_);
579 } 582 }
580 583
581 } // namespace chromeos 584 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/input_method/input_method_engine_ibus.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698