Am 28.03.2024 um 10:44 schrieb pdv <pdvissch...@edpnet.be>: > > This contains a report on an issue discussed in > https://www.lyx.org/trac/ticket/12641. I have also looked at it and this is > my conclusion. At this time the only feasible partial remedy I see would be > to switch IM on/off depending on the language input selected by the user. > This would solve the problem for roman languages and limit it to asian > languages. Of course it would be better if qt6's switch of behaviour was > reversed. > If there are no objections I would like to send the following to a relevant > qt-forum. > > pdv
Hi Patrick, I’d be more than happy if you’ll do this. Thank you. Stephan > ==================== > > Since qt commit https://github.com/qt/qtbase/commit/9e1875483ceaf90 the > handling of some short cuts by LyX (https://www.lyx.org/) on macos doesn't > work anymore. > > In that commit the default handling of key events was reversed. Before this > commit key events were send for all key presses unless they were handled by > the "input method" (IM) system primarely used by complex (asian) languages. > After this commit. IM became the default system and key events are only send > in 2 cases: simple text and commands involving a single modifier key. In a > later commit a cancel operation was added as a third exception. The only way > to revert to the former behaviour is to switch IM off by setting > WA_InputMethodEnabled=false. > > Before this change of behaviour LyX could deal with both systems with the IM > switched on by default. After the switch the issuing of commands involving 2 > modifier keys (e.g. ^CmdE to switch emphasis) did no longer work. > > A very similar problem was reported in QTBUG-106516 and contains this > comment, by Tor Arne Vestbø: > > "... Input methods should only be enabled for controls that are doing "text > input", where you want the text input system of the OS to play a part (for > example in composing characters for languages like Korean or Japanese). In > your case you are not doing text input, you are processing "raw" key events, > so disabling IM makes sense, including on Windows and Linux." > > Since the user might input asian language text, switching the IM off is not a > solution. LyX could switch IM on or off depending on the keyboad input chosen > by the user (asian or roman). This would solve the problem for roman > languages but not for asian languages. After all I suppose that al least some > 2-modifier commands also make sense for an asian language. > > The question arises why the behaviour of qt has been reversed. This was to > remedy QTDEBUG-46300. AquaSKK is an IM to input Japanese and it uses ^I to > switch the language on/off. In other words when inputting japanese characters > AquaSKK still expects that ^I is handled regularly, and therefore the > behaviour was reversed. (of course AquaSKK could easily have filtered out > this one command). But the change was justified as follows: > > "... The reason for this is that Qt's IM protocol was designed to handle > composited text, so sending non-composited (but IM-initiated) text input as > IM events is unexpected" > > Fair enough, but I suppose that commands involving 2 modifier keys (or even > more) also fall in this category and should also be handled as oridinary key > events and not by the IM. But this may just be the beginning of an endless > list of exceptions. > Was this reversion really the best possible solution for handling the initial > bug? > > Sources and references: > > qt commits > > https://github.com/qt/qtbase/commit/9e1875483ceaf90 > https://github.com/qt/qtbase/commit/60caec953f76b1c63ff526c84cc968b5f83eabdf > https://github.com/qt/qtbase/commit/57e99441102f96dd0180a6ead84d8e8b3bd6b6f0 > > qt bug reports > > https://bugreports.qt.io/browse/QTBUG-46300 > https://bugreports.qt.io/browse/QTBUG-71394 > https://bugreports.qt.io/browse/QTBUG-106516 > > ================= > > -- > lyx-devel mailing list > lyx-devel@lists.lyx.org > http://lists.lyx.org/mailman/listinfo/lyx-devel -- lyx-devel mailing list lyx-devel@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-devel