baumgarr / nixnote2

Nixnote - A clone of Evernote for Linux
http://www.nixnote.org
Other
1.11k stars 158 forks source link

"QXcbClipboard: SelectionRequest too old" when using input method #205

Closed hosiet closed 7 years ago

hosiet commented 8 years ago

When using fcitx (an input method, together with plamsa-addons-kimpanel) together with NixNote2 (2.0-beta9, Qt5) and type CJK characters, stderr keep showing the warning message every time the user types on the keyboard and make the input method react slowly:

QXcbClipboard: SelectionRequest too old

Not sure what caused this problem, looks like a nixnote2-side bug since the problem only happens when using nixnote2. I would open this issue to track it.

update: only happens when using KDE5 + fcitx + kimpanel + nixnote2. Looks weird, I will track this problem in both fcitx side and nixnote2 side.

baumgarr commented 7 years ago

I don't support Qt5 yet. Do you have this issue with Qt4?

hosiet commented 7 years ago

Yes, the problem exists in Qt4 version.

P.S. The "QXcbClibboard" info will not show in stderr when built against Qt4, but the slowdown still exists. After some investigations, I found that the typed characters would automatically enter X Clipboard (under KDE the clipboard history is available through Klipper) under both Qt4 and Qt5 version.

baumgarr commented 7 years ago

I don't think this is a NixNote bug. I've found a couple of other references to this with fcitx, but maybe it is something odd that NixNote is doing. You mentioned that the clipboard is being updated on each input, so that is as good of a place to start as any.

You can try pulling down the latest source & recompiling it to see if you still have the problem. I made some changes so I don't keep a static pointer to the clipboard, so maybe that helps. I doubt it will change anything, but it is worth a shot.

If that does't work you can try changing the message level to trace and putting some "QLOG_TRACE_IN() << typeid(this).name();" and "QLOG_TRACE_OUT() << typeid(this).name();" in the event loops in nixnote.cpp & nwebview.cpp. This will probably produce a ton of output, but it is slowing down I'm guessing those two places are the most likely culprit.

baumgarr commented 7 years ago

No response. Closing.