2017-10-26 18 views
0

VNCクライアント(gtk-vnc)からホストへ/からのクリップボードを共有するgtkmmアプリケーションがあります。参考のため は、ここに関連するコードは次のとおりです。WindowsでのGtkmmクリップボードのテキストが正しくありません

signal_vnc_server_cut_text().connect([this](const Glib::ustring &text) { 
    auto clipboard = Gtk::Clipboard::get(); 
    m_clipboard_text = text; 
    /* Works correctly on Windows and Linux */ 
    clipboard->set_text(text); 
    clipboard->store(); 
}); 
Gtk::Clipboard::get()->signal_owner_change().connect([this](GdkEventOwnerChange *) { 
    auto clipboard = Gtk::Clipboard::get(); 
    auto text = clipboard->wait_for_text(); 
    /* text is correct on Linux, but see below for Windows */ 
    std::cout << "Clipboard got: " << text << std::endl; 
    if (!text.empty() && text != m_clipboard_text) 
     client_cut_text(text); 
}); 

Linuxホスト上で期待通りに現在のコードは、(両方の方向をコピーして貼り付けることができます)動作します。しかし、Windowsでは、ホストからコピーしようとするたびに、wait_for_text()は、アプリケーションの起動時にコピーバッファにあるテキストを返します。 Windows上のクライアントからコピーすると正しいテキストが得られますが、ホスト上に貼り付けることはできますが、ホストから再度コピーすると、クリップボードのデータは最初から何にあってもリセットされます。

私に何かが見つからないのですか、これはGtkのバグですか?

答えて

0

私はいくつかの掘削をしたし、これは特にこのバグ修正に関連する、GTKのバグのように見えるん: https://bugzilla.gnome.org/show_bug.cgi?id=781814

は、変更を元に戻すか、前にこのパッチ解決さへの動作をエミュレートするカスタムバージョンをwait_for_text交換クリップボードの奇妙さ。

関連する問題