This reverts commit 8afeb910bd.
Reverting because this change made Pinyin input unusable
(only latin characters showed even after selecting the
desired Chinese character)
This commit is contained in:
parent
5331397c6c
commit
6b250a74f8
5 changed files with 31 additions and 121 deletions
|
|
@ -3,13 +3,8 @@ mod cursor;
|
|||
|
||||
pub use self::{cursor::*, r#async::*};
|
||||
|
||||
use std::{
|
||||
cell::Cell,
|
||||
ops::{BitAnd, Deref},
|
||||
rc::Rc,
|
||||
};
|
||||
use std::ops::{BitAnd, Deref};
|
||||
|
||||
use block::ConcreteBlock;
|
||||
use cocoa::{
|
||||
appkit::{NSApp, NSWindowStyleMask},
|
||||
base::{id, nil},
|
||||
|
|
@ -18,12 +13,8 @@ use cocoa::{
|
|||
use core_graphics::display::CGDisplay;
|
||||
use objc::runtime::{Class, Object, Sel, BOOL, YES};
|
||||
|
||||
use crate::{
|
||||
dpi::LogicalPosition,
|
||||
platform_impl::platform::ffi::{
|
||||
self, NSRange, NSStringEnumerationByComposedCharacterSequences,
|
||||
},
|
||||
};
|
||||
use crate::dpi::LogicalPosition;
|
||||
use crate::platform_impl::platform::ffi;
|
||||
|
||||
// Replace with `!` once stable
|
||||
#[derive(Debug)]
|
||||
|
|
@ -113,31 +104,6 @@ pub unsafe fn ns_string_id_ref(s: &str) -> IdRef {
|
|||
IdRef::new(NSString::alloc(nil).init_str(s))
|
||||
}
|
||||
|
||||
/// Returns the number of characters in a string.
|
||||
/// (A single character may consist of multiple UTF-32 code units.
|
||||
/// This is possible when long sequences of composing characters are present)
|
||||
///
|
||||
/// Unsafe because assumes that the `string` is an `NSString` object
|
||||
pub unsafe fn ns_string_char_count(string: id) -> usize {
|
||||
let length: NSUInteger = msg_send![string, length];
|
||||
let range = NSRange {
|
||||
location: 0,
|
||||
length,
|
||||
};
|
||||
let char_count = Rc::new(Cell::new(0));
|
||||
let block = {
|
||||
let char_count = char_count.clone();
|
||||
ConcreteBlock::new(move || char_count.set(char_count.get() + 1)).copy()
|
||||
};
|
||||
let block = &*block;
|
||||
let () = msg_send![string,
|
||||
enumerateSubstringsInRange:range
|
||||
options:NSStringEnumerationByComposedCharacterSequences
|
||||
usingBlock:block
|
||||
];
|
||||
char_count.get()
|
||||
}
|
||||
|
||||
#[allow(dead_code)] // In case we want to use this function in the future
|
||||
pub unsafe fn app_name() -> Option<id> {
|
||||
let bundle: id = msg_send![class!(NSBundle), mainBundle];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue