1. 25 Dec, 2017 1 commit
  2. 30 Nov, 2017 1 commit
    • Jonas Ådahl's avatar
      monitor-manager: Compare keys when checking whether a config is complete · b7518c86
      Jonas Ådahl authored
      We only counted configured monitors and whether the config was
      applicable (could be assigned), howeverwe didn't include disabled
      monitors when comparing. This could caused incorrect configurations to
      be applied when trying to use the previous configuration.
      One scenario where this happened was one a system with one laptop
      screen and one external monitor that was hot plugged some point after
      start up. When the laptop lid was closed, the 'previous configuration'
      being the configuration where only the laptop panel was enabled, passed
      'is-complete' check as the number of configured monitors were correct,
      and the configuration was applicable.
      Avoid this issue by simply comparing the configuration key of the
      previous configuration and the configuration key of the current state.
      This correctly identifies a laptop panel with the lid closed as
      inaccessible, thus doesn't incorrectly revert to the previous
  3. 22 Nov, 2017 1 commit
  4. 27 Oct, 2017 1 commit
  5. 13 Oct, 2017 2 commits
  6. 12 Oct, 2017 1 commit
  7. 05 Oct, 2017 8 commits
  8. 02 Oct, 2017 1 commit
  9. 20 Sep, 2017 1 commit
  10. 30 Aug, 2017 1 commit
  11. 29 Aug, 2017 1 commit
  12. 21 Aug, 2017 6 commits
    • Jonas Ådahl's avatar
      monitor-manager: Don't cancel confirm dialog on verifying · 6584d06b
      Jonas Ådahl authored
      When another D-Bus call that just tries to verify a configuration is
      made, don't cancel any active monitor configuration dialog, as doing so
      would effectively confirm queried configuration.
    • Jonas Ådahl's avatar
      monitor-manager: Try to restore previous config before regenerating · 35c9280f
      Jonas Ådahl authored
      When opening a laptop lid, one will likely want to restore the
      configuration one had prior to closing it, so when ensuring monitor
      configuration, first try to see if the previously set configuration is
      both complete (all connected monitors are configured) and applicable
      (it is a valid configuration) and only try to generate a new from
      scratch if that failed.
    • Jonas Ådahl's avatar
      monitor-config-manager: Keep short history of configurations · b140e7fb
      Jonas Ådahl authored
      In order to go back in monitor configurations, save them to a history.
      The history is implemented as a max 3 element long queue, where newly
      set configurations are pushed to the head, and old are popped from the
      The difference between using a single previous config reference and a
      queue is that we can now remember the configuration used prior to a
      D-Bus triggered configuration when the user discarded the configuration.
      This will later be used to restore a previous configuration when a
      laptop lid is opened.
    • Jonas Ådahl's avatar
      Migrate old monitor configuration files to new system · bc316246
      Jonas Ådahl authored
      This commit changes the new configuration system to use monitors.xml
      instead of monitors-experimental.xml. When starting up and the
      monitors.xml file is loaded, if a legacy monitors.xml file is
      discovered (it has the version number 1), an attempt is made to migrate
      the stored configuration onto the new system.
      This is done in two steps:
      1) Parsing and translation of the old configuration. This works by
      parsing file using the mostly the old parser, but then translating the
      resulting configuration structs into the new configuration system. As
      the legacy configuration system doesn't carry over some state (such as
      tiling and scale used), some things are not available. For tiling, the
      migration paths makes an attempt to discover tiled monitors by
      comparing EDID data, and guessing what the main tile is. Determination
      of the scale of a migrated configuration is postponed until the
      configuration is actually applied. This works by flagging the
      configuration as 'migrated'.
      2) Finishing the migration when applying. When a configuration with the
      'migrated' flag is retrieved from the configuration store, the final
      step of the migration is taken place. This involves calculating the
      preferred scale given the mode configured, while making sure this
      doesn't result in any overlapping logical monitor regions etc.
    • Jonas Ådahl's avatar
      monitor-manager: Fix output variable naming · 88f24413
      Jonas Ådahl authored
      Fix the last case of using the variable name "meta_output" for a
    • Jonas Ådahl's avatar
      Remove old monitor configuration system · e8a62861
      Jonas Ådahl authored
      Remove the old MetaMonitorConfig system and mark the new one as
      non-experimental. This also removes the D-Bus property.
  13. 31 Jul, 2017 1 commit
  14. 19 Jul, 2017 2 commits
    • Rui Matos's avatar
      backends: Add API to switch to predetermined monitor configurations · 3f9c5823
      Rui Matos authored
      This will allows us to support the XF86Display key present on some
      laptops, directly in mutter. This is also known, in evdev, as
      The common usage for this key is to alternate between a few well known
      multi-monitor configurations though these aren't officially
      standardized. As an example, Lenovo documents it as:
      "Switches the display output location between the computer display
      and an external monitor."
      On this patch, we're just introducing the configurations that have been
      implemented in g-s-d until now, which go a bit beyond the above
    • Jonas Ådahl's avatar
      monitor-manager: Let the MetaMonitor derive the whole layout · 32fd1e8c
      Jonas Ådahl authored
      Instead of letting MetaMonitor derive the logical monitor size, then
      using the main monitor for the position, just let MetaMonitor derive
      the whole layout including the position. This means it can deal with
      tiled monitors better, for example when the main output (the output
      always active when the monitor is active) is not the origin output (the
      output with tile position (0, 0)).
  15. 14 Jul, 2017 12 commits