buffet / kiwmi

A fully programmable Wayland Compositor
Mozilla Public License 2.0
585 stars 22 forks source link

Add set-title events for views #63

Open Uks2 opened 2 years ago

Uks2 commented 2 years ago

Outputs get events that trigger before and after all their windows get drawn.

Views get events that trigger when a window's title is changed so I can keep my status bar up to date.

ghost commented 2 years ago

If kiwmi migrates to wlr_scene, the pre/post-render events will have to be replaced (also see #60, pls comment if you can). Would you mind splitting the PR into two, or possibly only keeping the title_change? (Would need a comment from buffet on what’s preferred, yay.)

Uks2 commented 2 years ago

If kiwmi migrates to wlr_scene, the pre/post-render events will have to be replaced (also see #60, pls comment if you can)

I have no idea how the scene graph system works, so I'll keep quite on that one.

Would you mind splitting the PR into two, or possibly only keeping the title_change? (Would need a comment from buffet on what’s preferred, yay.)

Either way is fine by me. I'll wait for word from on high then do what I'm told.

ghost commented 2 years ago

I have no idea how the scene graph system works, so I'll keep quite on that one.

The main point is, instead of rendering things ourselves, we say where they should be and tell the wlr_scene to render them all for us. Therefore we can’t pop in just before/after something’s gonna render (i’m not exactly sure how it’s for outputs’ post-render), but rather say ‘draw this&this below/above this&this’.

It’s only a change in how things are achieved, and what i’m saying is, we don’t necessarily want to introduce something that would soon be replaced.

Uks2 commented 2 years ago

Okay, that makes sense.

I've just had a quick look though wlr_scene.h and it seems like you're able to create coloured rectangles and add them to you scene graph. We might be able to wrap that up in an output:draw_rect() lua function, with just an extra parameter for whether it goes above or below the windows. How you delete those rectangles is another matter though.

...or we go nuts and create a whole API for drawing on wlr_buffers. :)

I'll try to have a rummage though #50 at some point and look at what the practicalities are.

ghost commented 2 years ago

We might be able to wrap that up in an output:draw_rect() lua function, with just an extra parameter for whether it goes above or below the windows. How you delete those rectangles is another matter though.

...or we go nuts and create a whole API for drawing on wlr_buffers. :)

See https://github.com/buffet/kiwmi/issues/60#issuecomment-1162978870

Uks2 commented 2 years ago

Changed event name, removed pre- and post-render events and rebased on top of the scene graph changes