1. 07 Jan, 2020 3 commits
    • Roman Gilg's avatar
      fix(randr): make sure crtc exists · 05e361e5
      Roman Gilg authored
      When an output gets enabled we directly want to set the logical size. But at
      this point because of the order of calls in XRandRConfig the crtc is not yet
      set on the output.
      
      To fix this in a quick way just provide the free crtc as an argument. Long-term
      change the order of calls.
      05e361e5
    • Roman Gilg's avatar
      feat: add auto rotate and tablet mode information · 50969ab6
      Roman Gilg authored
      Summary:
      This adds feature flags if a backend supports auto rotations. While this is not
      directly a function of a backend on X11 auto rotation is not tested fully yet
      and there are problems with touch input. This way a client can query if auto
      rotation is fully functional on a backend.
      
      For the KWayland backend auto rotation and tablet mode information querying is
      already wired up but for now deactivated until all KWin patches have been
      landed.
      
      Test Plan:
      Compiles and tests with an XPS 2-in-1, which sadly does not send events about
      the tablet state.
      
      Reviewers: #plasma, apol
      
      Reviewed By: apol
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D26281
      50969ab6
    • Roman Gilg's avatar
      feat: replace replication source with logical size API · 6a5a180b
      Roman Gilg authored
      Summary:
      Just overriding the logical size of an output that replicates another one is
      simpler than trying to send a relation between both objects to the display
      server and in case of X11 it is not possible.
      
      Wires up support for that in the X11 backend.
      
      Test Plan: Compiles. Wayland replication tested.
      
      Reviewers: #kwin
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D26309
      6a5a180b
  2. 11 Dec, 2019 1 commit
  3. 11 Nov, 2019 1 commit
    • Roman Gilg's avatar
      docs: add contributing guide · 4e176e1d
      Roman Gilg authored
      Summary:
      This adds a document providing information on how to contribute to libkscreen
      and additionally a minimal readme file pointing to it.
      
      The contributing guide is the analogous to a newly added one in KScreen.
      
      It includes clarifications about the used coding style and introduces a Commit
      Message Guideline based on the KDE Commit Policy and the Conventional Commits
      specification.
      
      Reviewers: #plasma
      
      Subscribers: davidedmundson, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D25064
      4e176e1d
  4. 04 Nov, 2019 1 commit
    • David Edmundson's avatar
      Add KDEClangFormat cmake support · ee676536
      David Edmundson authored
      Summary:
      This allows devs to run: "make clang-format" and format all files easily
      using the preset KDE clang format style
      
      This patch adds support so devs can easily test the intended formatting
      now, it doesn't change the code yet.
      
      Doing an initial run to commit everything will happen later.
      
      Test Plan:
      Ran script
      git diff was full of amazingly cleaned code
      
      See D25134
      ee676536
  5. 16 Oct, 2019 1 commit
  6. 13 Oct, 2019 1 commit
  7. 10 Oct, 2019 2 commits
  8. 02 Oct, 2019 1 commit
  9. 19 Sep, 2019 3 commits
  10. 18 Sep, 2019 1 commit
    • Roman Gilg's avatar
      Add enforced mode size getter · 293cb32c
      Roman Gilg authored
      Summary:
      Introduce little helper to API, which gives back either the current mode size
      or if no current mode is set the preferred mode or if there is no preferred
      mode as last resort the first one in the map if the map is not empty.
      
      In a small behavior change `geometry()` then can still give a valid geometry
      back even if no current mode is set at the moment.
      
      Test Plan: Compiles.
      
      Reviewers: #plasma
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D24037
      293cb32c
  11. 05 Sep, 2019 3 commits
    • Roman Gilg's avatar
      RandR: Replicate outputs with XRender extension · 31d71564
      Roman Gilg authored
      Summary:
      This provides means to set replicas and queries them on X11 by transforming
      crtcs with the XRender extension.
      
      There is a heuristic at play to detect possible replications and currently
      the aspect ratio is not perserved but the image stretched. Using different
      values for the transformation matrix also the former should be possible.
      
      Test Plan: Manually together with patch to KScreen.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: davidedmundson, plasma-devel
      
      Tags: #plasma
      
      Maniphest Tasks: T11222
      
      Differential Revision: https://phabricator.kde.org/D23663
      31d71564
    • Roman Gilg's avatar
      Introduce output replication API · c8ef5444
      Roman Gilg authored
      Summary:
      The API allows an output to be replica of another output by setting a
      replication source on the former.
      
      Supporting backends are supposed to handle this by moving and resizing the
      replica to match the source geometry.
      
      Test Plan: Compiles.
      
      Reviewers: #kwin
      
      Subscribers: davidedmundson, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D23710
      c8ef5444
    • Roman Gilg's avatar
      Wayland: Set fractional output scale · 802b0c83
      Roman Gilg authored
      Summary:
      In order to use fractional scaling on Wayland the KScreen internal output scale
      must be set with the fractional scale getter of the OutputDevice interface.
      
      Reviewers: #plasma
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D23731
      802b0c83
  12. 04 Sep, 2019 1 commit
  13. 02 Sep, 2019 1 commit
    • Roman Gilg's avatar
      XRandR: Generic code cleanup · 5ed9a35e
      Roman Gilg authored
      Summary:
      No functional changes, white space added where sensible, debug messages now
      without repetition of qCDebug(..) macros, modernized, keeps line limit.
      
      Test Plan: Compiles and KScreen runs on X11.
      
      Reviewers: #kwin
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D23647
      5ed9a35e
  14. 12 Aug, 2019 2 commits
  15. 10 Aug, 2019 4 commits
  16. 09 Aug, 2019 1 commit
    • Frederik Gladhorn's avatar
      Simplify XRandR::outputChanged · cc8f88d9
      Frederik Gladhorn authored
      By returning early, we can avoid some of the nesting. The old code would
      call m_configChangeCompressor->start() in any case, move that to the
      beginning and then use early returns.
      There is actually very little code changed, "git show -w" shows the
      actual changes. The fallthrough was hard to read.
      
      Reviewers: #plasma
      
      Subscribers: mart, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D14764
      cc8f88d9
  17. 08 Aug, 2019 1 commit
    • Roman Gilg's avatar
      Wayland: manage outputs without id mapping · 6f5acdf2
      Roman Gilg authored
      Summary:
      Instead of having a separate mapping from KWayland ids to KScreen ids for
      output removal connect to the removed signal.
      
      For that create the output device through the Registry instead of binding.
      
      Test Plan: Manually plugged in and removed output in Wayland session.
      
      Reviewers: #plasma
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D23004
      6f5acdf2
  18. 07 Aug, 2019 2 commits
  19. 13 Jun, 2019 1 commit
    • Roman Gilg's avatar
      Do hash and hex name based output hashes · 5e1934de
      Roman Gilg authored
      Summary:
      The hash of an output is based on its name in case no EDID information is
      available. In order to have the same hash format as when EDID is available
      do the same hash operation to the name as to the EDID checksum.
      
      Introduce the new  `hashMd5` function and deprecate the previous `hash`
      function. This way we can use the new function, which does hash the
      output names correctly, in cases where it makes sense and no user configs
      break.
      
      Test Plan: Compiles.
      
      Reviewers: #plasma, lbeltrame
      
      Subscribers: lbeltrame, mart, plasma-devel
      
      Tags: #plasma
      
      Maniphest Tasks: T10028
      
      Differential Revision: https://phabricator.kde.org/D17007
      5e1934de
  20. 12 Jun, 2019 1 commit
  21. 03 Jun, 2019 1 commit
  22. 16 May, 2019 3 commits
  23. 09 May, 2019 1 commit
  24. 15 Feb, 2019 2 commits
  25. 07 Feb, 2019 1 commit