1. 03 Oct, 2019 1 commit
  2. 15 Jul, 2019 1 commit
  3. 12 Jun, 2019 1 commit
    • David Edmundson's avatar
      Try getting the X keyboard grab multiple times · 4af9ea1e
      David Edmundson authored
      Summary:
      Right now when the screen locker starts it tries to grab the keyboard on
      X. This fails if any other application has grabbed the keyboard.
      
      In these situations the screen simply doesn't lock which is a pretty
      rubbish state.
      
      This can't be realistically fixed properly on X, on wayland it's a
      non-issue.
      
      However, we can minimise the occasions when this occurs.
      
      This patch emits a signal before locking and then tries the lack
      multiple times. Clients can listen for this event and release their
      keyboard grabs.
      
      Test Plan:
      Wrote relevant matching kwin patch to close effects
      "sleep 5 ; loginctl lock-session" whilst a desktop effect was active
      still locked the session
      
      Reviewers: #plasma, #kwin, zzag
      
      Reviewed By: #plasma, #kwin, zzag
      
      Subscribers: zzag, broulik, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D20804
      4af9ea1e
  4. 01 Apr, 2019 1 commit
    • Nate Graham's avatar
      Add Meta+L shortcut for "Lock Session" · 505fedc3
      Nate Graham authored
      Summary:
      This shortcut is used by default on Windows and it's also nice to have global shortcuts
      use the Meta key in general.
      
      Test Plan:
      - Log into a new user account or reset the ksmserver section in the Shortcuts KCM
      - Hit {key Meta L} or {key ctrl alt L}
      - Observe that both work
      
      Reviewers: #plasma, #vdg, broulik, GB_2
      
      Reviewed By: #vdg, GB_2
      
      Subscribers: nicolasfella, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D20178
      505fedc3
  5. 10 Dec, 2018 1 commit
    • Kai Uwe Broulik's avatar
      Force software rendering when greeter crashed · e1d676c4
      Kai Uwe Broulik authored
      We have a fallback QML theme for when the look and feel package is broken but when the
      graphics driver is broken (e.g. proprietary graphics driver update) the lock screen would
      stop working. When the greeter crashed, better play safe and force software rendering
      
      Reviewed-By: d_ed
      (cherry picked from commit 875e44f5)
      e1d676c4
  6. 11 Jul, 2018 1 commit
    • Kai Uwe Broulik's avatar
      Force software rendering when greeter crashed · 875e44f5
      Kai Uwe Broulik authored
      We have a fallback QML theme for when the look and feel package is broken but when the
      graphics driver is broken (e.g. proprietary graphics driver update) the lock screen would
      stop working. When the greeter crashed, better play safe and force software rendering
      
      Reviewed-By: d_ed
      875e44f5
  7. 10 Jul, 2018 1 commit
  8. 06 Feb, 2018 2 commits
  9. 22 Apr, 2017 1 commit
    • Martin Flöser's avatar
      Terminate kscreenlocker_greet and don't kill it on unlockRequest · 88b502d3
      Martin Flöser authored
      When the screen should get unlocked the greeter process needs to be
      terminated. This is handled in various places correctly except for the
      logind integration. There kill was used instead of terminate resulting
      in no cleanup. With the new long running kcheckpass this results in
      orphaned kcheckpass processes.
      88b502d3
  10. 16 Mar, 2017 1 commit
    • Martin Flöser's avatar
      [ksld] Don't unset greeter connection on destroy unconditionally · 06917c12
      Martin Flöser authored
      Summary:
      If the greeter exits the Wayland connection gets destroyed and a new
      greeter with a new Wayland connection gets created. As the destroying
      of the Wayland connection is async it can happend that the destroy
      signal is emitted after the new connection is created. So far our code
      unconditionally reset the connection on destroy which resulted in KWin
      not being able to recognize the new greeter and only presenting a black
      screen. After unlock with loginctl unlock-session the session shows a
      dead greater window. Which can be explained by the connection never
      getting destroyed.
      
      This change verifies that the greeter connection is actually the one
      which is currently in use. If the greeter dies the new greeter is shown
      properly in the Wayland session and no dead greeter is shown after
      unlock.
      
      BUG: 377152
      
      Test Plan: killed kscreenlocker_greet 6 times, always properly restarted
      
      Reviewers: #plasma
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D5008
      06917c12
  11. 22 Aug, 2016 1 commit
    • David Edmundson's avatar
      RFC: Make Switch User option invoke the switch user UI in the lockscreen · 3afcbffa
      David Edmundson authored
      Summary:
      Instead of having a separate switch user screen, we just invoke the lock
      screen with a parameter to default to the switch session page.
      
      This is better because:
      
      - it's a familiar consistent UI to the lockscreen
      
      - It has all the lockscreen features. (Wallpapers, Multiscreen, OSDs)
      
      - Session switching is simpler as we won't have to wait to invoke the
      lock screen before switching VTs
      
      - We get rid of one more chunk of rubbish code from ksmserver
      (it becomes just KSldApp::self()->lock(DefaultToSwitchUser) instead of a
      blocking dialog)
      
      - There's one less lnf component to maintain
      
      However, it does bring the behavioural change that you can't cancel from
      the "switch user screen" without entering a password
      
      (argubaly a feature... Switch User locks on some other platforms)
      
      And the session will unconditionally lock when you switch session,
      currently it's linked to the config option "Lock screen automatically"
      
      (which is arguably completely wrong anyway, as that config option is
      displayed as being about locking after a timeout)
      
      Reviewers: #plasma
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D2525
      3afcbffa
  12. 18 Jul, 2016 1 commit
  13. 04 Apr, 2016 1 commit
    • Martin Flöser's avatar
      Workaround problems with Qt::QueuedConnection · e9984e21
      Martin Flöser authored
      Summary:
      For unknown reasons our signals with Qt::QueuedConnection are not
      delivered with Qt 5.6 if the context object is this (KSldApp instance).
      
      If we use a different context object (e.g. the sender) it works.
      
      The lack of signals not working triggered quite a few bugs, like
      * grace time not working
      * global shortcuts not working
      
      BUG: 361008
      BUG: 361007
      
      Reviewers: #plasma
      
      Subscribers: plasma-devel
      
      Projects: #plasma
      
      Differential Revision: https://phabricator.kde.org/D1314
      e9984e21
  14. 23 Feb, 2016 2 commits
  15. 17 Feb, 2016 1 commit
  16. 16 Feb, 2016 2 commits
    • Martin Flöser's avatar
      GlobalAccel can operate on QKeyEvent · 2c7782d8
      Martin Flöser authored
      So far the GlobalAccel component was bound to X11 by only processing
      native xcb events. The evaluation of whether a shortcut was triggered
      is not bound to X11, though. It completely operates on Qt key codes and
      modifiers. Information also available in QKeyEvent.
      
      This change makes GlobalAccel perform the same way on QKeyEvent as on
      xcb events. To achieve this KSldApp implements the virtual method event
      and passes all KeyPress events sent to KSldApp to GlobalAccel. This way
      a Wayland compositor (e.g. KWin) can send a QKeyEvent to KSldApp to get
      the GlobalAccel support working.
      
      Reviewed-By: Bhushan Shah, Kai-Uwe Broulik
      2c7782d8
    • Martin Flöser's avatar
      Don't handle lockScreenShown if already in Locked state · 0e5cb71a
      Martin Flöser authored
      No need to emit the locked signal multiple times.
      
      Reviewed-By: Bhushan Shah
      0e5cb71a
  17. 02 Feb, 2016 2 commits
  18. 01 Feb, 2016 3 commits
    • Martin Flöser's avatar
      Forward error channel from greeter process to KSld · a68dda3d
      Martin Flöser authored
      Allows us to get the debug output from the greeter when testing the
      whole system.
      a68dda3d
    • Martin Flöser's avatar
      Init m_waylandDisplay with null · 9eb1a64b
      Martin Flöser authored
      Hit an interesting crash in a KWin autotest.
      
      Reviewed-By: Bhushan Shah
      9eb1a64b
    • Martin Flöser's avatar
      Async variant to check whether power management is inhibited · 4e9dce5f
      Martin Flöser authored
      Summary:
      KScreenLocker checks whether power management is inhibited on idle
      time out. So far this used a sync and blocking dbus call.
      
      This change makes the check async. KScreenLocker connects to the
      InhibitionsChanged signal provided by powerdevil and queries the
      current state in an async way each time the signal gets emitted.
      
      When KScreenLocker hits an idle connection it has the knowledge wheter
      power management is inhibited and does not need to perform the blocking
      call any more.
      
      It's important for KScreenLocker to not have blocking calls as it's
      used inside the Wayland compositor and can by that easily create
      dead-lock situations (e.g. PowerDevil waiting for the Wayland compositor
      and the compositor waiting for the reply).
      
      Reviewers: bshah, broulik
      
      Subscribers: plasma-devel
      
      Projects: #plasma
      
      Differential Revision: https://phabricator.kde.org/D884
      4e9dce5f
  19. 20 Jan, 2016 1 commit
  20. 14 Jan, 2016 1 commit
    • Martin Flöser's avatar
      Improve setting global lock shortcut · 56133098
      Martin Flöser authored
      Summary:
      KSld is a library which means the componentName is set to the application
      name. This works fine for KSMServer, but in KWin the shortcut didn't
      work.
      
      This change manually sets the proper component name (ksmserver) on the
      QAction and at the same time removes the usage of the KActionCollection.
      
      Due to that we can also drop the dependency on XmlGui.
      
      Test Plan: Locking screen through configured shortcut works now in kwin_wayland.
      
      Reviewers: bshah
      
      Subscribers: plasma-devel
      
      Differential Revision: https://phabricator.kde.org/D820
      56133098
  21. 16 Dec, 2015 1 commit
  22. 04 Dec, 2015 1 commit
  23. 10 Nov, 2015 1 commit
  24. 09 Nov, 2015 3 commits
  25. 06 Nov, 2015 1 commit
  26. 02 Nov, 2015 1 commit
  27. 01 Nov, 2015 1 commit
  28. 28 Oct, 2015 1 commit
    • Bhushan Shah's avatar
      [screenlocker] Get rid of libkworkspace dependency from the ksld · 9c15e9f4
      Bhushan Shah authored
      From the KDisplayManager code :
      
      // This only tells KDM to not auto-re-login upon session crash
      void
      KDisplayManager::setLock(bool on)
      {
          if (DMType == NewKDM || DMType == OldKDM)
              exec(on ? "lock\n" : "unlock\n");
      }
      
      Given we no longer have kdm in Plasma 5. This hardly makes sense.
      
      REVIEW: 125837
      9c15e9f4
  29. 27 Oct, 2015 3 commits
    • Bhushan Shah's avatar
      [screenlocker] Introduce WaylandLocker · bd159089
      Bhushan Shah authored
      Currently X11Locker highly depends upon the X specific parts and doesn't
      work on the wayland. This WaylandLocker class is default implementation
      for the AbstractLocker and currently no-op.
      
      This commit also adds the guards for X specific code in KSldApp so it
      don't crash on the wayland platform
      
      REVIEW: 125827
      bd159089
    • Martin Flöser's avatar
      [screenlocker] More XFlush and XSync before server grab · c4564f2d
      Martin Flöser authored
      We seem to have a problem in the autotest concerning grabbing so
      try to make the whole thing less timing dependent.
      
      The XSync should be before the server grab, otherwise it just doesn't
      make sense. And all XLib code should do a flush as otherwise we don't
      know if that will happen at all.
      c4564f2d
    • Bhushan Shah's avatar
      [screenlocker] Rename the lockwindow.* files to x11locker.* · 957bd03e
      Bhushan Shah authored
      Follow up of review 125802.
      957bd03e
  30. 26 Oct, 2015 1 commit