Skip to content

Commit 98065f1

Browse files
committed
fixed bug where windows would unfloat if the desktop switched
1 parent 11bc754 commit 98065f1

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/gridwm/mod.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,7 @@ impl GridWM {
690690
let mut desktop = self.get_desktop(self.current_desktop);
691691
desktop.remove(&event.window);
692692
self.set_desktop(self.current_desktop, desktop);
693-
self.floating_windows.remove(&event.window);
693+
// self.floating_windows.remove(&event.window);
694694

695695
if let Some(bar_win) = self.win_bar_windows.remove(&event.window) {
696696
unsafe {
@@ -755,6 +755,7 @@ impl GridWM {
755755
unsafe {
756756
XUnmapWindow(self.display, event.subwindow);
757757
}
758+
self.floating_windows.remove(&event.subwindow);
758759
}
759760
}
760761
"desktop_right" => {
@@ -874,6 +875,7 @@ impl GridWM {
874875
if index == self.current_desktop {
875876
return;
876877
}
878+
877879
unsafe {
878880
let old_desktop = self.get_desktop(self.current_desktop);
879881

@@ -895,6 +897,8 @@ impl GridWM {
895897

896898
self.current_desktop = index;
897899
}
900+
901+
self.trigger_redraw = true;
898902
}
899903

900904
fn draw_window_bar(&mut self) {
@@ -1388,6 +1392,14 @@ impl GridWM {
13881392
let new_y = state.start_win_y + delta_y;
13891393

13901394
self.move_window(state.window, new_x, new_y);
1395+
1396+
if let Some(&bar_win) = self.win_bar_windows.get(&state.window) {
1397+
self.move_window(
1398+
bar_win,
1399+
new_x,
1400+
new_y - self.config.window.window_bar_height as i32,
1401+
);
1402+
}
13911403
}
13921404
}
13931405

0 commit comments

Comments
 (0)