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

Unexpected message sent to recipient when typing Enter in IME composing mode #1899

Closed
ghost opened this issue Sep 6, 2021 · 6 comments · Fixed by #1909
Closed

Unexpected message sent to recipient when typing Enter in IME composing mode #1899

ghost opened this issue Sep 6, 2021 · 6 comments · Fixed by #1909

Comments

@ghost
Copy link

ghost commented Sep 6, 2021

Describe the bug
When using some Asian input method editor, the Enter key has a special usage during composing.
Session sends messages unexpectedly without taking consideration of this specific case.

To Reproduce

  1. Open Keyboard Preference on Mac, add Chinese Pinyin IME
  2. Focus on composing box of Session
  3. Enable Chinese Pinyin IME by typing Ctrl+_SPACE_
  4. type some long and non sense characters, for example: thisdoesnotexists
  5. The precomposed string shown on the IME typing panel is this do e s no te xi t s, there are some spaces because Chinese IME implements grouping on input key sequence.
  6. Type enter

Expect result: The IME should commit the ungrouped raw key sequence thisdoesnotexists into the session composing input box. No message should be sent to the recepient.

Actual result: The IME does commit the ungrouped raw key sequence thisdoesnotexists into the session composing input box, however, the grouped precomposed string this do e s no te xi t s are sent to the recepient.

Screenshots or Logs
If applicable, add screenshots or log files to help explain your problem.

Other information (please complete the following information):
I have a proof of concept patch using event.isComping, I'm still building my Session in order to validate whether the patch works.

  • Device: [Mac]
  • OS: [macOS Big Sur 11.4]
  • Session Version or Git commit hash:
    v1.7.0
@ghost
Copy link
Author

ghost commented Sep 6, 2021

Screen Shot 2021-09-06 at 5 07 26 pm

Screen Shot 2021-09-06 at 5 07 34 pm

@ghost
Copy link
Author

ghost commented Sep 6, 2021

0001-Don-t-sent-message-in-IME-composing-mode.txt

Not tested yet, still waiting for build result, will be back.

@ghost
Copy link
Author

ghost commented Sep 6, 2021

0001-Don-t-sent-message-in-IME-composing-mode.txt

Not tested yet, still waiting for build result, will be back.

Unfortunately, the patch doesn't work for me, I have no idea what's wrong yet.

@ghost
Copy link
Author

ghost commented Sep 6, 2021

0001-Don-t-sent-message-in-IME-composing-mode.v2.txt

It turns out that the event in used is a React SyntheticKeyboardEvent which does not contain isComposing:
facebook/react#13104

This updated version use nativeEvent which works for me.

I guess it fixes #1497 as well.

Let me know if you'd like a pull request.

Cheers.

@ghost ghost changed the title Unexpected message sent in IME composing mode Unexpected message sent to recipient when typing Enter in IME composing mode Sep 6, 2021
@ghost
Copy link
Author

ghost commented Sep 14, 2021

Dear team, any further help I can provide to move forward? There's a patch in the previous comment, it would be nice to have some feedback.

I'm in the Session open group to help anyone reproduce the bug.

Thanks!

Bilb added a commit to Bilb/session-desktop that referenced this issue Sep 14, 2021
@Bilb
Copy link
Collaborator

Bilb commented Sep 14, 2021

Thanks for the changes. I cannot reproduce the issue but it does not break anything on my side.
If that fixes the issue for you, that's fine by me.

Bilb added a commit that referenced this issue Sep 14, 2021
Bilb added a commit that referenced this issue Sep 16, 2021
* disable sending on enter while composing

Fixes #1899 #1497

* ask confirmation before deleting account

* move drafts outside of redux to speedup body message writing
Bilb added a commit that referenced this issue Sep 16, 2021
* disable sending on enter while composing

Fixes #1899 #1497

* ask confirmation before deleting account

* fix app start delete db when passowrd error

* fix double dialog issue with delete account

* fixup login screen
Bilb added a commit that referenced this issue Sep 16, 2021
* disable sending on enter while composing

Fixes #1899 #1497

* ask confirmation before deleting account

* fix app start delete db when passowrd error

* fix double dialog issue with delete account

* fixup login screen

* Fix video autoplay start when not initialized

Relates #1904
Bilb added a commit that referenced this issue Sep 20, 2021
* Keep line breaks when message has some new lines

Relates #1758 and #1898 and #1901

