OLD | NEW |
---|---|
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 #define INITGUID // required for GUID_PROP_INPUTSCOPE | 5 #define INITGUID // required for GUID_PROP_INPUTSCOPE |
6 #include "ui/base/ime/win/tsf_text_store.h" | 6 #include "ui/base/ime/win/tsf_text_store.h" |
7 | 7 |
8 #include <InputScope.h> | 8 #include <InputScope.h> |
9 #include <OleCtl.h> | 9 #include <OleCtl.h> |
10 | 10 |
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
824 } | 824 } |
825 | 825 |
826 void TSFTextStore::RemoveFocusedTextInputClient( | 826 void TSFTextStore::RemoveFocusedTextInputClient( |
827 TextInputClient* text_input_client) { | 827 TextInputClient* text_input_client) { |
828 if (text_input_client_ == text_input_client) { | 828 if (text_input_client_ == text_input_client) { |
829 window_handle_ = NULL; | 829 window_handle_ = NULL; |
830 text_input_client_ = NULL; | 830 text_input_client_ = NULL; |
831 } | 831 } |
832 } | 832 } |
833 | 833 |
834 bool TSFTextStore::CancelComposition() { | |
835 // There is an on-going document lock. We must not edit the text! | |
836 if (edit_flag_ != 0) | |
Seigo Nonaka
2013/06/21 08:09:53
!edit_flag?
Yohei Yukawa
2013/06/21 08:26:55
Done.
| |
837 return false; | |
838 | |
839 if (string_buffer_.empty()) | |
840 return true; | |
841 | |
842 const size_t previous_buffer_size = string_buffer_.size(); | |
843 string_buffer_.clear(); | |
844 committed_size_ = 0; | |
845 selection_.set_start(0); | |
846 selection_.set_end(0); | |
847 if (text_store_acp_sink_mask_ & TS_AS_SEL_CHANGE) | |
848 text_store_acp_sink_->OnSelectionChange(); | |
849 if (text_store_acp_sink_mask_ & TS_AS_LAYOUT_CHANGE) | |
850 text_store_acp_sink_->OnLayoutChange(TS_LC_CHANGE, 0); | |
851 if (text_store_acp_sink_mask_ & TS_AS_TEXT_CHANGE) { | |
852 TS_TEXTCHANGE textChange = {}; | |
853 textChange.acpStart = 0; | |
854 textChange.acpOldEnd = previous_buffer_size; | |
855 textChange.acpNewEnd = 0; | |
856 text_store_acp_sink_->OnTextChange(0, &textChange); | |
857 } | |
858 return true; | |
859 } | |
860 | |
861 bool TSFTextStore::ConfirmComposition() { | |
862 // There is an on-going document lock. We must not edit the text! | |
863 if (edit_flag_ != 0) | |
Seigo Nonaka
2013/06/21 08:09:53
ditto
Yohei Yukawa
2013/06/21 08:26:55
Done.
| |
864 return false; | |
865 | |
866 if (string_buffer_.empty()) | |
867 return true; | |
868 | |
869 const string16& composition_text = string_buffer_.substr(committed_size_); | |
870 if (!composition_text.empty()) | |
871 text_input_client_->InsertText(composition_text); | |
872 | |
873 const size_t previous_buffer_size = string_buffer_.size(); | |
874 string_buffer_.clear(); | |
875 committed_size_ = 0; | |
876 selection_.set_start(0); | |
877 selection_.set_end(0); | |
878 if (text_store_acp_sink_mask_ & TS_AS_SEL_CHANGE) | |
879 text_store_acp_sink_->OnSelectionChange(); | |
880 if (text_store_acp_sink_mask_ & TS_AS_LAYOUT_CHANGE) | |
881 text_store_acp_sink_->OnLayoutChange(TS_LC_CHANGE, 0); | |
882 if (text_store_acp_sink_mask_ & TS_AS_TEXT_CHANGE) { | |
883 TS_TEXTCHANGE textChange = {}; | |
884 textChange.acpStart = 0; | |
885 textChange.acpOldEnd = previous_buffer_size; | |
886 textChange.acpNewEnd = 0; | |
887 text_store_acp_sink_->OnTextChange(0, &textChange); | |
888 } | |
889 return true; | |
890 } | |
891 | |
834 void TSFTextStore::SendOnLayoutChange() { | 892 void TSFTextStore::SendOnLayoutChange() { |
835 if (text_store_acp_sink_ && (text_store_acp_sink_mask_ & TS_AS_LAYOUT_CHANGE)) | 893 if (text_store_acp_sink_ && (text_store_acp_sink_mask_ & TS_AS_LAYOUT_CHANGE)) |
836 text_store_acp_sink_->OnLayoutChange(TS_LC_CHANGE, 0); | 894 text_store_acp_sink_->OnLayoutChange(TS_LC_CHANGE, 0); |
837 } | 895 } |
838 | 896 |
839 bool TSFTextStore::HasReadLock() const { | 897 bool TSFTextStore::HasReadLock() const { |
840 return (current_lock_type_ & TS_LF_READ) == TS_LF_READ; | 898 return (current_lock_type_ & TS_LF_READ) == TS_LF_READ; |
841 } | 899 } |
842 | 900 |
843 bool TSFTextStore::HasReadWriteLock() const { | 901 bool TSFTextStore::HasReadWriteLock() const { |
844 return (current_lock_type_ & TS_LF_READWRITE) == TS_LF_READWRITE; | 902 return (current_lock_type_ & TS_LF_READWRITE) == TS_LF_READWRITE; |
845 } | 903 } |
846 | 904 |
847 } // namespace ui | 905 } // namespace ui |
OLD | NEW |