Remove all reference to scale factor
This commit is contained in:
parent
7f181d0e64
commit
07942c6f86
3 changed files with 15 additions and 32 deletions
|
|
@ -36,7 +36,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
.antialiasing(true)
|
.antialiasing(true)
|
||||||
.client_decorations(true)
|
.client_decorations(true)
|
||||||
.debug(false)
|
.debug(false)
|
||||||
.default_icon_theme("Pop")
|
.default_icon_theme("Cosmic")
|
||||||
.default_text_size(16.0)
|
.default_text_size(16.0)
|
||||||
.scale_factor(1.0)
|
.scale_factor(1.0)
|
||||||
.size(Size::new(1024., 768.))
|
.size(Size::new(1024., 768.))
|
||||||
|
|
|
||||||
|
|
@ -299,8 +299,7 @@ impl Terminal {
|
||||||
self.scroll(TerminalScroll::Bottom);
|
self.scroll(TerminalScroll::Bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn resize(&mut self, width: u32, height: u32, scale_factor: f32) {
|
pub fn resize(&mut self, width: u32, height: u32) {
|
||||||
//TODO: check scale factor
|
|
||||||
if width != self.size.width || height != self.size.height {
|
if width != self.size.width || height != self.size.height {
|
||||||
let instant = Instant::now();
|
let instant = Instant::now();
|
||||||
|
|
||||||
|
|
@ -310,14 +309,12 @@ impl Terminal {
|
||||||
self.notifier.on_resize(self.size.into());
|
self.notifier.on_resize(self.size.into());
|
||||||
self.term.lock().resize(self.size);
|
self.term.lock().resize(self.size);
|
||||||
|
|
||||||
let metrics = self.metrics.scale(scale_factor);
|
|
||||||
self.with_buffer_mut(|buffer| {
|
self.with_buffer_mut(|buffer| {
|
||||||
let mut font_system = font_system().write().unwrap();
|
let mut font_system = font_system().write().unwrap();
|
||||||
buffer.set_metrics_and_size(
|
buffer.set_size(
|
||||||
font_system.raw(),
|
font_system.raw(),
|
||||||
metrics,
|
width as f32,
|
||||||
(width as f32) * scale_factor,
|
height as f32,
|
||||||
(height as f32) * scale_factor,
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -150,14 +150,11 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(p) = cursor_position.position_in(layout.bounds()) {
|
if let Some(p) = cursor_position.position_in(layout.bounds()) {
|
||||||
let scale_factor = state.scale_factor.get();
|
|
||||||
let terminal = self.terminal.lock().unwrap();
|
let terminal = self.terminal.lock().unwrap();
|
||||||
let buffer_size = terminal.with_buffer(|buffer| buffer.size());
|
let buffer_size = terminal.with_buffer(|buffer| buffer.size());
|
||||||
|
|
||||||
let x_logical = p.x - self.padding.left;
|
let x = p.x - self.padding.left;
|
||||||
let y_logical = p.y - self.padding.top;
|
let y = p.y - self.padding.top;
|
||||||
let x = x_logical * scale_factor;
|
|
||||||
let y = y_logical * scale_factor;
|
|
||||||
if x >= 0.0 && x < buffer_size.0 && y >= 0.0 && y < buffer_size.1 {
|
if x >= 0.0 && x < buffer_size.0 && y >= 0.0 && y < buffer_size.1 {
|
||||||
return mouse::Interaction::Text;
|
return mouse::Interaction::Text;
|
||||||
}
|
}
|
||||||
|
|
@ -192,7 +189,6 @@ where
|
||||||
- scrollbar_w as i32;
|
- scrollbar_w as i32;
|
||||||
let view_h = cmp::min(viewport.height as i32, layout.bounds().height as i32)
|
let view_h = cmp::min(viewport.height as i32, layout.bounds().height as i32)
|
||||||
- self.padding.vertical() as i32;
|
- self.padding.vertical() as i32;
|
||||||
let scale_factor = style.scale_factor as f32;
|
|
||||||
|
|
||||||
if view_w <= 0 || view_h <= 0 {
|
if view_w <= 0 || view_h <= 0 {
|
||||||
// Zero sized image
|
// Zero sized image
|
||||||
|
|
@ -200,10 +196,7 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure terminal is the right size
|
// Ensure terminal is the right size
|
||||||
terminal.resize(view_w as u32, view_h as u32, scale_factor);
|
terminal.resize(view_w as u32, view_h as u32);
|
||||||
|
|
||||||
// Cache scale factor
|
|
||||||
state.scale_factor.set(scale_factor);
|
|
||||||
|
|
||||||
// Ensure terminal is shaped
|
// Ensure terminal is shaped
|
||||||
terminal.with_buffer_mut(|buffer| {
|
terminal.with_buffer_mut(|buffer| {
|
||||||
|
|
@ -305,7 +298,6 @@ where
|
||||||
_viewport: &Rectangle<f32>,
|
_viewport: &Rectangle<f32>,
|
||||||
) -> Status {
|
) -> Status {
|
||||||
let state = tree.state.downcast_mut::<State>();
|
let state = tree.state.downcast_mut::<State>();
|
||||||
let scale_factor = state.scale_factor.get();
|
|
||||||
let scrollbar_rect = state.scrollbar_rect.get();
|
let scrollbar_rect = state.scrollbar_rect.get();
|
||||||
let mut terminal = self.terminal.lock().unwrap();
|
let mut terminal = self.terminal.lock().unwrap();
|
||||||
let buffer_size = terminal.with_buffer(|buffer| buffer.size());
|
let buffer_size = terminal.with_buffer(|buffer| buffer.size());
|
||||||
|
|
@ -440,10 +432,8 @@ where
|
||||||
if let Some(p) = cursor_position.position_in(layout.bounds()) {
|
if let Some(p) = cursor_position.position_in(layout.bounds()) {
|
||||||
// Handle left click drag
|
// Handle left click drag
|
||||||
if let Button::Left = button {
|
if let Button::Left = button {
|
||||||
let x_logical = p.x - self.padding.left;
|
let x = p.x - self.padding.left;
|
||||||
let y_logical = p.y - self.padding.top;
|
let y = p.y - self.padding.top;
|
||||||
let x = x_logical * scale_factor;
|
|
||||||
let y = y_logical * scale_factor;
|
|
||||||
if x >= 0.0 && x < buffer_size.0 && y >= 0.0 && y < buffer_size.1 {
|
if x >= 0.0 && x < buffer_size.0 && y >= 0.0 && y < buffer_size.1 {
|
||||||
let click_kind =
|
let click_kind =
|
||||||
if let Some((click_kind, click_time)) = state.click.take() {
|
if let Some((click_kind, click_time)) = state.click.take() {
|
||||||
|
|
@ -477,13 +467,13 @@ where
|
||||||
*/
|
*/
|
||||||
state.click = Some((click_kind, Instant::now()));
|
state.click = Some((click_kind, Instant::now()));
|
||||||
state.dragging = Some(Dragging::Buffer);
|
state.dragging = Some(Dragging::Buffer);
|
||||||
} else if scrollbar_rect.contains(Point::new(x_logical, y_logical)) {
|
} else if scrollbar_rect.contains(Point::new(x, y)) {
|
||||||
state.dragging = Some(Dragging::Scrollbar {
|
state.dragging = Some(Dragging::Scrollbar {
|
||||||
start_y: y,
|
start_y: y,
|
||||||
start_scroll: terminal.scrollbar(),
|
start_scroll: terminal.scrollbar(),
|
||||||
});
|
});
|
||||||
} else if x_logical >= scrollbar_rect.x
|
} else if x >= scrollbar_rect.x
|
||||||
&& x_logical < (scrollbar_rect.x + scrollbar_rect.width)
|
&& x < (scrollbar_rect.x + scrollbar_rect.width)
|
||||||
{
|
{
|
||||||
let scroll_ratio = terminal.with_buffer(|buffer| y / buffer.size().1);
|
let scroll_ratio = terminal.with_buffer(|buffer| y / buffer.size().1);
|
||||||
terminal.scroll_to(scroll_ratio);
|
terminal.scroll_to(scroll_ratio);
|
||||||
|
|
@ -515,10 +505,8 @@ where
|
||||||
Event::Mouse(MouseEvent::CursorMoved { .. }) => {
|
Event::Mouse(MouseEvent::CursorMoved { .. }) => {
|
||||||
if let Some(dragging) = &state.dragging {
|
if let Some(dragging) = &state.dragging {
|
||||||
if let Some(p) = cursor_position.position() {
|
if let Some(p) = cursor_position.position() {
|
||||||
let x_logical = (p.x - layout.bounds().x) - self.padding.left;
|
let x = (p.x - layout.bounds().x) - self.padding.left;
|
||||||
let y_logical = (p.y - layout.bounds().y) - self.padding.top;
|
let y = (p.y - layout.bounds().y) - self.padding.top;
|
||||||
let x = x_logical * scale_factor;
|
|
||||||
let y = y_logical * scale_factor;
|
|
||||||
match dragging {
|
match dragging {
|
||||||
Dragging::Buffer => {
|
Dragging::Buffer => {
|
||||||
/*TODO
|
/*TODO
|
||||||
|
|
@ -610,7 +598,6 @@ pub struct State {
|
||||||
modifiers: Modifiers,
|
modifiers: Modifiers,
|
||||||
click: Option<(ClickKind, Instant)>,
|
click: Option<(ClickKind, Instant)>,
|
||||||
dragging: Option<Dragging>,
|
dragging: Option<Dragging>,
|
||||||
scale_factor: Cell<f32>,
|
|
||||||
scroll_pixels: f32,
|
scroll_pixels: f32,
|
||||||
scrollbar_rect: Cell<Rectangle<f32>>,
|
scrollbar_rect: Cell<Rectangle<f32>>,
|
||||||
}
|
}
|
||||||
|
|
@ -622,7 +609,6 @@ impl State {
|
||||||
modifiers: Modifiers::empty(),
|
modifiers: Modifiers::empty(),
|
||||||
click: None,
|
click: None,
|
||||||
dragging: None,
|
dragging: None,
|
||||||
scale_factor: Cell::new(1.0),
|
|
||||||
scroll_pixels: 0.0,
|
scroll_pixels: 0.0,
|
||||||
scrollbar_rect: Cell::new(Rectangle::default()),
|
scrollbar_rect: Cell::new(Rectangle::default()),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue