Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lỗi khi nhập ký tự đặc biệt #34

Closed
freelancer-nguyen opened this issue Jun 11, 2023 · 6 comments
Closed

Lỗi khi nhập ký tự đặc biệt #34

freelancer-nguyen opened this issue Jun 11, 2023 · 6 comments

Comments

@freelancer-nguyen
Copy link
Contributor

Chào @tulequ ,

Trên bàn phím của mình có một số phím với ký tự đặc biệt, ví dụ như ç £ µ

Khi dùng những phím trên thì unikey báo lỗi (có vẻ trong phần code wasm)

Mình có cho thêm unit test sau để tạo lại lỗi

	`it('special characters', function() {
		txtCommitted = '';
		txtComposition = '';

		var engine = 'unikey-telex';
		var c = new crxuk.ChromeUnikey(fakeChrome, libunikey);
		c.onActivate(engine);

		c.onFocus({contextID: 1});

		sendKeys(c, engine, 'ç');
		sendKeys(c, engine, '€');
		sendKeys(c, engine, '£');
		sendKeys(c, engine, 'µ');
	});`

Khi chạy make test thì có output
Aborted(Assertion failed: Exception thrown, but exception catching is not enabled. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch.)

Hy vọng bạn có ý tưởng để sửa, hoặc định hướng cho mình để tìm thêm. Xin cảm ơn

@freelancer-nguyen
Copy link
Contributor Author

@tulequ , mình mày mò thêm 1 chút. Có lẽ vấn đề nằm ở trong libunikey
Mình sửa unikey.h & unikey.cpp để chuyển
void process(unsigned char c);
thành
void process(unsigned int c);

Sau đó adapt embind.cpp => không còn bị lỗi nữa

Mình submit pullrequest cho bạn review nhé?

@tulequ
Copy link
Contributor

tulequ commented Jun 13, 2023

vâng bạn, cứ submit, rảnh mình xem

@freelancer-nguyen
Copy link
Contributor Author

OK, mình gửi 2 pull request nhé

  1. Support wide characters as input for processing libunikey#1
  2. Wide character support #35

@tulequ
Copy link
Contributor

tulequ commented Jun 18, 2023

mình thấy rất tốt đó
nhưng khi tạo PR, mình nên tạo riêng 2 cái nếu là 2 thứ khác nhau

bạn commit lại với HEAD của libunikey nhé (do git submodule)

mà chỗ "layouts": ["fr::fra"]
có thể dùng chung 1 cái duy nhất là "layouts": ["en", "fr::fra"] không nhỉ?

@freelancer-nguyen
Copy link
Contributor Author

Cám ơn @tulequ ,
"bạn commit lại với HEAD của libunikey nhé (do git submodule)"

Mình nghĩ là mình hiểu phải làm gì : mình phải point chrome-unikey đên HEAD của libunikey (bạn đã merge vn-input/libunikey#1 của mình)

"mà chỗ "layouts": ["fr::fra"]
có thể dùng chung 1 cái duy nhất là "layouts": ["en", "fr::fra"] không nhỉ?"
Mình sẽ test thử xem

Từ hơn 1 tuần nay mình dùng bản unpacked, thấy rất ổn định, không còn bị error vặt nữa!

@freelancer-nguyen
Copy link
Contributor Author

@tulequ ,
Mình gửi lại PR #36

Về layouts trong manifest.json, mình có thử nhưng không OK. Khi đọc lại documentation của google thì có nói rõ

Note that ChromeOS only supports one layout per input method. If multiple layouts are specified, selection order is undefined. Extensions are therefore strongly encouraged to only specify one layout per input method.

tulequ pushed a commit that referenced this issue Jun 18, 2023
* Adapt to change in signatures of SimpleUnikey

* Small precision in value of layouts

* submodule update

---------

Co-authored-by: ta <tanhnhi@gmail.com>
@tulequ tulequ closed this as completed Jun 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants