現在、既存のMono / C#/ GTK#アプリケーションにドラッグアンドドロップのサポートを追加しています。オブジェクトのドラッグを開始したときに、マウスポインタの下に表示されるアイコンにRGBA透明度を使用できるかどうか疑問に思いました。
これまでのところ、私は次のことに気づきました。
- メソッドを呼び出すことで、問題のビットマップを設定でき
Gtk.Drag.SourceSetIconPixbuf()
ます。ただし、アルファ透明度では運がありません。完全に不透明でないピクセルは、この方法で100%透明になります。 また、のRGBAカラーマップで使用できるようにを呼び出し
RenderPixmapAndMask()
てみました。どちらも機能しませんでした。ドラッグを開始するたびに、次のエラーが発生しました。GdkPixbuf
Gtk.Drag.SourceSetIcon()
Screen
[Gdk] IA__gdk_window_set_back_pixmap: assertion 'pixmap == NULL || gdk_drawable_get_depth (window) == gdk_drawable_get_depth (pixmap)' failed
。このように、ピックスマップはコピーされません。ドラッグすると白い図形(おそらくの
mask
引数で設定されます)のみが表示されます。SetSourceIcon()
私はそうしなかったという事実にもかかわらず、これらのアイコンにアルファ透明度を持たせる方法があるかどうか尋ねたいと思います。それが不可能な場合は、この機能がない理由を説明する回答も役立ちます。ありがとうございました。
(合成は-もちろん-私のデスクトップで有効になっています(Ubuntu / 10.10、Compiz / 0.8.6-0ubuntu9))。