mutter:benzea/ignore-monitor-connector

Last commit made on 2020-10-23
Get this branch:
git clone -b benzea/ignore-monitor-connector https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
benzea/ignore-monitor-connector
Repository:
lp:mutter

Recent commits

26a3b84... by Benjamin Berg <email address hidden>

tests/monitor-unit-tests: Add test for ignored connector IDs

In some cases the connector ID should be ignored. Add a flag to modify
the generated connector ID, and test whether the stored configuration
still applies with the changed IDs.

https://gitlab.gnome.org/GNOME/mutter/issues/932

b5d5de7... by Benjamin Berg <email address hidden>

monitor: Only take connector into account when required

Add a flag to meta_monitor_spec_equals to disable full connector
matching when this is possible. In this mode, the connector is simply
skipped from the compare, assuming that all monitors can be
disambiguated using just EDID information.

Update all calls to the relevant functions to pass whether a full match
is needed or not.

https://gitlab.gnome.org/GNOME/mutter/issues/932

0c6422c... by Benjamin Berg <email address hidden>

tests/monitor-unit-tests: Disambiguate external monitor in lid switch test

The external and internal monitor in the lid switch test had the
identical EDID information. This is at odds with the change to ignore
the connector if possible, as each of the monitors can be present
independently.

Avoid the problem by updating the test and setting a different serial
number in the EDID data of the external monitor.

https://gitlab.gnome.org/GNOME/mutter/issues/932

6b36ab3... by Benjamin Berg <email address hidden>

monitor: Only hash the connector when required

If the monitors in the configuration can already be uniquely identified
using the EDID information and connector type, then remove the connector
from the hash. This ensures that monitor configurations will land in the
same bucket if only the connectors are different.

Also add a quick return to the equal function by checking the
edid_sufficient boolean.

https://gitlab.gnome.org/GNOME/mutter/issues/932

ef7d9d4... by Benjamin Berg <email address hidden>

monitor: Add flag whether EDID is sufficient to disambiguate monitors

If the EDID of the attached or stored monitor configurations contain
proper serial numbers, then we do not need to rely on the connector to
disambiguate them. Add a boolean to both MetaMonitorManager and
MetaMonitorsConfigKey to store this information.

https://gitlab.gnome.org/GNOME/mutter/issues/932

193da8d... by Benjamin Berg <email address hidden>

monitor: Make the connector the last sort key for monitors

We want to ignore the connector in certain situations. Prepare this by
changing the sort order so that two monitors will be paired up in the
list if only the connector is different.

https://gitlab.gnome.org/GNOME/mutter/issues/932

a51ad8f... by Christian Rauch

core/window: Store/load window dimensions before/after fullscreen

We will use a dedicated variable when transitioning to/from fullscreen state
and leave the previously used 'saved_rect' exclusively for transitioning
between floating and maximized state.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/801

3faea85... by Christian Rauch

core/window: Move size hints to dedicated function

https://gitlab.gnome.org/GNOME/mutter/merge_requests/801#note_676932

20519a1... by Christian Rauch

core/window: Do not apply limits if no previous size has been stored

A previously stored width and height of 0 signifies that no previous window
size has been stored. This might be the case if an application starts in
maximized or fullscreen mode. If no previous window size has been stored,
the client needs to determine its own size.

https://bugzilla.gnome.org/show_bug.cgi?id=783901
https://gitlab.gnome.org/GNOME/mutter/merge_requests/801#note_607607

a93ef84... by Christian Rauch

wayland/window: Provide prior floating window dimensions

Implements the "prior window window geometry dimensions" as described in
the documentation of 'xdg_toplevel' request 'unset_maximized':
"If available and applicable, the compositor will include the window
geometry dimensions the window had prior to being maximized in the
configure event."
and 'unset_fullscreen':
"The compositor may include the previous window geometry dimensions in
the configure event, if applicable."

Fixes https://gitlab.gnome.org/GNOME/mutter/issues/792.