11777 Commits (570ce0597418413d4d3d061452e2009d77772aa4)
 

Author SHA1 Message Date
Martin Gräßlin 570ce05974 [kwin] Adjust CMakeLists.txt to allow standalone built of KWin
Preparation step before splitting:
* adds project(KWIN)
* lists all KWin dependencies

KWin can be built standalone if cmake is run with:
-DKWIN_BUILD_OXYGEN=OFF
-DKWIN_BUILD_KAPPMENU=OFF

Oxygen because it needs liboxygen - for standalone clients/oxygen needs
to be moved out of KWin.

KAppmenu because it includes the DBus xml file.

REVIEW: 116872
11 years ago
Martin Gräßlin 0265ae48ec Completely remove the legacy ksmserver shutdown effect
Painting was already disabled in the effect inside ksmserver, thus it
was more or less dead code. Let's remove it completely.

This also allows to remove the "temporary" hack inside KWin's logout
effect.

REVIEW: 116869
11 years ago
Aurélien Gâteau 90498594c2 kwin: add missing library. Fixes build 11 years ago
Martin Gräßlin a4fe0b1d19 [kwin/oxygen] Include KPluginFactory
Got removed from kdecoration.h - sorry for the build failure.
11 years ago
Martin Gräßlin 23e6fbbb71 [kwin] Add missing target link libraries
Missing libs caused compile error if built standalone.
11 years ago
Martin Gräßlin 704e42163d [kwin] Add missing includes
Were missing if built stand-alone.
11 years ago
Martin Gräßlin 5e1dc24bf7 [kwin/libkdecoration] Drop unused include from kdecoration.h 11 years ago
Martin Gräßlin 18a37d7ee8 [kwin] Fix includes of kde4support headers
* drop unused headers
* use QExplicitlySharedDataPointer instead of KSharedPointer
* drop KDE/ from includes
11 years ago
Martin Gräßlin ca6f3e329d [kwin] Fix includes of NETWM
Used kde4support variant.
11 years ago
Aleix Pol 6d3acfc71e Properly point to ksmserver from kwin 11 years ago
Aleix Pol 0283d67998 Move the repositories into plasma-* subdirectories before splitting
Creates two subdirectories: plasma-workspace and plasma-desktop
plasma-workspace contains the modules that should be re-usable between
different form factors. plasma-desktop contains the modules that
are specific to the Desktop.
See http://community.kde.org/Plasma/Tokamak7/split_proposal

Reviewed by Àlex Fiestas
11 years ago
Martin Gräßlin 7382b6d8b1 [kwin] Resolve path to ksmserver dbus interfaces through KWIN_SOURCE_DIR
This is a temporary solution to have less dependencies on
KDEBASE_WORKSPACE_SOURCE_DIR. Once kde-workspace is going to be splitted
this won't work, we need a proper way to find the dbus interfaces
provided by ksmserver.

Note: for appmenu the same problem exists, but doesn't affect us once we
are splitted as we can turn off the usage through a build option. So for
a splitted kde-workspace the appmenu dependency can just be temporarily
be removed.
11 years ago
Martin Gräßlin 9874187099 [kwin] Add a KWIN_SOURCE_DIR to the CMakeLists.txt
This is used to get to KWin's sources instead of
KDEBASE_WORKSPACE_SOURCE_DIR.
11 years ago
Martin Gräßlin 642f643dff [kwin/kcmtabbox] Port away from kde4_add_ui_files 11 years ago
Martin Gräßlin 46392a337d [kwin] Port autotests away from kde4_add_unit_test 11 years ago
Martin Gräßlin dbf2218338 [kwin] kde4_add_ui_files -> qt5_wrap_ui
Less deprecated CMake usage.
11 years ago
Martin Gräßlin cf45bf43a6 [kwin/aurorae] Remove kde4 support bits from CMakeLists.txt 11 years ago
Martin Gräßlin 3671b65001 [kwin] Do not depend on KDE4WORKSPACE_VERSION
KWin needs to have its own version. Split preparation.
11 years ago
Martin Gräßlin 3346e04769 [kwin] Remove config-X11.h includes
None of the defines is used.
11 years ago
Martin Gräßlin cb262a2bbb [kwin] Add used features from config-workspace.h to config-kwin.h
Adds HAVE_UNISTD_H and HAVE_MALLOC_H to config-kwin.h and gets used
in main.cpp. With that KWin does no longer need config-workspace.h.
11 years ago
Martin Gräßlin ca5f8cfe03 [kwin] Remove unused config-workspace.h includes 11 years ago
Martin Gräßlin dc58fc2c32 [kwin/kcms] Another round of kdialog removals 11 years ago
Martin Gräßlin 882c2a4610 Handle keyboard events during move/resize
When moving/resizing a window we don't want the keyboard events being
passed to the Clients. Instead we want to do the normal processing.

