cursor: respect XCURSOR_SIZE
This commit is contained in:
parent
7f5161806b
commit
7381e5df37
2 changed files with 14 additions and 5 deletions
|
|
@ -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,
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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::{
|
||||
|
|
@ -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());
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue