1. 20 Aug, 2020 1 commit
  2. 07 Aug, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Prettify license headers · 4ce853e8
      Vlad Zahorodnii authored
      4ce853e8
    • Vlad Zahorodnii's avatar
      Switch to SPDX license markers · 1fb9f6f1
      Vlad Zahorodnii authored
      The main advantage of SPDX license identifiers over the traditional
      license headers is that it's more difficult to overlook inappropriate
      licenses for kwin, for example GPL 3. We also don't have to copy a
      lot of boilerplate text.
      
      In order to create this change, I ran licensedigger -r -c from the
      toplevel source directory.
      1fb9f6f1
  3. 22 Apr, 2017 1 commit
    • Martin Flöser's avatar
      Introduce support for keyboard layout switching policies · bf99d9ff
      Martin Flöser authored
      Summary:
      This change introduces the initial support for keyboard layout switching
      policies like in the X11 session. This first change only adds support for
      Global and Virtual Desktop policy. This means the current layout is
      stored in context to the current virtual desktop. Whenever one changes
      the virtual desktop the previous layout is restored. If the user has not
      yet navigated to this virtual desktop a switch to default layout is
      performed.
      
      This is the first code interacting with the new Virtual Desktop API which
      is not based on integer ids. To fully support this the API is slightly
      extended.
      
      Test Plan: Added test case
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D5301
      bf99d9ff
  4. 11 Feb, 2017 1 commit
  5. 06 Feb, 2017 1 commit
    • Martin Flöser's avatar
      Ensure the layoutChanged DBus signal gets emitted when changing layouts through DBus · b16bd414
      Martin Flöser authored
      Summary:
      Unfortunately Xkb does not emit a signal when the keyboard layout
      changes. Due to that we need to manually check in KeyboardLayout after
      each action which could change the layout whether the layout changed.
      
      This was not yet done for the case when the layout got changed through
      the DBus interface. Resulting in the DBus signal not emitted.
      
      This change addresses the issue by invoking the check for change after
      changing the keyboard layout.
      
      Test Plan: Added test case
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D4387
      b16bd414
  6. 30 Jan, 2017 1 commit
    • Martin Flöser's avatar
      Implement the DBus org.kde.KeyboardLayouts interface of keyboard kded · 551d4a8a
      Martin Flöser authored
      Summary:
      This change introduces a new class KeyboardLayoutDBusInterface which
      implements the same DBus interface as the keyboard kded module.
      
      Thus components which interact with the keyboard kded through dbus start
      to also work on Wayland.
      
      Together with D4322 this should result in keyboard layout being available
      on the lock screen.
      
      T5209
      
      Test Plan:
      Tested with qdbusviewer: switching layout works, signal on
      change gets emitted.
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D4323
      551d4a8a
  7. 26 Jan, 2017 1 commit
    • Martin Flöser's avatar
      Support global shortcut to switch to specific layout · 6b0b4cf4
      Martin Flöser authored
      Summary:
      Our keyboard layout kcm allows to set a global shortcut to switch to a
      specific keyboard layout. So far KWin/Wayland did not support those
      shortcuts, only the switch to next layout shortcut was supported.
      
      This change introduces support for custom layout shortcuts. For that
      we iterate over all available layouts and check whether a shortcut is
      registered. If that is the case a QAction is created and passed to
      KGlobalAccel.
      
      As the triggering code is similar to the menu, the switchLayout lambda
      is split out into a dedicated method and translating the layouts is
      extracted into a method.
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D4256
      6b0b4cf4
  8. 25 Jan, 2017 1 commit
    • Martin Flöser's avatar
      Add a basic SNI for keyboard layout · fe561c5c
      Martin Flöser authored
      Summary:
      On X11 the SNI for keyboard layout is provided by the keyboard kded.
      On Wayland that kded has no real access to the layouts and cannot
      properly implement switching. Given that it's better to integrate the
      SNI directly in KWin.
      
      The implementation of the SNI is largly based on the existing SNI from
      plasma-desktop/kcms/keyboard. The implementation so far supports:
       * Switching to next layout on toggle
       * Presenting all layouts in a context menu
       * Switching to a specific layout through the context menu
       * Opening the keyboard layout configuration module
       * scroll on SNI to switch layout
       * config option whether to show the SNI
      
      Not yet supported are:
       * flags and/or short text for the layouts
      
      The last point needs more explanation. On X11 the layout name is
      something like "de" or "us". This can be directly mapped to a flag and
      can be added as a short note.
      
      Xkbcommon does not provide this information directly. Instead it provides
      us the full name of the layout, e.g. "German" or "English (us)". There is
      no way in the API to go from "German" to "de".
      
      Instead we need to parse the evdev.xml file to gather all information
      about layouts. This is already done in the keyboard kcm to configure
      layouts. The implementation needs to be split out into a small helper
      library.
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D4220
      fe561c5c
  9. 18 Jan, 2017 1 commit
    • Martin Flöser's avatar
      Split implementation of keyboard layout handling into a dedicated class · d6c0a541
      Martin Flöser authored
      Summary:
      So far the implementation of keyboard layout handling was split between
      KeyboardInputRedirection and Xkb. KeyboardInputRedirection registered
      the global shortcut and did the handling for layout switch and config
      changes. Xkb did the notification on layout change.
      
      Layout changes can nowadays be detected through an InputEventSpy. It
      can only happen after a key change or an explicit layout switch. Thus
      it does not need to be in Xkb anymore which allows to reduce Xkb to
      only care about the Xkb keymap and state tracking.
      
      This change introduces a new class KeyboardLayout which is an
      InputEventSpy and takes over the task of the layout change notification
      from Xkb and the layout management from KeyboardInputRedirection. Thus
      everything related to management of keyboard layout is together in one
      class.
      
      This allows in future to add unit test to it (requires further cleanup
      of Xkb to be able to use it and drop the InputRedirection dependency) and
      opens the possibility to also take over keyboard layout management on X11
      for the Plasma desktop.
      
      Test Plan: Manual testing
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D4135
      d6c0a541
  10. 25 Mar, 2014 1 commit
  11. 24 Jul, 2013 1 commit
  12. 14 Sep, 2012 1 commit
  13. 17 Dec, 2009 1 commit
  14. 05 Feb, 2009 1 commit
  15. 06 Sep, 2008 1 commit
  16. 03 May, 2008 2 commits
  17. 24 Apr, 2008 1 commit
  18. 21 Apr, 2008 1 commit
  19. 20 Apr, 2008 1 commit
  20. 18 Apr, 2008 1 commit