Unfortunately moving the window through the keyboard relies on warping
the pointer which is not (yet) available on Wayland. This means that this
is not yet working, but ending through enter/escape etc. is working as
expected.
11 years ago
Martin Gräßlin 6baf794f88 InputRedirection for keyboard events
Major new functionality is xkbcommon support. InputRedirection holds an
instance to a small wrapper class which has the xkb context, keymap and
state. The keymap is initialied from the file descriptor we get from the
Wayland backend.

InputRedirection uses this to translate the keycodes into keysymbols and
to QString and to track the modifiers as provided by the
Qt::KeybordModifiers flags.

This provides us enough information for internal usage (e.g. pass through
effects if they have "grabbed" the keyboard).

If KWin doesn't filter out the key events, it passes them on to the
currently active Client respectively an unmanaged on top of the stack.
This needs still some improvement (not each unmanaged should get the
event). The Client/Unmnaged still uses xtest extension to send the key
events to the window. So keylogging is still possible.
11 years ago
Martin Gräßlin 104e89aff2 Require xkbcommon for KWin's Wayland backend
FindXKB.cmake module and if XKB is not found Wayland
support is not enabled.
11 years ago
Martin Gräßlin 7d48b92e2b Redirect pointer events to the Toplevel
InputRedirection keeps track of the Toplevel which is currently the one
which should get pointer events. This is determined by checking whether
there is an Unmanaged or a Client at the pointer position. At the moment
this is still slightly incorrect, e.g. pointer grabs are ignored,
unmanaged are not checked whether they are output only and input shapes
are not yet tracked.

The pointer events are delivered to the Toplevel as:
* enter
* leave
* move
* button press
* axis event

Nevertheless move events are still generated in InputRedirection through
xcb test for simplicity. They are still send to the root window, so all
windows get mouse move.

Button press and axis are generated only in the implementations of the
event handlers and delivered directly to the window, so other windows
won't see it.
11 years ago
Martin Gräßlin 92761e9e30 [kwin] Fix ifdefs for Wayland
With the switch to FindWayland from ECM WAYLAND_FOUND was no longer set
thus the ifdef didn't work. Now we use HAVE_WAYLAND and HAVE_WAYLAND_EGL.
11 years ago
Martin Gräßlin 9f22a99887 Install cursor from Effects mouse interception to Wayland surface
Unfortunately this is extremely platform specific with code for X11 and
Wayland. But at the moment it doesn't make much sense to abstract as
Effects are the only case where a fullscreen low level input area is
used.

A small problem is also that the mouse cursor doesn't get restored and
is changed when the X11 cursor changes. This will be fixed once we start
to properly track the cursor of the individual X windows.
11 years ago
Martin Gräßlin f9704ff0df Add support for Wayland Cursor themes
WaylandSeat can install a cursor based on Qt::CursorShape using the
Wayland cursor theme library.
11 years ago
Martin Gräßlin e18bb1006a Make mapping between Qt::CursorShape and theme name public
It's of general interest as Wayland cursor uses the same theme name.
11 years ago
Martin Gräßlin d3c4a46c59 Track used cursor theme and size in Cursor
Reads the settings from kcminputrc. Unfortunately there is no update when
the settings change. This needs fixing in the cursors KCM first.
11 years ago
Martin Gräßlin 8b1040f78d Move installing cursor image form X11CursorTracker to WaylandSeat
This allows to install cursor images also from other parts.
11 years ago
Martin Gräßlin 7523c1e7d7 Integrate KWin::Cursor with InputRedirection
New inheriting class which uses the InputRedirection to track the cursor
position. It doesn't support warping of cursor.

This introduces a slight dependency loop in the startup. Cursor needs to
be created after the WaylandBackend to ensure that the operation mode is
set correctly. But the WaylandBackend itself is accessing Cursor. It
should be safe as inside the WaylandBackend it's only accessed after
callbacks.
11 years ago
Martin Gräßlin 6619faa6ac Pass pointer events through the effect system
InputRedirection forwards pointer events (currently motion, press and
release) through the EffectsHandlerImpl for the case that an effect has
intercepted pointer events.

If the KWin operation mode is not X11 only, the window for intercepting
the mouse events is no longer created.
11 years ago
Martin Gräßlin 940d9fb513 ScreenEdges which do not need X windows
A new AreaBasedEdge is introduced which supports the Edge functionality
by just connecting to the globalPointerChanged signal of
InputRedirection.

The AreaBasedEdges are used if KWin's operation mode is not X11 only.
This unfortunately required to change the datatype of the list of edges
in ScreenEdges. It used to be specific on the inheriting class.
11 years ago
Martin Gräßlin 1617deabb8 Introduce the beginning of an InputRedirection class
So far this new class is not yet doing much. The WaylandBackend forwards
the received pointer events to this InputRedirection class. From there
signals are emitted to inform internal areas about the changes first.

The events are currently forwarded to X through the xtest extension. This
will be removed in future. Input will be forwarded directly to the
surface which wants it (no matter whether X11 or Wayland).
11 years ago
Martin Gräßlin 7b14c84819 [kwin] Remove DragToClose from Present Windows Effect
It was a stupid idea, never made it into production, clutters the code,
makes EffectFrame more complex... -> drop.

REVIEW: 116861
11 years ago
Martin Gräßlin 8e4f8f0d9c [kwin/kcms] Only link KCMUtils where needed
In some KCMs we don't use anything from KCMUtils but just KCModule
which is in ConfigWidgets.
11 years ago
Martin Gräßlin 2fad6dbf46 [kwin/kcmkwinoption] Remove unused kdialog.h include
It's kde4support and we don't have that.
11 years ago
Martin Gräßlin 74a4a1cd42 [kwin/kcmkwinoption] Remove not needed config-workspace.h include
There are no ifdefs taken from that code.
11 years ago
l10n daemon script 07a5088f42 SVN_SILENT made messages (.desktop file) 11 years ago
Aleix Pol c72e519d9c Remove KDE/ prefix in include directories
It's unneeded and deprecated since KF5.
11 years ago
Martin Gräßlin 89c2688f74 [kwin] Drop direct rendering detection from GLPlatform
It's no longer needed as the OpenGLBackend has a direct rendering
detection and the remaining OpenGL2 backend aborts if the backend
uses indirect rendering. Thus the GLPlatform must always have a
direct rendering context.

REVIEW: 116829
11 years ago
Martin Gräßlin abecbf2369 [kwin] Port away from deprecated functionality in KWindowSystem
Less warnings and more type safety.
11 years ago
Martin Gräßlin 5f6fcbbc9e [kwin/aurorae] Removed unused KPluginInfo
Removes warning about deprecated functionality.
11 years ago
Martin Gräßlin 161d8a83ea [kwin] Remove unused variable in Cube Effect
Left over from OpenGL1 removal.
11 years ago
Martin Gräßlin b38722dc04 [kwin] Adjust to changes in NETRootInfo ctor
Takes flag types.
11 years ago
Martin Gräßlin b0c0e81661 Adjust kde-workspace to changes in NETWMClient
ctor changed to take NET::Properties and NET::Properties2.
11 years ago
Martin Gräßlin f74df28450 [kwin] Use KPluginTrader and json metadata to find KDecorations
* A KDecoration needs to include json metadata
* A KDecoration needs to be installed to kwin/kdecorations
* Aurorae and Oxygen adjusted
* kcmdeco locates all decorations through the KPluginTrader
* libkdecoration uses KPluginTrader to find the plugin
* config plugins also need to include json metadata with
  X-KDE-PluginInfo-Name being the same as the decoration
* config plugins need to get installed to kwin/kdecorations/config
* kcmdeco locates the config plugin for a deco through the name
  and KPluginTrader

REVIEW: 116765
11 years ago
l10n daemon script 5e5b1100b2 SVN_SILENT made messages (.desktop file) 11 years ago