mirror of
https://github.com/pinnacle-comp/pinnacle.git
synced 2025-02-05 20:46:27 +01:00
Apply window rules earlier
Fixes winit applications getting a wl_shm_pool protocol error Longer explanation: It seems if you immediately change a winit window's decoration mode after it binds xdg-decoration then winit no likey and it requests a shm buffer with 0 width leading to a protocol error. If the decoration window rule is applied earlier this doesn't happen
This commit is contained in:
parent
8d0da8ccfc
commit
4ecf1c2e71
2 changed files with 4 additions and 10 deletions
|
@ -206,9 +206,6 @@ impl CompositorHandler for State {
|
|||
let output = self.pinnacle.focused_output().cloned();
|
||||
|
||||
if let Some(output) = output.as_ref() {
|
||||
tracing::debug!("Placing toplevel");
|
||||
unmapped_window.place_on_output(output);
|
||||
|
||||
output.with_state_mut(|state| {
|
||||
state.focus_stack.set_focus(unmapped_window.clone())
|
||||
});
|
||||
|
@ -223,8 +220,6 @@ impl CompositorHandler for State {
|
|||
|
||||
self.pinnacle.raise_window(unmapped_window.clone(), true);
|
||||
|
||||
self.pinnacle.apply_window_rules(&unmapped_window);
|
||||
|
||||
if let Some(focused_output) = output {
|
||||
if unmapped_window.is_on_active_tag() {
|
||||
self.update_keyboard_focus(&focused_output);
|
||||
|
@ -243,6 +238,10 @@ impl CompositorHandler for State {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
if let Some(output) = self.pinnacle.focused_output().cloned() {
|
||||
unmapped_window.place_on_output(&output);
|
||||
}
|
||||
self.pinnacle.apply_window_rules(&unmapped_window);
|
||||
// Still unmapped
|
||||
unmapped_window.on_commit();
|
||||
self.pinnacle.ensure_initial_configure(surface);
|
||||
|
|
|
@ -581,11 +581,6 @@ mod output {
|
|||
|
||||
local focus_stack = Pinnacle.output.get_focused():keyboard_focus_stack()
|
||||
assert(#focus_stack == 5, "focus stack len != 5")
|
||||
print(focus_stack[1].id)
|
||||
print(focus_stack[2].id)
|
||||
print(focus_stack[3].id)
|
||||
print(focus_stack[4].id)
|
||||
print(focus_stack[5].id)
|
||||
|
||||
assert(focus_stack[1].id == 0, "focus stack at 1 id != 0")
|
||||
assert(focus_stack[2].id == 1, "focus stack at 2 id != 1")
|
||||
|
|
Loading…
Add table
Reference in a new issue