teni-ime / ibus-teni

Bộ gõ tiếng Việt cho Linux chạy trên IBus
https://www.facebook.com/teni.ime
GNU General Public License v3.0
7 stars 0 forks source link

Lỗi dịch chuyển con trỏ, chèn ký tự, khi gõ thiếu dấu space ở cuối từ, rồi di chuyển trỏ (bằng mouse) đến vị trí khác. #21

Closed rinleit closed 6 years ago

rinleit commented 6 years ago

Mình hay gặp lỗi này khi muốn fix lỗi những từ sai trước đó trong câu mình viết.

Ví dụ mình muốn viết câu : Anh_yêuem ( : dấu cách (space))

Thường thì sau mỗi từ, ngta thường bấm dấu cách, nhưng nếu ví dụ mình đang gõ: An_yêu_em| Con trỏ đang ở cuối từ em, và mình muốn fix lỗi từ An -> Anh mình gõ sai trước đó, mình di chuyển về ngay cuối từ An| thì lỗi sẽ xảy ra. Có thể vần em sẽ chèn vào thành Anem hoặc có lúc bị delay hoặc đơ luôn không gõ được nữa.

Mình nghĩ là có lỗi nào đó trong cơ chế bung buffer ký tự khi gõ, mà thiếu dấu space ở cuối ký tự.

Hi vọng các bạn sớm fix :D Cám ơn các bạn đã tạo bộ gõ tiếng Việt tốt trên nền tảng Linux!

openhoangnc commented 6 years ago

@rinleit cảm ơn bạn đã tạo issue

Vấn đề này là chữ chưa được commit mà đã click chuột đi chỗ khác trong cùng một "text input control". IBus không phát sinh event nào để xử lý trường hợp này.

Bạn có thể tránh lỗi này bằng cách chủ động commit trước khi click chuột đi chỗ khác, bằng một trong các phím Ctrl/Tab/F1~F12/...

Vấn đề này liên quan đến cơ chế xử lý tín hiệu bất đồng bộ từ x11 cho đến ibus, kéo theo tất cả bộ gõ dùng ibus đều không tránh khỏi.

Mình đã tìm hiểu ibus-unikey thì thấy bộ gõ đó bắt event mouse-move của x11, khi đang gõ mà di chuyển con trỏ chuột thì sẽ commit luôn, chính tác giả ibus-unikey cũng cho rằng đây là trick không nên xài.

Tạm thời vấn đề này chưa có giải pháp, đến khi nào có thông tin thêm mình sẽ comment.

vimaxwell commented 6 years ago

mình theo dõi thấy bên ibus đang fix bug này, https://github.com/ibus/ibus/issues/1980. Nếu được nhờ @openhoangnc kiểm tra lại với bộ gõ teni với bản fix của họ và feedback với họ nữa.