pointer_owner: give context immediately instead of waiting for refresh
This commit is contained in:
parent
c1b2c7f17c
commit
22f1d92877
3 changed files with 9 additions and 4 deletions
|
|
@ -32,6 +32,9 @@ impl JayPointerRequestHandler for JayPointer {
|
||||||
Some(c) => c,
|
Some(c) => c,
|
||||||
_ => return Err(JayPointerError::OutOfBounds),
|
_ => return Err(JayPointerError::OutOfBounds),
|
||||||
};
|
};
|
||||||
|
if self.seat.pointer_node().and_then(|n| n.node_client_id()) != Some(self.client.id) {
|
||||||
|
self.seat.refresh_pointer_stack();
|
||||||
|
}
|
||||||
let pointer_node = match self.seat.pointer_node() {
|
let pointer_node = match self.seat.pointer_node() {
|
||||||
Some(n) => n,
|
Some(n) => n,
|
||||||
_ => {
|
_ => {
|
||||||
|
|
|
||||||
|
|
@ -926,6 +926,11 @@ impl WlSeatGlobal {
|
||||||
self.pointer_owner.select_workspace(self, selector);
|
self.pointer_owner.select_workspace(self, selector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn refresh_pointer_stack(self: &Rc<Self>) {
|
||||||
|
self.pointer_stack_modified.set(true);
|
||||||
|
self.apply_changes();
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_focus_follows_mouse(&self, focus_follows_mouse: bool) {
|
pub fn set_focus_follows_mouse(&self, focus_follows_mouse: bool) {
|
||||||
self.focus_follows_mouse.set(focus_follows_mouse);
|
self.focus_follows_mouse.set(focus_follows_mouse);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -183,11 +183,8 @@ impl PointerOwnerHolder {
|
||||||
|
|
||||||
fn select_element(&self, seat: &Rc<WlSeatGlobal>, usecase: impl SimplePointerOwnerUsecase) {
|
fn select_element(&self, seat: &Rc<WlSeatGlobal>, usecase: impl SimplePointerOwnerUsecase) {
|
||||||
self.revert_to_default(seat);
|
self.revert_to_default(seat);
|
||||||
if let Some(node) = seat.pointer_stack.borrow().last() {
|
|
||||||
usecase.node_focus(seat, node);
|
|
||||||
}
|
|
||||||
self.owner.set(Rc::new(SimplePointerOwner { usecase }));
|
self.owner.set(Rc::new(SimplePointerOwner { usecase }));
|
||||||
seat.trigger_tree_changed(false);
|
seat.refresh_pointer_stack();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn select_toplevel(&self, seat: &Rc<WlSeatGlobal>, selector: impl ToplevelSelector) {
|
pub fn select_toplevel(&self, seat: &Rc<WlSeatGlobal>, selector: impl ToplevelSelector) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue