1
0
Fork 0
forked from wry/wry

gfx: handle context change when buffer is attached to multiple surfaces

This commit is contained in:
Julian Orth 2026-02-10 18:48:47 +01:00
parent ca5cc67fa2
commit b53f40e85f
4 changed files with 40 additions and 33 deletions

View file

@ -7,6 +7,7 @@ use {
clm::{CL_CHANGED_DESTROYED, CL_CHANGED_NEW, ClMatcherChange},
},
ifs::{
wl_buffer::WlBuffer,
wl_display::WlDisplay,
wl_registry::WlRegistry,
wl_surface::{WlSurface, commit_timeline::CommitTimelines},
@ -21,6 +22,7 @@ use {
buffd::{MsgFormatter, MsgParser, MsgParserError, OutBufferSwapchain},
copyhashmap::{CopyHashMap, Locked},
errorfmt::ErrorFmt,
event_listener::EventSource,
numcell::NumCell,
pending_serial::PendingSerial,
pid_info::{PidInfo, get_pid_info, get_socket_creds},
@ -194,6 +196,7 @@ impl Clients {
changed_properties: Default::default(),
destroyed: Default::default(),
acceptor: acceptor.clone(),
gfx_ctx_changed: Default::default(),
});
track!(data, data);
global.update_capabilities(&data, bounding_caps, set_bounding_caps_for_children);
@ -321,6 +324,7 @@ pub struct Client {
pub changed_properties: Cell<ClMatcherChange>,
pub destroyed: CopyHashMap<CritMatcherId, Weak<dyn CritDestroyListener<Rc<Self>>>>,
pub acceptor: Rc<AcceptorMetadata>,
pub gfx_ctx_changed: EventSource<WlBuffer>,
}
pub const NUM_CACHED_SERIAL_RANGES: usize = 64;