Skip to content

Commit

Permalink
cursor: respect XCURSOR_SIZE
Browse files Browse the repository at this point in the history
  • Loading branch information
mahkoh committed Mar 10, 2024
1 parent 7f51618 commit 7381e5d
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
11 changes: 11 additions & 0 deletions src/cursor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ use {
byteorder::{LittleEndian, ReadBytesExt},
isnt::std_1::primitive::IsntSliceExt,
num_derive::FromPrimitive,
once_cell::sync::Lazy,
std::{
cell::Cell,
convert::TryInto,
Expand All @@ -38,10 +39,20 @@ const XCURSOR_PATH_DEFAULT: &[u8] =
b"~/.icons:/usr/share/icons:/usr/share/pixmaps:/usr/X11R6/lib/X11/icons";
const XCURSOR_PATH: &str = "XCURSOR_PATH";
const XCURSOR_THEME: &str = "XCURSOR_THEME";
const XCURSOR_SIZE: &str = "XCURSOR_SIZE";
const HOME: &str = "HOME";

const HEADER_SIZE: u32 = 16;

pub static DEFAULT_CURSOR_SIZE: Lazy<u32> = Lazy::new(|| {
if let Ok(size) = env::var(XCURSOR_SIZE) {
if let Ok(val) = size.parse() {
return val;
}
}
24
});

pub trait Cursor {
fn render(&self, renderer: &mut Renderer, x: Fixed, y: Fixed);
fn render_hardware_cursor(&self, renderer: &mut Renderer);
Expand Down
8 changes: 3 additions & 5 deletions src/ifs/wl_seat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use {
crate::{
async_engine::SpawnedFuture,
client::{Client, ClientError, ClientId},
cursor::{Cursor, KnownCursor},
cursor::{Cursor, KnownCursor, DEFAULT_CURSOR_SIZE},
fixed::Fixed,
globals::{Global, GlobalName},
ifs::{
Expand Down Expand Up @@ -166,8 +166,6 @@ pub struct WlSeatGlobal {
const CHANGE_CURSOR_MOVED: u32 = 1 << 0;
const CHANGE_TREE: u32 = 1 << 1;

const DEFAULT_CURSOR_SIZE: u32 = 16;

impl Drop for WlSeatGlobal {
fn drop(&mut self) {
self.state.remove_cursor_size(self.cursor_size.get());
Expand Down Expand Up @@ -212,13 +210,13 @@ impl WlSeatGlobal {
output: CloneCell::new(state.dummy_output.get().unwrap()),
desired_known_cursor: Cell::new(None),
changes: NumCell::new(CHANGE_CURSOR_MOVED | CHANGE_TREE),
cursor_size: Cell::new(DEFAULT_CURSOR_SIZE),
cursor_size: Cell::new(*DEFAULT_CURSOR_SIZE),
hardware_cursor: Cell::new(state.globals.seats.len() == 0),
constraint: Default::default(),
idle_notifications: Default::default(),
last_input_usec: Cell::new(now_usec()),
});
state.add_cursor_size(DEFAULT_CURSOR_SIZE);
state.add_cursor_size(*DEFAULT_CURSOR_SIZE);
let seat = slf.clone();
let future = state.eng.spawn(async move {
loop {
Expand Down

0 comments on commit 7381e5d

Please sign in to comment.