Skip to content

configurable: add Configurable#949

Draft
mahkoh wants to merge 8 commits into
masterfrom
jorth/configurable
Draft

configurable: add Configurable#949
mahkoh wants to merge 8 commits into
masterfrom
jorth/configurable

Conversation

@mahkoh
Copy link
Copy Markdown
Owner

@mahkoh mahkoh commented May 17, 2026

No description provided.

Copilot AI review requested due to automatic review settings May 17, 2026 10:49
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a generic configurable scheduling path to coalesce and flush configure events across several surface-like objects in the compositor.

Changes:

  • Introduces Configurable, ConfigureGroups, and async commit/apply handlers.
  • Migrates xdg surfaces, layer surfaces, tray items, and session lock surfaces to scheduled configure delivery.
  • Adds a reusable Size type and async stack helper utilities.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/configurable.rs Adds grouped configure scheduling and flushing infrastructure.
src/compositor.rs Registers configurable commit/apply handlers and initializes configure groups.
src/state.rs Stores configure groups and exposes schedule_configure.
src/utils/stack.rs Adds swap support and AsyncStack.
src/rect.rs Re-exports Size and adds Rect::size2.
src/rect/size.rs Adds non-negative size wrapper.
src/main.rs Registers the new module.
src/ifs/wl_surface/xdg_surface.rs Converts xdg configure delivery to Configurable.
src/ifs/wl_surface/xdg_surface/xdg_toplevel.rs Captures toplevel configure data for delayed flushing.
src/ifs/wl_surface/xdg_surface/xdg_popup.rs Captures popup configure/reposition data for delayed flushing.
src/ifs/wl_surface/zwlr_layer_surface_v1.rs Schedules layer-surface configures except for immediate-configure quirks.
src/ifs/wl_surface/tray.rs Converts tray item configure flow to scheduled configures.
src/ifs/wl_surface/tray/jay_tray_item_v1.rs Implements configurable flushing for tray items.
src/ifs/wl_surface/ext_session_lock_surface_v1.rs Schedules lock-surface configures.
src/ifs/ext_session_lock_v1.rs Initializes lock-surface configurable data.
src/tree/output.rs Adjusts tray configure calls for Rc receiver.
src/ifs/zxdg_toplevel_decoration_v1.rs Uses scheduled xdg configure after decoration mode changes.
src/ifs/zwlr_layer_shell_v1.rs Removes obsolete dead-code expectation.
src/bugs.rs Removes obsolete dead-code expectation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/configurable.rs
Comment thread src/ifs/wl_surface/xdg_surface/xdg_popup.rs
if let Some(node) = data.output.node() {
node.update_tray_positions();
}
data.destroyed.set(true);
@mahkoh mahkoh marked this pull request as draft May 17, 2026 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants