[Differential] [Request, 607 lines] D3723: Introduce a KWin internal on-screen-notification service

graesslin (Martin Gräßlin) noreply at phabricator.kde.org
Sun Dec 18 11:05:06 UTC 2016


graesslin created this revision.
graesslin added reviewers: KWin, Plasma.
Restricted Application added a project: KWin.
Restricted Application added subscribers: kwin, plasma-devel.

REVISION SUMMARY
  Recently we noticed that there are multiple areas where KWin needs to
  inform the user about how to operate. Examples are:
  
  - Screenshot
  - ColorPicker
  - Pointer constraint enabled
  - Pointer constraint about to be removed
  - Kill Window
  
  For Screenshot and ColorPicker we used an EffectFrame to render it. But
  this is not an optimal solution as it's lacking many features we would
  need. We cannot properly use it from within KWin core, we cannot
  implement features like hide on mouse over, etc. etc.
  
  This change introduces an OnScreenNotification which supports:
  
  - showing an icon
  - showing a message
  - timeout
  
  It is Qml styled, so that it can be easily adjusted. This is a big
  improvement over the EffectFrame solution. The Qml file creates a Plasma
  Dialog of type OSD. Thus KWin places it like the normal OSD windows and
  also looks kind of similar. In the case of KWin the focus is more on the
  message, than an icon, so the icon is placed left of the text.
  
  While the OnScreenNotification is supposed to be used like a singleton,
  it doesn't use the KWin singleton pattern. Instead a small wrapper
  namespace OSD is introduced which provides a convenient API for KWin
  internal areas to show/hide the notification. By not using the KWin
  singleton pattern, the OnScreenNotification does not depend on any other
  parts of KWin and can be easily unit-tested.
  
  A few features are still missing and will be added in further commits:
  
  - hide-out on mouse over
  - optional skip close animation (needed for screenshot)
  - X11 support (not that important as it's mostly for Wayland features)

REPOSITORY
  R108 KWin

BRANCH
  on-screen-notification

REVISION DETAIL
  https://phabricator.kde.org/D3723

AFFECTED FILES
  CMakeLists.txt
  autotests/CMakeLists.txt
  autotests/onscreennotificationtest.cpp
  autotests/onscreennotificationtest.h
  onscreennotification.cpp
  onscreennotification.h
  osd.cpp
  osd.h
  qml/CMakeLists.txt
  qml/onscreennotification/plasma/dummydata/osd.qml
  qml/onscreennotification/plasma/main.qml

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: graesslin, #kwin, #plasma
Cc: plasma-devel, kwin, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20161218/201bfefe/attachment.html>


More information about the Plasma-devel mailing list