After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 779001 - meta_window_get_work_area_for_logical_monitor: assertion failed: (logical_monitor)
meta_window_get_work_area_for_logical_monitor: assertion failed: (logical_mon...
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
3.23.x
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2017-02-21 07:20 UTC by Olivier Fourdan
Modified: 2017-03-06 14:42 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
backends/x11: Fallback to the first logical monitor when out of focus (1.25 KB, patch)
2017-03-06 11:01 UTC, Jonas Ådahl
committed Details | Review

Description Olivier Fourdan 2017-02-21 07:20:17 UTC
Description:

The recent addition of logical monitors breaks mutter standalone (nested).

This makes coding on mutter a tad more challenging (as gnome-shell won't work nested either anyway)

How reproducible:

Always

Steps to reproduce:

1. mutter --wayland --nested
2. DISPLAY=:1 xterm&

Actual result:

mutter aborts

Expected results:

mutter survives

Additional info:

  • #0 __GI_raise
    at ../sysdeps/unix/sysv/linux/raise.c line 58
  • #1 __GI_abort
    at abort.c line 89
  • #2 g_assertion_message
  • #3 g_assertion_message_expr
    at glib/glib/gtestutils.c line 2456
  • #4 meta_window_get_work_area_for_logical_monitor
    at mutter/src/core/window.c line 6085
  • #5 meta_window_place
    at mutter/src/core/place.c line 878
  • #6 place_window_if_needed
    at mutter/src/core/constraints.c line 483
  • #7 meta_window_constrain
  • #8 meta_window_move_resize_internal
  • #9 meta_window_move_resize_frame
    at mutter/src/core/window.c line 3833
  • #10 meta_window_move_resize_now
    at mutter/src/core/window.c line 3890
  • #11 meta_window_force_placement
    at mutter/src/core/window.c line 2227
  • #12 meta_window_show
    at mutter/src/core/window.c line 2303
  • #13 implement_showing
    at mutter/src/core/window.c line 1637
  • #14 meta_window_calc_showing
    at mutter/src/core/window.c line 1646
  • #15 idle_calc_showing
    at mutter/src/core/window.c line 1733
  • #16 run_repaint_laters
    at mutter/src/core/util.c line 807
  • #17 run_all_repaint_laters
    at mutter/src/core/util.c line 824
  • #18 _clutter_run_repaint_functions
    at mutter/clutter/clutter/clutter-main.c line 3433
  • #19 master_clock_update_stages
    at mutter/clutter/clutter/clutter-master-clock-default.c line 437
  • #20 clutter_clock_dispatch
    at mutter/clutter/clutter/clutter-master-clock-default.c line 567
  • #21 g_main_dispatch
    at glib/glib/gmain.c line 3203
  • #22 g_main_context_dispatch
    at glib/glib/gmain.c line 3856
  • #23 g_main_context_iterate
    at glib/glib/gmain.c line 3929
  • #24 g_main_loop_run
    at glib/glib/gmain.c line 4125
  • #25 meta_run
    at mutter/src/core/main.c line 646
  • #26 main
    at mutter/src/core/mutter.c line 85

Comment 1 Jonas Ådahl 2017-03-06 11:01:00 UTC
Created attachment 347302 [details] [review]
backends/x11: Fallback to the first logical monitor when out of focus

When running nested, the pointer can be outside of the stage, meaning
outside of any logical monitor. Handle this when getting the current
logical monitor by falling back to the first logical monitor when the
pointer coordinate is outside of any logical monitor.
Comment 2 Florian Müllner 2017-03-06 11:11:48 UTC
Review of attachment 347302 [details] [review]:

Makes sense to me
Comment 3 Jonas Ådahl 2017-03-06 14:42:41 UTC
Attachment 347302 [details] pushed as 4e4b24e - backends/x11: Fallback to the first logical monitor when out of focus