all: fetch current time only once per iteration
This commit is contained in:
parent
d8d6be1ef3
commit
bb9e6ba3b5
21 changed files with 99 additions and 97 deletions
|
|
@ -5,7 +5,6 @@ use {
|
|||
ifs::ext_idle_notification_v1::ExtIdleNotificationV1,
|
||||
leaks::Tracker,
|
||||
object::{Object, Version},
|
||||
time::now_usec,
|
||||
utils::errorfmt::ErrorFmt,
|
||||
wire::{ext_idle_notifier_v1::*, ExtIdleNotifierV1Id},
|
||||
},
|
||||
|
|
@ -81,7 +80,7 @@ impl ExtIdleNotifierV1RequestHandler for ExtIdleNotifierV1 {
|
|||
|
||||
async fn run(n: Rc<ExtIdleNotificationV1>) {
|
||||
loop {
|
||||
let now = now_usec();
|
||||
let now = n.client.state.now_usec();
|
||||
let elapsed = now.saturating_sub(n.seat.last_input());
|
||||
if elapsed < n.duration_usec {
|
||||
let res = n
|
||||
|
|
|
|||
|
|
@ -68,7 +68,6 @@ use {
|
|||
object::{Object, Version},
|
||||
rect::Rect,
|
||||
state::{DeviceHandlerData, State},
|
||||
time::now_usec,
|
||||
tree::{
|
||||
generic_node_visitor, ContainerNode, ContainerSplit, Direction, FoundNode, Node,
|
||||
OutputNode, ToplevelNode, WorkspaceNode,
|
||||
|
|
@ -245,7 +244,7 @@ impl WlSeatGlobal {
|
|||
changes: NumCell::new(CHANGE_CURSOR_MOVED | CHANGE_TREE),
|
||||
constraint: Default::default(),
|
||||
idle_notifications: Default::default(),
|
||||
last_input_usec: Cell::new(now_usec()),
|
||||
last_input_usec: Cell::new(state.now_usec()),
|
||||
wlr_data_devices: Default::default(),
|
||||
text_inputs: Default::default(),
|
||||
text_input: Default::default(),
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
use {
|
||||
crate::{
|
||||
fixed::Fixed, ifs::wl_seat::WlSeatGlobal, time::now_usec, tree::Node,
|
||||
utils::clonecell::CloneCell,
|
||||
},
|
||||
crate::{fixed::Fixed, ifs::wl_seat::WlSeatGlobal, tree::Node, utils::clonecell::CloneCell},
|
||||
std::rc::Rc,
|
||||
};
|
||||
|
||||
|
|
@ -179,7 +176,7 @@ struct SwipeGesture {
|
|||
|
||||
impl GestureOwner for SwipeGesture {
|
||||
fn revert_to_default(&self, seat: &Rc<WlSeatGlobal>) {
|
||||
self.swipe_end(seat, now_usec(), true);
|
||||
self.swipe_end(seat, seat.state.now_usec(), true);
|
||||
}
|
||||
|
||||
fn swipe_update(&self, seat: &Rc<WlSeatGlobal>, time_usec: u64, dx: Fixed, dy: Fixed) {
|
||||
|
|
@ -199,7 +196,7 @@ struct PinchGesture {
|
|||
|
||||
impl GestureOwner for PinchGesture {
|
||||
fn revert_to_default(&self, seat: &Rc<WlSeatGlobal>) {
|
||||
self.pinch_end(seat, now_usec(), true);
|
||||
self.pinch_end(seat, seat.state.now_usec(), true);
|
||||
}
|
||||
|
||||
fn pinch_update(
|
||||
|
|
@ -228,7 +225,7 @@ struct HoldGesture {
|
|||
|
||||
impl GestureOwner for HoldGesture {
|
||||
fn revert_to_default(&self, seat: &Rc<WlSeatGlobal>) {
|
||||
self.hold_end(seat, now_usec(), true);
|
||||
self.hold_end(seat, seat.state.now_usec(), true);
|
||||
}
|
||||
|
||||
fn hold_end(&self, seat: &Rc<WlSeatGlobal>, time_usec: u64, cancelled: bool) {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ use {
|
|||
wl_surface::WlSurface,
|
||||
},
|
||||
object::Version,
|
||||
time::now_usec,
|
||||
tree::{FoundNode, Node},
|
||||
utils::{
|
||||
bindings::PerClientBindings, clonecell::CloneCell, copyhashmap::CopyHashMap,
|
||||
|
|
@ -328,7 +327,7 @@ impl WlSeatGlobal {
|
|||
return;
|
||||
};
|
||||
for tool in tablet.tools.lock().drain_values() {
|
||||
self.tablet_handle_remove_tool(now_usec(), tool.id);
|
||||
self.tablet_handle_remove_tool(tablet.seat.state.now_usec(), tool.id);
|
||||
}
|
||||
for pad in tablet.pads.lock().drain_values() {
|
||||
pad.pad_owner.destroy(&pad);
|
||||
|
|
@ -366,7 +365,7 @@ impl WlSeatGlobal {
|
|||
if self.tablet.tools.is_empty() {
|
||||
return;
|
||||
}
|
||||
let now = now_usec();
|
||||
let now = self.state.now_usec();
|
||||
for tool in self.tablet.tools.lock().values() {
|
||||
tool.tool_owner.apply_changes(tool, now, None);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ use {
|
|||
},
|
||||
wl_surface::WlSurface,
|
||||
},
|
||||
time::{now_usec, usec_to_msec},
|
||||
time::usec_to_msec,
|
||||
utils::{clonecell::CloneCell, hash_map_ext::HashMapExt},
|
||||
},
|
||||
std::{cell::Cell, rc::Rc},
|
||||
|
|
@ -192,7 +192,7 @@ impl TabletPad {
|
|||
|
||||
pub fn surface_enter(self: &Rc<Self>, n: &WlSurface) {
|
||||
let mut serial = n.client.pending_serial();
|
||||
let time = usec_to_msec(now_usec());
|
||||
let time = n.client.state.now_msec() as u32;
|
||||
self.for_each_pair(n, |tablet, pad| {
|
||||
pad.send_enter(serial.get(), &tablet, n);
|
||||
for group in &self.groups {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
use {
|
||||
crate::{
|
||||
ifs::wl_seat::tablet::{PadButtonState, TabletPad},
|
||||
time::now_usec,
|
||||
tree::Node,
|
||||
utils::{clonecell::CloneCell, smallmap::SmallMap},
|
||||
},
|
||||
|
|
@ -42,7 +41,9 @@ impl PadOwnerHolder {
|
|||
}
|
||||
|
||||
pub fn destroy(&self, pad: &Rc<TabletPad>) {
|
||||
self.owner.get().revert_to_default(pad, now_usec());
|
||||
self.owner
|
||||
.get()
|
||||
.revert_to_default(pad, pad.seat.state.now_usec());
|
||||
let prev = pad.node.set(pad.seat.state.root.clone());
|
||||
prev.node_on_tablet_pad_leave(pad);
|
||||
prev.node_seat_state().remove_tablet_pad_focus(pad);
|
||||
|
|
@ -53,7 +54,9 @@ impl PadOwnerHolder {
|
|||
}
|
||||
|
||||
pub fn focus_root(&self, pad: &Rc<TabletPad>) {
|
||||
self.owner.get().revert_to_default(pad, now_usec());
|
||||
self.owner
|
||||
.get()
|
||||
.revert_to_default(pad, pad.seat.state.now_usec());
|
||||
let node = pad.seat.state.root.clone();
|
||||
pad.focus_node(node);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use {
|
|||
crate::{
|
||||
fixed::Fixed,
|
||||
ifs::wl_seat::tablet::{TabletTool, TabletToolChanges, ToolButtonState},
|
||||
time::now_usec,
|
||||
tree::{FindTreeUsecase, FoundNode, Node},
|
||||
utils::{clonecell::CloneCell, smallmap::SmallMap},
|
||||
},
|
||||
|
|
@ -35,14 +34,15 @@ impl ToolOwnerHolder {
|
|||
pub fn destroy(&self, tool: &Rc<TabletTool>) {
|
||||
let root = tool.tablet.seat.state.root.clone();
|
||||
let prev = tool.node.set(root);
|
||||
prev.node_on_tablet_tool_leave(tool, now_usec());
|
||||
prev.node_on_tablet_tool_leave(tool, tool.tablet.seat.state.now_usec());
|
||||
prev.node_seat_state().remove_tablet_tool_focus(tool);
|
||||
}
|
||||
|
||||
pub fn focus_root(&self, tool: &Rc<TabletTool>) {
|
||||
self.owner.set(self.default.clone());
|
||||
let root = tool.tablet.seat.state.root.clone();
|
||||
tool.set_node(root, now_usec());
|
||||
let state = &tool.tablet.seat.state;
|
||||
let root = state.root.clone();
|
||||
tool.set_node(root, state.now_usec());
|
||||
}
|
||||
|
||||
pub fn button(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue