keshavbhatt / whatsie

Feature rich WhatsApp Client for Desktop Linux
MIT License
1.98k stars 59 forks source link

fix: fix spell checker #199

Closed cesar19004 closed 1 month ago

cesar19004 commented 2 months ago

Whatsie resolves the dictionaries path at runtime, but Qt WebEngine has its own way to resolve the dictionaries path using QTWEBENGINE_DICTIONARIES_PATH.

If QTWEBENGINE_DICTIONARIES_PATH is set, the spellchecker uses the dictionaries in the specified directory without looking anywere else. Otherwise, it uses the qtwebengine_dictionaries directory relative to the executable if it exists. If it does not exist, it will look in QT_INSTALL_PREFIX/qtwebengine_dictionaries.

This might lead to Qt WebEngine not finding dictionaries or having different dictionaries than Whatsie.

An example would be if Whatsie found the right path and Qt WebEngine did not; the dictionaries would show in settings, but the spell checker would not work, as described in #78 and #79.

To avoid that scenario, this PR sets QTWEBENGINE_DICTIONARIES_PATH to the path resolved by dictionaries.cpp.

So, this PR should fix #78 and fix #79.

156 and the comments in 90210de might be related to the QTWEBENGINE_DICTIONARIES_PATH env var being set at the system level to a wrong or empty directory.