fix: transient windows appear as 1x1 sized

This commit is contained in:
Janis 2021-12-02 18:13:00 +01:00
parent 81a49e8290
commit 7961c97d2f
2 changed files with 16 additions and 8 deletions

View file

@ -774,7 +774,7 @@ impl WindowServerBackend for XLib {
if new_pos.is_some() {
mask |= xlib::CWX | xlib::CWY;
}
if new_size.is_some() {
if new_size.is_some() && wc.width > 1 && wc.height > 1 {
mask |= xlib::CWWidth | xlib::CWHeight;
}
if new_border.is_some() {

View file

@ -425,11 +425,11 @@ where
self.button_event(&event);
}
WindowEvent::MapRequestEvent(MapEvent { window }) => {
self.backend.handle_event(event);
if !self.clients.contains(&window) {
self.new_client(window);
}
self.backend.handle_event(event);
}
WindowEvent::UnmapEvent(event) => {
self.clients.remove(&event.window);
@ -444,8 +444,17 @@ where
WindowEvent::ConfigureEvent(ConfigureEvent {
window, ..
}) => {
if !self.clients.contains(&window) {
self.backend.handle_event(event);
match self.clients.get(&window) {
ClientEntry::Tiled(client)
| ClientEntry::Floating(client) => {
self.backend.configure_window(
window,
Some(client.size),
Some(client.position),
None,
)
}
ClientEntry::Vacant => self.backend.handle_event(event),
}
// TODO
// match self.clients.get(&event.window).into_option() {
@ -520,7 +529,7 @@ where
}
fn rotate_virtual_screen(&mut self, dir: Direction) {
info!("rotateing VS: {:?}", dir);
info!("rotating VS: {:?}", dir);
match dir {
Direction::West(n) => self.clients.rotate_left(n),
@ -713,6 +722,7 @@ where
None,
Some(self.clients.get_border()),
);
self.clients.insert(client).unwrap();
self.arrange_clients();
@ -800,8 +810,6 @@ where
}
}
MoveResizeInfo::Resize(info) => {
info!("do_resize: {:#?}", info);
let (x, y) = (
event.position.x - info.starting_cursor_pos.x,
event.position.y - info.starting_cursor_pos.y,