1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-23 15:04:36 +03:00

window: fixup build for x11/wayland

This commit is contained in:
Wez Furlong 2020-12-29 13:35:59 -08:00
parent 4f80fd9bcd
commit 1af1c85818
2 changed files with 2 additions and 43 deletions

View File

@ -24,7 +24,6 @@ use std::sync::{Arc, Mutex};
use toolkit::get_surface_scale_factor;
use toolkit::reexports::client::protocol::wl_data_source::Event as DataSourceEvent;
use toolkit::reexports::client::protocol::wl_surface::WlSurface;
use toolkit::shm::MemPool;
use toolkit::window::{ButtonColorSpec, ColorSpec, ConceptConfig, ConceptFrame, Event};
use wayland_client::protocol::wl_data_device_manager::WlDataDeviceManager;
use wayland_egl::{is_available as egl_is_available, WlEglSurface};
@ -86,7 +85,6 @@ pub struct WaylandWindowInner {
surface: WlSurface,
copy_and_paste: Arc<Mutex<CopyAndPaste>>,
window: Option<toolkit::window::Window<ConceptFrame>>,
pool: MemPool,
dimensions: Dimensions,
need_paint: bool,
last_mouse_coords: Point,
@ -218,8 +216,6 @@ impl WaylandWindow {
window.set_title(name.to_string());
window.set_frame_config(frame_config());
let pool = MemPool::new(conn.environment.borrow().require_global(), |_| {})?;
// window.new_seat(&conn.seat);
conn.keyboard.add_window(window_id, &surface);
@ -234,7 +230,6 @@ impl WaylandWindow {
callbacks,
surface: surface.detach(),
window: Some(window),
pool,
dimensions,
need_paint: true,
last_mouse_coords: Point::new(0, 0),
@ -420,10 +415,6 @@ impl WaylandWindowInner {
self.dimensions.dpi as i32 / crate::DEFAULT_DPI as i32
}
fn get_dpi(&self) -> usize {
self.dimensions.dpi
}
fn surface_to_pixels(&self, surface: i32) -> i32 {
surface * self.get_dpi_factor()
}
@ -579,27 +570,6 @@ impl WaylandWindowInner {
Ok(())
}
fn damage(&mut self) {
if self.surface.as_ref().version() >= 4 {
self.surface.damage_buffer(
0,
0,
self.dimensions.pixel_width as i32,
self.dimensions.pixel_height as i32,
);
} else {
// Older versions use the surface size which is the pre-scaled
// dimensions. Since we store the scaled dimensions, we need
// to compensate here.
self.surface.damage(
0,
0,
self.pixels_to_surface(self.dimensions.pixel_width as i32),
self.pixels_to_surface(self.dimensions.pixel_height as i32),
);
}
}
}
struct MmapImage<'a> {

View File

@ -41,12 +41,10 @@ pub(crate) struct XWindowInner {
window_id: xcb::xproto::Window,
conn: Weak<XConnection>,
callbacks: Box<dyn WindowCallbacks>,
window_context: Context,
width: u16,
height: u16,
expose: VecDeque<Rect>,
paint_all: bool,
buffer_image: BufferImage,
cursor: Option<MouseCursor>,
cursors: HashMap<Option<MouseCursor>, XcbCursor>,
copy_and_paste: CopyAndPaste,
@ -111,7 +109,6 @@ impl<'a> PaintContext for X11GraphicsContext<'a> {
impl XWindowInner {
fn enable_opengl(&mut self) -> anyhow::Result<()> {
let window = XWindow(self.window_id);
let conn = self.conn();
let gl_state = match conn.gl_connection.borrow().as_ref() {
@ -142,13 +139,11 @@ impl XWindowInner {
})?;
self.gl_state.replace(gl_state.clone());
self.callbacks.created(&window, gl_state)
let window_handle = Window::X11(XWindow::from_id(self.window_id));
self.callbacks.created(&window_handle, gl_state)
}
pub fn paint(&mut self) -> anyhow::Result<()> {
let window_dimensions =
Rect::from_size(Size::new(self.width as isize, self.height as isize));
if !self.paint_all && self.expose.is_empty() {
return Ok(());
}
@ -757,21 +752,15 @@ impl XWindow {
.request_check()
.context("xcb::create_window_checked")?;
let window_context = Context::new(&conn, &window_id);
let buffer_image = BufferImage::new(&conn, window_id, width, height);
Arc::new(Mutex::new(XWindowInner {
window_id,
conn: Rc::downgrade(&conn),
callbacks,
window_context,
width: width.try_into()?,
height: height.try_into()?,
expose: VecDeque::new(),
paint_all: true,
copy_and_paste: CopyAndPaste::default(),
buffer_image,
cursor: None,
cursors: HashMap::new(),
gl_state: None,