xcb を使用してウィンドウの疑似透過性を説明したい (ウィンドウの背景にルート ウィンドウのピックスマップの一部をコピーする)
そのために、私は以下を使用します:
ルート pixmap は feh で設定され、プログラムを起動します (コードの一部):
->接続の初期化:
xcb_connect()
-> ウィンドウを作成します。
xcb_create_window()
xcb_create_pixmap( connection,screen->root_depth, pixmap, screen->root, width, height)
xcb_create_gc( connection, graphic_context, pixmap, XCB_GC_FOREGROUND | XCB_GC_BACKGROUND, gc_values_mask)
xcb_map_window
-> xcb イベントを取得:
xcb_wait_for_event
-> map_request_event (ウィンドウのリクエストの場合) または property_notify (変更されたプロパティが feh 経由のルート ピックスマップの場合) への応答:
ルート ピックスマップを取得します。
xcb_get_property / xcb_get_property_reply / xcb_get_property_value
==> this works
ルート ピックスマップの一部をウィンドウ ピックスマップにコピーします。
xcb_copy_area_checked(backbone.connection,
rootpix,
pixmap,
graphic_context,
x, y,
0, 0,
width, height)
xcb_request_check を使用していますが、この最後のリクエストにはエラーがないようです。
次に、カイロを使用してウィンドウに要素を描画します。
問題は、要素がカイロによって描画された白いウィンドウが表示されることです。カイロ要素がなくても、ウィンドウのコピーされたピックスマップを表示できません。
私を助けるアイデアはありますか?ありがとう