敗北
WSLでGdk::Cursor.new(display, name)を使うと落ちる - cobodoのブログ
Gdk::Cursor.new(display, name)との戦い2 - cobodoのブログ
の続き。
職場環境ではカーソルのサイズが64x64で描画され、しかも32x32でトリミングされるという最悪な状況に陥り、その上解決のめどが立たないため、諦めることにした。
Plugin.create(:legacy_cursor) do class Gdk::MiraclePainter < Gtk::Object private def set_cursor(name) type = case name when 'pointer' Gdk::Cursor::HAND2 when 'text' Gdk::Cursor::XTERM else Gdk::Cursor::LEFT_PTR end window = @tree.get_ancestor Gtk::Window window.window.cursor = Gdk::Cursor.new(type) self end end end
諦め、それはモンキーパッチ。
MiraclePainterはmikutter 3.8で大幅に手を入れる予定らしいことと、機能 #1203: Gdk::Cursorのインスタンスを得る方法を変更する - mikutter - やることにより他の箇所に波及することも視野に入れ、追従してメンテナンスしていく必要がある。