* Fix path building (#1903)

* Keep line breaks when message has some new lines

Relates #1758 and #1898 and #1901

* fix link preview cropped when received

* make sure we fetch from seed if we end up with not enough snodes

* try to download recent previews if we just trusted a user

* throw if we need to rebuild path while fetching snode list from snode

* fixup no refecthing of snode list while we are fetching them already

* added test for fetch from db or seed

* fetch snode list from snode every hour

also make sure the path building does not try to get more snodes. It
just throws

* do not drop a path if an opengroup room is down and we get errors  back

* do not throw an error if the snode in error in not in any path

* fix tests

* bump to v1.7.11

* disable sending on enter while composing (#1909)

Fixes #1899 #1497

* Speedup body update composition box (#1911)

* disable sending on enter while composing

Fixes #1899 #1497

* ask confirmation before deleting account

* move drafts outside of redux to speedup body message writing

* Ask confirm before delete account (#1910)

* disable sending on enter while composing

Fixes #1899 #1497

* ask confirmation before deleting account

* fix app start delete db when passowrd error

* fix double dialog issue with delete account

* fixup login screen

* use timestamp offset in for messages storage requests (#1892)

* add using timestamp offset from network for sending part1

* remove MessageController as we now rely on the database

* fix tests for message sending overriding timestamp

* Fix today for translated date break (#1915)

* add using timestamp offset from network for sending part1

* remove MessageController as we now rely on the database

* fix tests for message sending overriding timestamp

* Fixs date break translations of today etc

Relates #1913

* Fix video play lightbox autostart (#1920)

* disable sending on enter while composing

Fixes #1899 #1497

* ask confirmation before deleting account

* fix app start delete db when passowrd error

* fix double dialog issue with delete account

* fixup login screen

* Fix video autoplay start when not initialized

Relates #1904

* do not overwrite sent_at with network time for synced messages (#1921)

* do not update sent_at for synced messages

* reply to message context menu only visible if msg sent

* Out of sync message sync (#1923)

* do not update sent_at for synced messages

* reply to message context menu only visible if msg sent

* Allow scrolling in mentioning people in composition box

Relates #1849

* Fix select colors for sent messages and link text not selectable (#1924)

* do not update sent_at for synced messages

* reply to message context menu only visible if msg sent

* Allow scrolling in mentioning people in composition box

Relates #1849

* fix selection colors for sent messages and make link selectable

Relates #1922

* Cleanup redux store (#1925)

* do not consider expire timer update unread messages #1881

* cleanup conversation props in redux to only have what cannot be derived

* fix app not starting without the await on convo creation

* cleanup props of message model

* Unsend messages (only message hashes saving for now is enabled) (#1891)

* WIP unsending message.

* retrieving message with hash from db on receiving unsend request.

* outgoing messages hashes updated on message sent success

* unsend messaging

* unsend message - deleting messages and marking as isDeleted.

* add msg hash to unprocessed records.

* Message unsending working for closed groups provided the message has been updated with a hash from server.

* adding 2-stage confirmation modal for message deletion

* adding rendering of removed incoming messages, disabling rendering of unsent outgoing messages in coversation screen.

* Adding logging

* debugging.

* outgoing only saved for sync message instead of regular message.

* deleting locally

* adding post unsend deletioncode.

* starting adding feature flag.

* Added feature flag.

* addding mandatory messageHash  pollling pipeline methods swarm polling.

* Conversation list item message preview showing deletion placeholder text if deleted.

* add condition to drop unsend requests not send by message author

* refactoring deleteMessage. Saving response hash for closed group message sending

* running yarn ready

* removing logging.

* Adding PR fixes

* Minor changes and running yarn ready

* fix typo

* Moved feature flag to lokiFeatureFlags. Fixing linting errors


Co-authored-by: Audric Ackermann <[email protected]>

* fix reply for incoming messages (#1930)

* bump to 1.7.2 (#1926)

* do not consider expire timer update unread messages #1881

* cleanup conversation props in redux to only have what cannot be derived

* fix app not starting without the await on convo creation

* cleanup props of message model

* bump to 1.7.2

* Session 1.7.1 (#1908) (#1931)

* Keep line breaks when message has some new lines

Relates #1758 and #1898 and #1901

* Fix path building (#1903)

* Keep line breaks when message has some new lines

Relates #1758 and #1898 and #1901

* fix link preview cropped when received

* make sure we fetch from seed if we end up with not enough snodes

* try to download recent previews if we just trusted a user

* throw if we need to rebuild path while fetching snode list from snode

* fixup no refecthing of snode list while we are fetching them already

* added test for fetch from db or seed

* fetch snode list from snode every hour

also make sure the path building does not try to get more snodes. It
just throws

* do not drop a path if an opengroup room is down and we get errors  back

* do not throw an error if the snode in error in not in any path

* fix tests

* bump to v1.7.11

* disable unsend request on the UI for now (#1934)

* disable unsend request on the UI too

* do not stop propagation of events for message ctx menu

Co-authored-by: Warrick <[email protected]>
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

Successfully merging a pull request may close this issue.

1 participant