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(),
|
node: pn.clone(),
|
||||||
serial,
|
serial,
|
||||||
}));
|
}));
|
||||||
|
pn.node_restack();
|
||||||
pn.node_seat_state().add_pointer_grab(seat);
|
pn.node_seat_state().add_pointer_grab(seat);
|
||||||
seat.handle_node_button(pn, time_usec, button, state, serial);
|
seat.handle_node_button(pn, time_usec, button, state, serial);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,9 +94,11 @@ impl ToolOwner for DefaultToolOwner {
|
||||||
if state == ToolButtonState::Released {
|
if state == ToolButtonState::Released {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let node = tool.node.get();
|
||||||
|
node.node_restack();
|
||||||
let owner = Rc::new(GrabToolOwner {
|
let owner = Rc::new(GrabToolOwner {
|
||||||
buttons: Default::default(),
|
buttons: Default::default(),
|
||||||
node: tool.node.get(),
|
node,
|
||||||
});
|
});
|
||||||
tool.tool_owner.owner.set(owner.clone());
|
tool.tool_owner.owner.set(owner.clone());
|
||||||
owner.button(tool, time_usec, button, state);
|
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) {
|
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());
|
let node = seat.state.node_at(x.round_down(), y.round_down());
|
||||||
node.node.node_seat_state().touch_begin(seat);
|
node.node.node_seat_state().touch_begin(seat);
|
||||||
|
node.node.node_restack();
|
||||||
let owner = Rc::new(GrabTouchOwner {
|
let owner = Rc::new(GrabTouchOwner {
|
||||||
node: node.node,
|
node: node.node,
|
||||||
down_ids: Default::default(),
|
down_ids: Default::default(),
|
||||||
|
|
|
||||||
|
|
@ -988,3 +988,13 @@ impl PinnedNode for FloatNode {
|
||||||
self.set_workspace_(workspace, false, update_visible);
|
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