Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull KWin patches (2024-01-10 - 2024-05-23) #25

Merged
merged 27 commits into from
Jun 19, 2024
Merged

Commits on May 23, 2024

  1. feat(input): remove the terminate server shortcut

    Accidentally pressing any shortcut shouldn't take down the whole session.
    If a compositor isn't reponsive but can still process shortcuts for some
    reason, you can still switch to a different virtual terminal to explicitly
    kill it from there.
    romangg committed May 23, 2024
    Configuration menu
    Copy the full SHA
    c31e0f5 View commit details
    Browse the repository at this point in the history

Commits on May 28, 2024

  1. refactor: slight code cleanup

    alex1701c authored and romangg committed May 28, 2024
    Configuration menu
    Copy the full SHA
    b772bf7 View commit details
    Browse the repository at this point in the history

Commits on May 29, 2024

  1. feat: drop "<N>" window caption suffix

    The current implementation of the `<N>` suffix is still buggy and its
    benefits are doubtful. One could argue that visual aids such as window
    thumbnails or highlighting the windows are better. On its own, these
    numbers don't have strong connections to the windows and can change on
    a whim.
    
    Co-authored-by: Roman Gilg <subdiff@gmail.com>
    zzag and romangg committed May 29, 2024
    Configuration menu
    Copy the full SHA
    0fe01b0 View commit details
    Browse the repository at this point in the history
  2. refactor: make NETRootInfo initialization reasonable

    The documentation of NETRootInfo::activate() says that it should be
    called after creating the NETRootInfo object to read properties.
    
    However, it's called in two places: VirtualDesktopManager::setRows()
    and Workspace::initializeX11(). At quick glance, there's no justifying
    reason to call activate() in setRows(), it doesn't fit the purpose
    of setRows().
    
    This change re-arranges NETRootInfo initialization code so it makes
    more sense.
    zzag authored and romangg committed May 29, 2024
    Configuration menu
    Copy the full SHA
    6d00df0 View commit details
    Browse the repository at this point in the history
  3. fix: prevent including "show desktop" entry if there are no other win…

    …dows
    
    BUG: 419408
    zzag authored and romangg committed May 29, 2024
    Configuration menu
    Copy the full SHA
    14c07fb View commit details
    Browse the repository at this point in the history

