| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 } | 353 } |
| 354 } | 354 } |
| 355 | 355 |
| 356 if (r.IsContentEditable()) { | 356 if (r.IsContentEditable()) { |
| 357 data.is_editable = true; | 357 data.is_editable = true; |
| 358 | 358 |
| 359 // Spellchecker adds spelling markers to misspelled words and attaches | 359 // Spellchecker adds spelling markers to misspelled words and attaches |
| 360 // suggestions to these markers in the background. Therefore, when a | 360 // suggestions to these markers in the background. Therefore, when a |
| 361 // user right-clicks a mouse on a word, Chrome just needs to find a | 361 // user right-clicks a mouse on a word, Chrome just needs to find a |
| 362 // spelling marker on the word instead of spellchecking it. | 362 // spelling marker on the word instead of spellchecking it. |
| 363 String description; | 363 std::pair<String, String> misspelled_word_and_description = |
| 364 data.misspelled_word = | 364 selected_frame->GetSpellChecker().SelectMisspellingAsync(); |
| 365 selected_frame->GetSpellChecker().SelectMisspellingAsync(description); | 365 data.misspelled_word = misspelled_word_and_description.first; |
| 366 const String& description = misspelled_word_and_description.second; |
| 366 if (description.length()) { | 367 if (description.length()) { |
| 367 Vector<String> suggestions; | 368 Vector<String> suggestions; |
| 368 description.Split('\n', suggestions); | 369 description.Split('\n', suggestions); |
| 369 data.dictionary_suggestions = suggestions; | 370 data.dictionary_suggestions = suggestions; |
| 370 } else if (selected_web_frame->TextCheckClient()) { | 371 } else if (selected_web_frame->TextCheckClient()) { |
| 371 int misspelled_offset, misspelled_length; | 372 int misspelled_offset, misspelled_length; |
| 372 selected_web_frame->TextCheckClient()->CheckSpelling( | 373 selected_web_frame->TextCheckClient()->CheckSpelling( |
| 373 data.misspelled_word, misspelled_offset, misspelled_length, | 374 data.misspelled_word, misspelled_offset, misspelled_length, |
| 374 &data.dictionary_suggestions); | 375 &data.dictionary_suggestions); |
| 375 } | 376 } |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 508 output_items[i] = sub_items[i]; | 509 output_items[i] = sub_items[i]; |
| 509 sub_menu_items.Swap(output_items); | 510 sub_menu_items.Swap(output_items); |
| 510 } | 511 } |
| 511 | 512 |
| 512 void ContextMenuClient::PopulateCustomMenuItems(const ContextMenu* default_menu, | 513 void ContextMenuClient::PopulateCustomMenuItems(const ContextMenu* default_menu, |
| 513 WebContextMenuData* data) { | 514 WebContextMenuData* data) { |
| 514 PopulateSubMenuItems(default_menu->Items(), data->custom_items); | 515 PopulateSubMenuItems(default_menu->Items(), data->custom_items); |
| 515 } | 516 } |
| 516 | 517 |
| 517 } // namespace blink | 518 } // namespace blink |
| OLD | NEW |