1. 03 Feb, 2020 1 commit
  2. 02 Feb, 2020 1 commit
    • Robert Ancell's avatar
      panel: Move shared GCancellable code into panel class · 93b14a43
      Robert Ancell authored
      Make the panel class provide a cancellable that will be cancelled when the panel
      is destroyed. Panel implementations can use this and not have to mangage the
      cancellable themselves. Consolidate cases where panels had multiple cancellables
      that were all being used for this behaviour.
      93b14a43
  3. 07 Nov, 2019 1 commit
  4. 02 Oct, 2019 1 commit
  5. 27 Aug, 2019 1 commit
    • Benjamin Berg's avatar
      display: Consider monitors in landscape mode for minimum size · 4e800cc5
      Benjamin Berg authored and Benjamin Berg's avatar Benjamin Berg committed
      Some devices have panels with a native resolution in portrait mode. In
      these cases the monitor will likely be used in landscape mode.
      
      Accept the modes as if they are landscape rather than portrait. A
      further improvement would be to restrict the orientation setting.
      
      Fixes #639
      4e800cc5
  6. 20 Jul, 2019 1 commit
  7. 15 Jul, 2019 2 commits
  8. 16 Jun, 2019 2 commits
  9. 20 Mar, 2019 7 commits
    • Benjamin Berg's avatar
      display: Ensure configuration has the expected type · b26a8bde
      Benjamin Berg authored
      In almost all cases, the configuration will be "valid" in the sense that
      g-c-c can represent it in the UI. However, there are cases like
      mirroring setups with three monitors that we do not allow.
      
      In case that the user has such a configuration, ensure that the
      configuration we represent is actually valid according to our
      expectations. This should not affect normal use cases, but allows users
      to recover again if the configuration is broken for some reason.
      
      Fixes #383
      b26a8bde
    • Benjamin Berg's avatar
      display: Ensure at least one display is enabled · f45dcff8
      Benjamin Berg authored
      When the user has more than two monitors, then they can disable each
      monitor separately. If the user creates an invalid configuration because
      they disabled the last monitor, then enable a different one immediately.
      f45dcff8
    • Benjamin Berg's avatar
      display: Simplify configuration type and UI selection logic · defbcebf
      Benjamin Berg authored
      The new logic selects a single configuration type rather than detecting
      which types can be considered valid. This simplifies the UI rebuilding
      somewhat, but also changes some internal behaviour. We will now always
      be in the correct mode internally, even if the UI may not represent this
      change (i.e. with more than two monitors it always looks the same).
      defbcebf
    • Benjamin Berg's avatar
      display: Add unusable monitors to dropdown and disable switch for them · b2f1d489
      Benjamin Berg authored
      We should show unusable monitors in the monitor selection drop-down
      list. So always add them to the combobox and add the code to make the
      switch to enable them insensitive.
      b2f1d489
    • Benjamin Berg's avatar
      display: Only enforce single mode when desired by UI · e387b3bb
      Benjamin Berg authored
      We should only enforce single mode, when we have exactly two monitors
      and the two button UI is used to switch between them in single mode.
      Move the code to ensure the single configuration into the relevant
      callback handler, rather than trying to solve this globally.
      e387b3bb
    • Benjamin Berg's avatar
      display: Make rebuilding variable a counter · 98d20659
      Benjamin Berg authored
      We need to also set rebuilding while updating some other UI elements.
      Make it into a counter to allow for recursive setting.
      Note that additional checks for rebuilding will be added in later
      commits.
      98d20659
    • Benjamin Berg's avatar
      display: Reset resolution when switching configuration types · 21bb6416
      Benjamin Berg authored
      It generally makes more sense to reset the resolution of a monitor after
      we switch configuration types. The main case where this is relevant is
      switching from a mirror configuration (CLONE) to either join or single.
      In this case, higher resolutions for monitors may become available.
      
      Note that this might be annoying to some users, because there may be
      monitors reporting a lower "preferred" resolution than the highest
      supported resolution. There is little we can do though, as always
      selecting the highest resolution doesn't seem like a much better
      approach.
      21bb6416
  10. 18 Mar, 2019 2 commits
    • Benjamin Berg's avatar
      display: Enable all monitors when switching to join config · 20d24992
      Benjamin Berg authored and Georges Basile Stavracas Neto's avatar Georges Basile Stavracas Neto committed
      The new code had a bug in that it only ever enabled the first monitor
      rather than all usable ones. Fix this by removing the erroronuous break.
      Also clarify the comment a bit that the current solution is not really
      ideal as it may result in invalid configurations (i.e. we enable more
      outputs than are possible with the number of available CRTCs).
      
      Fixes #418
      20d24992
    • Marco Trevisan's avatar
      display: Don't always set the primary monitor to the first in list · 49957ef8
      Marco Trevisan authored
      As per the binding that we have between the list store and the combo-box, when
      the first element is added to the list-store, the combo box set this value as
      the selected-index, and this leads to a call to cc_display_monitor_set_primary
      which set the first-listed monitor as primary and unset the real primary monitor.
      
      To avoid this, just ignore the binding when rebuilding the UI, since in this
      phase control-center should just reflect the actual state without changing
      anything.
      
      Fixes GNOME/gnome-control-center#419
      49957ef8
  11. 11 Mar, 2019 3 commits
  12. 29 Jan, 2019 3 commits
  13. 18 Jan, 2019 1 commit
    • Benjamin Berg's avatar
      display: Correctly round scaled monitor size · 4db431d7
      Benjamin Berg authored
      We were converting the floating point numbers to integers using a cast,
      which causes them to be always rounded down. The result is that a
      monitor may be too small by a pixel, creating broken configurations.
      
      Also fix the same issue when calculating whether a scale should be
      supported.
      
      See GNOME/mutter#412
      4db431d7
  14. 24 Oct, 2018 1 commit
    • Benjamin Berg's avatar
      display: Run snapping after certain modifications · 32a6f9be
      Benjamin Berg authored
      Anything that affects the size of the screen (or its existance) may
      result in invalid configurations. Do a small effort in trying to fix
      this by calling into the snapping algorithm for the modified monitor.
      
      Addresses issue #247 to a large extend.
      32a6f9be
  15. 17 Oct, 2018 3 commits
  16. 16 Oct, 2018 1 commit
  17. 11 Oct, 2018 1 commit
  18. 03 Aug, 2018 1 commit
  19. 29 May, 2018 3 commits
  20. 28 May, 2018 4 commits