Commits on May 30, 2024

  1. fix: discard return value

    Explicitly discard the return value. This is an error otherwise with GCC.
    romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    26e375b View commit details
    Browse the repository at this point in the history
  2. test: add workaround for race condition

    Needs to be further investigated. Only fails with release builds.
    romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    628e951 View commit details
    Browse the repository at this point in the history
  3. feat: add a placeholder message in the thumbnails grid switcher

    It improves the visuals of the switcher when there are no entries to display.
    zzag authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    277584a View commit details
    Browse the repository at this point in the history
  4. fix: define decoration spacer button

    Brings it back.
    romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    424e549 View commit details
    Browse the repository at this point in the history
  5. build: reduce dependencies

    The KF6::ConfigWidget dependency can be replaced with smaller ones.
    romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    9026e93 View commit details
    Browse the repository at this point in the history
  6. feat: implement new overview layout algorithm

    Replace old "closest" and "natural" layout algorithms with new layout
    algorithm. The new layout algorithm tries to
    - use screen space efficiently, given diverse geometries of windows
    - be aesthetically pleasing
    - and minimize movement of windows from initial positions.
    
    More concretely, find a layered layout, where each layer, or strip, is a
    row or column. Ensure that different strips have similar widths, and use
    binary search to find a packing with similar aspect ratio to the layout
    area. Within each strip, minimize horizontal movement (for rows) or
    vertical movement (for columns) of windows.
    
    Run time is O(n) (up to log factors), where n is the number of windows.
    
    CCBUG: 453749
    BUG: 450263
    BUG: 477833
    BUG: 478097
    BUG: 477830
    fanzhuyifan authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    af3caec View commit details
    Browse the repository at this point in the history
  7. fix: don't build SPI support if Qt wasn't build with it

    Signed-off-by: Falko Becker <falko.becker@mbition.io>
    aleixpol authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    d2b39ef View commit details
    Browse the repository at this point in the history
  8. feat(plugin): provide a way to reserve a screen edge for grid mode

    BUG: 478137
    zzag authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    a5348ab View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    eb1f12a View commit details
    Browse the repository at this point in the history
  10. feat: adds a border around hovered and selected desktop in desktopGrid

    Currently desktop grid view is missing the selection rectangle when hovered over a
    desktop.
    This adds the selection rectangle on hover, since it used to be there before
    three-state design.
    
    Currently selected desktop has thinner and different colored border.
    
    ![image](/uploads/ad1f2f7acbe602fb7b9479ce859026b7/image.png)
    
    ![image](/uploads/9fa50bac4b81958da0b8926f8d2518ba/image.png)
    
    ![image](/uploads/3e46c1f5a740c40bbf18a5d887f31d39/image.png)
    
    BUG:481812
    Akselmo authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    8b47439 View commit details
    Browse the repository at this point in the history
  11. build: revamp CMakeLists.txt

    zzag authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    196bed4 View commit details
    Browse the repository at this point in the history
  12. fix: use correct enum value for PointerDevice

    BUG: 482191
    Naxdy authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    6bb35d9 View commit details
    Browse the repository at this point in the history
  13. docs: fix License metadata

    zzag authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    a10342a View commit details
    Browse the repository at this point in the history
  14. fix(plugin): fix autohidden panels blinking when plasmashell launches

    The autohidden panels "blink" because this effect animates their opacity.
    
    The dock windows are animated because, as the comment says, the old effect
    animated almost every window.
    
    Conceptually, animating docks doesn't align with the purpose of this effect.
    zzag authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    91425cf View commit details
    Browse the repository at this point in the history
  15. fix: do not take ownership of QuickEffect::delegate

    QuickEffect::setDelegate is exposed QML API.
    
    The lifespan of assigned objects is therefore managed by the QML engine,
    and we should be watching for deletion not actually deleting it.
    davidedmundson authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    0d476aa View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    2b3e7b5 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    13048ce View commit details
    Browse the repository at this point in the history
  18. feat: mark risky KNS content

    By design, these categories of content can run arbitrary code on the
    system. This makes them security-sensitive and risky, so we need to
    inform the user about it.
    
    Depends on https://invent.kde.org/frameworks/knewstuff/-/merge_requests/309
    Pointedstick authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    5df5385 View commit details
    Browse the repository at this point in the history
  19. refactor: round all the things consistently

    Now that we have Kirigami.Units.cornerRadius, there's a central source
    of truth for corner radius so don't have to use random numbers for
    these anymore.
    
    Part of https://invent.kde.org/teams/vdg/issues/-/issues/45.
    Pointedstick authored and romangg committed May 30, 2024
    Configuration menu
    Copy the full SHA
    3394617 View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2024

  1. feat(plugin): remove middle click to close virtual desktop

    This is a hidden destructive action[1] in a context where users are not
    primed to expect it. It's also largely unnecessary since the delegates
    already show a delete button on hover, and deleting virtual desktops
    isn't such a common task that it benefits from an accelerator. Let's
    remove it for safety.
    
    [1] It's destructive because user-created state on the deleted virtual
    desktop is lost--with no confirmation or undo, to boot.
    
    BUG: 484999
    FIXED-IN: 6.1
    Pointedstick authored and romangg committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    c8cd868 View commit details
    Browse the repository at this point in the history
  2. fix: clarify strings for inhibition

    To clarify that the toggle action merely temporarily disables the blue light
    filter, rather than turning the schedule off permanently like the "Disbaled"
    setting in the KCM does, use "suspend/resume" terminology instead of "off/on"
    in the keyboard shortcut and OSD.
    
    Follow-up on plasma-workspace!4262
    
    CCBUG: 486647
    nclarius authored and romangg committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    0e865d2 View commit details
    Browse the repository at this point in the history
  3. refactor: optimize saving discarded rules to config

    After porting to KConfigXT settings some time ago, there was still an
    inefficient and error-prone codepath between the `RuleBook` (which keeps
    the runtime list of `Rules`) and the `RuleBookSettings` (responsible for
    config reads and saves), in the form of the `setRules()` method.
    
    We can eliminate the `setRules()` codepath, reducing unnecessary
    runtime process and file access operations, and instead:
    - Keep track of the config `id` in the `Rules` objects
    - Keep a single `RuleBookSettings` object as a member
    - Modify or delete the discarded rules settings directly
    - Save when necessary
    
    This also fixes two bugs/pitfalls of the previous solution:
    - the config group id for each rule is now preserved instead of creating
      new ones
    - no leftovers on the config file for the discarded groups and entries
    
    Setting custom configs for the integration tests still works unchanged.
    
    BUG: 446381
    FIXED-IN: 6.1
    
    Co-authored-by: Roman Gilg <subdiff@gmail.com>
    ismailof and romangg committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    bb085c7 View commit details
    Browse the repository at this point in the history