Waylandで入力を受け取る
手持ちのMacだと
discrete 0 が横方向
discrete 1 が縦方向
左・上が正方向
リサイズ中にちらつく
Qtはなめらか
ゆっくり動かすとちゃんと伸縮するので、バッファをポインタが移動するたびに再生成しているのが原因か
code:input.c
void handle_configure(...) {
...
// create_window(); // mmap + wl_shm_pool_create_buffer + attach + commit
buffer = create_buffer(); // mmap + wl_shm_pool_create_buffer
}
こうすると直った
wl_data_offerは受け取る = offerされる = ペーストされるときに生成される?
wl_data_sourceはコピーするほうが生成する?
wl_data_offerとwl_data_sourceは対の関係?
copy()でUTF8_STRINGをofferしているにもかかわらず受け取ったり受け取らなかったりする
copy()を経由しない
よってdata_sourceにも代入されない
UTF8_STRINGを受け取らないときはコピーもできてない
直前にThe data_offer for the selection is no longer valid
data_source.cancelledのハンドラで、誤って新しいほうのクリップボードを消していたので、それを直したら大丈夫だった
つまりdestroyされたものからofferを引っ張ってきたということ
推測:destroyされたものについていたofferが消えて、デフォルトのcharset=utf-8のみが出ていた?
charset=utf-8を適当な文字列に変えて実験してみると、そうではなく最初に登録したofferだけが出てくるようだった
もとにもどしてもう一度動かしてみると、起動時に前の適当な文字列がもう一度出てきた
Clipboard Managerが保持していたものだと思う
data_device.selection, data_offerが1回のコピーで大量に発生する
wl_data_source_destroyは何をしているのだろう