tree: restack containing float when node is activated
This commit is contained in:
parent
d038df28f7
commit
afe2022953
4 changed files with 15 additions and 1 deletions
|
|
@ -338,6 +338,7 @@ impl<T: SimplePointerOwnerUsecase> PointerOwner for SimplePointerOwner<T> {
|
|||
node: pn.clone(),
|
||||
serial,
|
||||
}));
|
||||
pn.node_restack();
|
||||
pn.node_seat_state().add_pointer_grab(seat);
|
||||
seat.handle_node_button(pn, time_usec, button, state, serial);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,9 +94,11 @@ impl ToolOwner for DefaultToolOwner {
|
|||
if state == ToolButtonState::Released {
|
||||
return;
|
||||
}
|
||||
let node = tool.node.get();
|
||||
node.node_restack();
|
||||
let owner = Rc::new(GrabToolOwner {
|
||||
buttons: Default::default(),
|
||||
node: tool.node.get(),
|
||||
node,
|
||||
});
|
||||
tool.tool_owner.owner.set(owner.clone());
|
||||
owner.button(tool, time_usec, button, state);
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ impl TouchOwner for DefaultTouchOwner {
|
|||
fn down(&self, seat: &Rc<WlSeatGlobal>, time_usec: u64, id: i32, x: Fixed, y: Fixed) {
|
||||
let node = seat.state.node_at(x.round_down(), y.round_down());
|
||||
node.node.node_seat_state().touch_begin(seat);
|
||||
node.node.node_restack();
|
||||
let owner = Rc::new(GrabTouchOwner {
|
||||
node: node.node,
|
||||
down_ids: Default::default(),
|
||||
|
|
|
|||
|
|
@ -988,3 +988,13 @@ impl PinnedNode for FloatNode {
|
|||
self.set_workspace_(workspace, false, update_visible);
|
||||
}
|
||||
}
|
||||
|
||||
impl dyn Node {
|
||||
pub fn node_restack(self: &Rc<Self>) {
|
||||
if let Some(tl) = self.clone().node_toplevel()
|
||||
&& let Some(float) = tl.tl_data().float.get()
|
||||
{
|
||||
float.restack();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue