I'll check this:

--- mutter-48.1.orig/src/core/place.c   2025-04-01 14:41:18.000000000 +0200
+++ mutter-48.1/src/core/place.c        2025-07-29 19:45:00.853407108 +0200
@@ -201,6 +201,20 @@
    */
 
   current = meta_backend_get_current_logical_monitor (backend);
+
+  if (!current) {
+    g_message ("ASSERTION WORKAROUND find_next_cascade");
+    MetaMonitorManager *monitor_manager =
+      meta_backend_get_monitor_manager (backend);
+
+    current =
+      meta_monitor_manager_get_primary_logical_monitor (monitor_manager);
+
+    if (!current) {
+      g_message ("ASSERTION WORKAROUND: NO LOGICAL MONITORS AT ALL 
find_next_cascade");
+      return;
+    }
+  }
   meta_window_get_work_area_for_logical_monitor (window, current, &work_area);
 
   meta_window_get_frame_rect (window, &frame_rect);
@@ -990,6 +1004,21 @@
 
   windows = find_windows_relevant_for_placement (window);
   logical_monitor = meta_backend_get_current_logical_monitor (backend);
+  if (!logical_monitor)
+  {
+    g_message ("ASSERTION WORKAROUND");
+    MetaMonitorManager *monitor_manager =
+      meta_backend_get_monitor_manager (backend);
+
+    logical_monitor =
+      meta_monitor_manager_get_primary_logical_monitor (monitor_manager);
+
+    if (!logical_monitor) {
+      g_message ("ASSERTION WORKAROUND: NO LOGICAL MONITORS AT ALL");
+      goto done;
+    }
+  }
+
   place_centered = window_place_centered (window);
 
   if (place_centered)



because there was another meta_window_get_work_area_for_logical_monitor in 
find_next_cascade


P.S.
yes, this mitigates issue, logs:
lip 29 19:52:52 F2A gnome-shell[3569]: [MUTTER DEBUG] Checking logical monitors 
for point (4813,000000, 0,000000)
lip 29 19:52:52 F2A gnome-shell[3569]: [MUTTER DEBUG] Monitor: x=0 y=0 
width=1920 height=1080
lip 29 19:52:52 F2A gnome-shell[3569]: [MUTTER DEBUG] Checking logical monitors 
for point (4813,000000, 0,000000)
lip 29 19:52:52 F2A gnome-shell[3569]: [MUTTER DEBUG] Monitor: x=0 y=0 
width=1920 height=1080
lip 29 19:52:52 F2A gnome-shell[3569]: 
meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) 
number < g_list_length (manager->logical_monitors)' failed
lip 29 19:52:52 F2A gnome-shell[3569]: 
meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' 
failed
lip 29 19:52:52 F2A gnome-shell[3569]: 
meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) 
number < g_list_length (manager->logical_monitors)' failed
lip 29 19:52:52 F2A gnome-shell[3569]: 
meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' 
failed
lip 29 19:52:52 F2A gnome-shell[3569]: [MUTTER DEBUG] Checking logical monitors 
for point (4480,000000, 0,000000)
lip 29 19:52:52 F2A gnome-shell[3569]: [MUTTER DEBUG] Monitor: x=0 y=0 
width=1920 height=1080
lip 29 19:52:52 F2A xdg-desktop-por[4107]: Monitor 'Dell Inc. 27"' has no 
configuration which is-current!
lip 29 19:52:52 F2A xdg-desktop-por[4107]: Monitor 'Dell Inc. 27"' has no 
configuration which is-current!
lip 29 19:52:52 F2A gnome-shell[3569]: meta_display_get_monitor_in_fullscreen: 
assertion 'monitor >= 0 && monitor < n_logical_monitors' failed
lip 29 19:52:52 F2A gnome-shell[3569]: 
meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) 
number < g_list_length (manager->logical_monitors)' failed
lip 29 19:52:52 F2A gnome-shell[3569]: 
meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' 
failed
lip 29 19:52:53 F2A gnome-shell[3569]: [MUTTER DEBUG] Checking logical monitors 
for point (4480,000000, 0,000000)
lip 29 19:52:53 F2A gnome-shell[3569]: [MUTTER DEBUG] Monitor: x=0 y=0 
width=1920 height=1080
lip 29 19:52:53 F2A gnome-shell[3569]: [MUTTER DEBUG] Checking logical monitors 
for point (4480,000000, 0,000000)
lip 29 19:52:53 F2A gnome-shell[3569]: [MUTTER DEBUG] Monitor: x=0 y=0 
width=1920 height=1080
lip 29 19:52:53 F2A gnome-shell[3569]: [MUTTER DEBUG] Checking logical monitors 
for point (4480,000000, 0,000000)
lip 29 19:52:53 F2A gnome-shell[3569]: [MUTTER DEBUG] Monitor: x=0 y=0 
width=1920 height=1080
lip 29 19:52:53 F2A gnome-shell[3569]: ASSERTION WORKAROUND
lip 29 19:52:53 F2A gnome-shell[3569]: [MUTTER DEBUG] Checking logical monitors 
for point (4480,000000, 0,000000)
lip 29 19:52:53 F2A gnome-shell[3569]: [MUTTER DEBUG] Monitor: x=0 y=0 
width=1920 height=1080
lip 29 19:52:53 F2A gnome-shell[3569]: ASSERTION WORKAROUND find_next_cascade
lip 29 19:52:53 F2A gnome-shell[3569]: Overwriting existing binding of keysym 
39 with keysym 39 (keycode 12).

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2117277

Title:
  gnome-shell crash on unplugging external monitor –
  meta_window_get_work_area_for_logical_monitor assertion

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/2117277/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to