diff --git a/src/imports/winextras/qquickwindwmfeatures.cpp b/src/imports/winextras/qquickwindwmfeatures.cpp
index c0dd00d4b11e5475bc2fc9aea3d7eb96613f0a0e..90f13a22af2901dae7b25bf63a513e552e2f401c 100644
--- a/src/imports/winextras/qquickwindwmfeatures.cpp
+++ b/src/imports/winextras/qquickwindwmfeatures.cpp
@@ -43,8 +43,7 @@
 #include "qquickwindwmfeatures_p.h"
 
 #include <QtWinExtras/private/qwineventfilter_p.h>
-#include <QWinColorizationColorChangeEvent>
-#include <QWinCompositionStateChangeEvent>
+#include <QWinEvent>
 #include <QQuickWindow>
 
 QT_BEGIN_NAMESPACE
@@ -248,10 +247,10 @@ bool QQuickWinDwmFeatures::eventFilter(QObject *object, QEvent *event)
 {
     bool filterOut = false;
     if (object == window()) {
-        if (event->type() == QWinCompositionStateChangeEvent::eventType()) {
+        if (event->type() == QWinEvent::CompositionChange) {
             emit isCompositionEnabledChanged();
             filterOut = true;
-        } else if (event->type() == QWinColorizationColorChangeEvent::eventType()) {
+        } else if (event->type() == QWinEvent::ColorizationChange) {
             emit colorizationColorChanged();
             emit realColorizationColorChanged();
             emit colorizationOpaqueBlendChanged();
diff --git a/src/winextras/qwincolorizationcolorchangeevent.cpp b/src/winextras/qwincolorizationcolorchangeevent.cpp
deleted file mode 100644
index a958b3d8c620da37353829e0b1874d29e88084f2..0000000000000000000000000000000000000000
--- a/src/winextras/qwincolorizationcolorchangeevent.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#include "qwincolorizationcolorchangeevent.h"
-#include "qwincolorizationcolorchangeevent_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QWinColorizationColorChangeEvent::QWinColorizationColorChangeEvent(QRgb color, bool opaque) :
-    QEvent(QWinColorizationColorChangeEventPrivate::eventType()),
-    d_ptr(new QWinColorizationColorChangeEventPrivate)
-{
-    Q_D(QWinColorizationColorChangeEvent);
-    d->color = color;
-    d->opaqueBlend = opaque;
-}
-
-QWinColorizationColorChangeEvent::~QWinColorizationColorChangeEvent()
-{
-}
-
-bool QWinColorizationColorChangeEvent::opaqueBlend() const
-{
-    Q_D(const QWinColorizationColorChangeEvent);
-    return d->opaqueBlend;
-}
-
-QRgb QWinColorizationColorChangeEvent::color() const
-{
-    Q_D(const QWinColorizationColorChangeEvent);
-    return d->color;
-}
-
-QEvent::Type QWinColorizationColorChangeEvent::eventType()
-{
-    return QWinColorizationColorChangeEventPrivate::eventType();
-}
-
-
-
-int QWinColorizationColorChangeEventPrivate::eventTypeId = 0;
-
-QEvent::Type QWinColorizationColorChangeEventPrivate::eventType()
-{
-    if (!eventTypeId)
-        eventTypeId = QEvent::registerEventType();
-    return static_cast<QEvent::Type>(eventTypeId);
-}
-
-QT_END_NAMESPACE
diff --git a/src/winextras/qwincolorizationcolorchangeevent_p.h b/src/winextras/qwincolorizationcolorchangeevent_p.h
deleted file mode 100644
index df85ad75c502e4a123e7b4c830383f07542c61aa..0000000000000000000000000000000000000000
--- a/src/winextras/qwincolorizationcolorchangeevent_p.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#ifndef QWINCOLORIZATIONCOLORCHANGEEVENT_P_H
-#define QWINCOLORIZATIONCOLORCHANGEEVENT_P_H
-
-#include "qwincolorizationcolorchangeevent.h"
-
-QT_BEGIN_NAMESPACE
-
-class QWinColorizationColorChangeEventPrivate
-{
-public:
-    static QEvent::Type eventType();
-
-    bool opaqueBlend;
-    QRgb color;
-
-private:
-    static int eventTypeId;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWINCOLORIZATIONCOLORCHANGEEVENT_P_H
diff --git a/src/winextras/qwincompositionstatechangeevent.cpp b/src/winextras/qwincompositionstatechangeevent.cpp
deleted file mode 100644
index 4eec60621134959216121745eee02071f52c5d6d..0000000000000000000000000000000000000000
--- a/src/winextras/qwincompositionstatechangeevent.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#include "qwincompositionstatechangeevent.h"
-#include "qwincompositionstatechangeevent_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QWinCompositionStateChangeEvent::QWinCompositionStateChangeEvent(bool enabled) :
-    QEvent(QWinCompositionStateChangeEventPrivate::eventType()), d_ptr(new QWinCompositionStateChangeEventPrivate)
-{
-    Q_D(QWinCompositionStateChangeEvent);
-    d->enabled = enabled;
-}
-
-QWinCompositionStateChangeEvent::~QWinCompositionStateChangeEvent()
-{
-}
-
-bool QWinCompositionStateChangeEvent::isCompositionEnabled() const
-{
-    Q_D(const QWinCompositionStateChangeEvent);
-    return d->enabled;
-}
-
-QEvent::Type QWinCompositionStateChangeEvent::eventType()
-{
-    return QWinCompositionStateChangeEventPrivate::eventType();
-}
-
-
-
-int QWinCompositionStateChangeEventPrivate::eventTypeId = 0;
-
-QEvent::Type QWinCompositionStateChangeEventPrivate::eventType()
-{
-    if (!eventTypeId)
-        eventTypeId = QEvent::registerEventType();
-    return static_cast<QEvent::Type>(eventTypeId);
-}
-
-QT_END_NAMESPACE
diff --git a/src/winextras/qwincompositionstatechangeevent.h b/src/winextras/qwincompositionstatechangeevent.h
deleted file mode 100644
index 43c0cf41622c48e2f3aaed7c3e1975551deaa945..0000000000000000000000000000000000000000
--- a/src/winextras/qwincompositionstatechangeevent.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#ifndef QWINCOMPOSITIONSTATECHANGEEVENT_H
-#define QWINCOMPOSITIONSTATECHANGEEVENT_H
-
-#include <QtWinExtras/qwinextrasglobal.h>
-#include <QEvent>
-#include <QScopedPointer>
-
-QT_BEGIN_NAMESPACE
-
-class QWinCompositionStateChangeEventPrivate;
-
-class Q_WINEXTRAS_EXPORT QWinCompositionStateChangeEvent : public QEvent
-{
-public:
-    explicit QWinCompositionStateChangeEvent(bool isCompositionEnabled);
-    ~QWinCompositionStateChangeEvent();
-    bool isCompositionEnabled() const;
-
-    static QEvent::Type eventType();
-
-private:
-    QScopedPointer<QWinCompositionStateChangeEventPrivate> d_ptr;
-    Q_DECLARE_PRIVATE(QWinCompositionStateChangeEvent)
-};
-
-QT_END_NAMESPACE
-
-#endif // QWINCOMPOSITIONSTATECHANGEEVENT_H
diff --git a/src/winextras/qwincompositionstatechangeevent_p.h b/src/winextras/qwincompositionstatechangeevent_p.h
deleted file mode 100644
index c8b1d6f2d2b9b52cf46fd90865faa9ed9ffc6315..0000000000000000000000000000000000000000
--- a/src/winextras/qwincompositionstatechangeevent_p.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#ifndef QWINCOMPOSITIONSTATECHANGEEVENTPRIVATE_H
-#define QWINCOMPOSITIONSTATECHANGEEVENTPRIVATE_H
-
-#include "qwincolorizationcolorchangeevent.h"
-
-QT_BEGIN_NAMESPACE
-
-class QWinCompositionStateChangeEventPrivate
-{
-public:
-    static QEvent::Type eventType();
-
-    bool enabled;
-
-private:
-    static int eventTypeId;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWINCOMPOSITIONSTATECHANGEEVENTPRIVATE_H
diff --git a/src/winextras/qwintaskbarbuttoncreatedevent.cpp b/src/winextras/qwinevent.cpp
similarity index 70%
rename from src/winextras/qwintaskbarbuttoncreatedevent.cpp
rename to src/winextras/qwinevent.cpp
index 5ea9a623e89fc014f93d27b0474387407b768069..50cd1cd8147a58fd2e7b10db0a22f58be2d346ff 100644
--- a/src/winextras/qwintaskbarbuttoncreatedevent.cpp
+++ b/src/winextras/qwinevent.cpp
@@ -1,6 +1,7 @@
 /****************************************************************************
  **
  ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
+ ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
  ** Contact: http://www.qt-project.org/legal
  **
  ** This file is part of QtWinExtras in the Qt Toolkit.
@@ -39,28 +40,35 @@
  **
  ****************************************************************************/
 
-#include "qwintaskbarbuttoncreatedevent.h"
-#include "qwintaskbarbuttoncreatedevent_p.h"
+#include "qwinevent.h"
 
-QWinTaskbarButtonCreatedEvent::QWinTaskbarButtonCreatedEvent() :
-    QEvent(QWinTaskbarButtonCreatedEventPrivate::eventType())
+const int QWinEvent::ColorizationChange = QEvent::registerEventType();
+const int QWinEvent::CompositionChange = QEvent::registerEventType();
+const int QWinEvent::TaskbarButtonCreated = QEvent::registerEventType();
+const int QWinEvent::ThemeChange = QEvent::registerEventType();
+
+QWinEvent::QWinEvent(int type) : QEvent(static_cast<QEvent::Type>(type))
+{
+}
+
+QWinEvent::~QWinEvent()
 {
 }
 
-QWinTaskbarButtonCreatedEvent::~QWinTaskbarButtonCreatedEvent()
+QWinColorizationChangeEvent::QWinColorizationChangeEvent(QRgb color, bool opaque)
+    : QWinEvent(ColorizationChange), rgb(color), opaque(opaque)
 {
 }
 
-QEvent::Type QWinTaskbarButtonCreatedEvent::eventType()
+QWinColorizationChangeEvent::~QWinColorizationChangeEvent()
 {
-    return QWinTaskbarButtonCreatedEventPrivate::eventType();
 }
 
-int QWinTaskbarButtonCreatedEventPrivate::eventTypeId = 0;
+QWinCompositionChangeEvent::QWinCompositionChangeEvent(bool enabled)
+    : QWinEvent(CompositionChange), enabled(enabled)
+{
+}
 
-QEvent::Type QWinTaskbarButtonCreatedEventPrivate::eventType()
+QWinCompositionChangeEvent::~QWinCompositionChangeEvent()
 {
-    if (!eventTypeId)
-        eventTypeId = QEvent::registerEventType();
-    return static_cast<QEvent::Type>(eventTypeId);
 }
diff --git a/src/winextras/qwincolorizationcolorchangeevent.h b/src/winextras/qwinevent.h
similarity index 67%
rename from src/winextras/qwincolorizationcolorchangeevent.h
rename to src/winextras/qwinevent.h
index a01859143dc6b544b610ba1a9da0957da9aa3929..9fc529d87c631b828913f1d761064ebe0ffb5f57 100644
--- a/src/winextras/qwincolorizationcolorchangeevent.h
+++ b/src/winextras/qwinevent.h
@@ -1,6 +1,7 @@
 /****************************************************************************
  **
  ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
+ ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
  ** Contact: http://www.qt-project.org/legal
  **
  ** This file is part of QtWinExtras in the Qt Toolkit.
@@ -39,34 +40,53 @@
  **
  ****************************************************************************/
 
-#ifndef QWINCOLORIZATIONCOLORCHANGEEVENT_H
-#define QWINCOLORIZATIONCOLORCHANGEEVENT_H
+#ifndef QWINEVENT_H
+#define QWINEVENT_H
 
+#include <QtGui/qrgb.h>
+#include <QtCore/qcoreevent.h>
 #include <QtWinExtras/qwinextrasglobal.h>
-#include <QEvent>
-#include <QScopedPointer>
-#include <QRgb>
 
 QT_BEGIN_NAMESPACE
 
-class QWinColorizationColorChangeEventPrivate;
+class Q_WINEXTRAS_EXPORT QWinEvent : public QEvent
+{
+public:
+    static const int ColorizationChange;
+    static const int CompositionChange;
+    static const int TaskbarButtonCreated;
+    static const int ThemeChange;
 
-class Q_WINEXTRAS_EXPORT QWinColorizationColorChangeEvent : public QEvent
+    explicit QWinEvent(int type);
+    ~QWinEvent();
+};
+
+class Q_WINEXTRAS_EXPORT QWinColorizationChangeEvent : public QWinEvent
 {
 public:
-    QWinColorizationColorChangeEvent(QRgb color, bool opaque);
-    ~QWinColorizationColorChangeEvent();
-    bool opaqueBlend() const;
-    QRgb color() const;
+    QWinColorizationChangeEvent(QRgb color, bool opaque);
+    ~QWinColorizationChangeEvent();
 
-    static QEvent::Type eventType();
+    inline QRgb color() const { return rgb; }
+    inline bool opaqueBlend() const { return opaque; }
 
 private:
-    QScopedPointer<QWinColorizationColorChangeEventPrivate> d_ptr;
+    QRgb rgb;
+    bool opaque;
+};
 
-    Q_DECLARE_PRIVATE(QWinColorizationColorChangeEvent)
+class Q_WINEXTRAS_EXPORT QWinCompositionChangeEvent : public QWinEvent
+{
+public:
+    explicit QWinCompositionChangeEvent(bool enabled);
+    ~QWinCompositionChangeEvent();
+
+    inline bool isCompositionEnabled() const { return enabled; }
+
+private:
+    bool enabled;
 };
 
 QT_END_NAMESPACE
 
-#endif // QWINCOLORIZATIONCOLORCHANGEEVENT_H
+#endif // QWINEVENT_H
diff --git a/src/winextras/qwineventfilter.cpp b/src/winextras/qwineventfilter.cpp
index 20c4c35ab6620c712960a0d643ac0ae09cd385de..992ba9d65715ccea143812e4bc279ca8e9392c86 100644
--- a/src/winextras/qwineventfilter.cpp
+++ b/src/winextras/qwineventfilter.cpp
@@ -40,11 +40,8 @@
  ****************************************************************************/
 
 #include "qwineventfilter_p.h"
-#include "qwincolorizationcolorchangeevent.h"
-#include "qwincompositionstatechangeevent.h"
-#include "qwinthemechangeevent.h"
-#include "qwintaskbarbuttoncreatedevent.h"
 #include "qwinfunctions.h"
+#include "qwinevent.h"
 #include <QGuiApplication>
 #include <QWindow>
 
@@ -77,17 +74,17 @@ bool QWinEventFilter::nativeEventFilter(const QByteArray &, void *message, long
     QWindow *window = 0;
     switch (msg->message) {
     case WM_DWMCOLORIZATIONCOLORCHANGED :
-        event = new QWinColorizationColorChangeEvent(msg->wParam, msg->lParam);
+        event = new QWinColorizationChangeEvent(msg->wParam, msg->lParam);
         break;
     case WM_DWMCOMPOSITIONCHANGED :
-        event = new QWinCompositionStateChangeEvent(QWinExtras::isCompositionEnabled());
+        event = new QWinCompositionChangeEvent(QWinExtras::isCompositionEnabled());
         break;
     case WM_THEMECHANGED :
-        event = new QWinThemeChangeEvent();
+        event = new QWinEvent(QWinEvent::ThemeChange);
         break;
     default :
         if (tbButtonCreatedMsgId == msg->message) {
-            event = new QWinTaskbarButtonCreatedEvent;
+            event = new QWinEvent(QWinEvent::TaskbarButtonCreated);
             filterOut = true;
         }
         break;
@@ -97,8 +94,7 @@ bool QWinEventFilter::nativeEventFilter(const QByteArray &, void *message, long
         window = findWindow(msg->hwnd);
         if (window)
             qApp->sendEvent(window, event);
-        else
-            delete event;
+        delete event;
     }
 
     if (filterOut && result) {
diff --git a/src/winextras/qwintaskbarbutton.cpp b/src/winextras/qwintaskbarbutton.cpp
index 651a0ec493ced93133616b9f3f138b8feeba0de2..50786f567395fa845dec516196d6a2fd41438893 100644
--- a/src/winextras/qwintaskbarbutton.cpp
+++ b/src/winextras/qwintaskbarbutton.cpp
@@ -43,7 +43,7 @@
 #include "qwintaskbarbutton_p.h"
 #include "qwinfunctions.h"
 #include "qwineventfilter_p.h"
-#include "qwintaskbarbuttoncreatedevent.h"
+#include "qwinevent.h"
 
 #include <QWindow>
 #include <QIcon>
@@ -186,7 +186,7 @@ int QWinTaskbarButton::progressMaximum() const
 bool QWinTaskbarButton::eventFilter(QObject *object, QEvent *event)
 {
     Q_D(QWinTaskbarButton);
-    if (object == d->window && event->type() == QWinTaskbarButtonCreatedEvent::eventType()) {
+    if (object == d->window && event->type() == QWinEvent::TaskbarButtonCreated) {
         d->pTbList->SetProgressState(d->handle(), QWinTaskbarButtonPrivate::nativeProgressState(d->progressState));
         d->updateProgressValue();
         d->updateOverlayIcon();
diff --git a/src/winextras/qwintaskbarbuttoncreatedevent.h b/src/winextras/qwintaskbarbuttoncreatedevent.h
deleted file mode 100644
index 17965c99fb6c96997abcd8c27568d97835d47a87..0000000000000000000000000000000000000000
--- a/src/winextras/qwintaskbarbuttoncreatedevent.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#ifndef QWINTASKBARBUTTONCREATEDEVENT_H
-#define QWINTASKBARBUTTONCREATEDEVENT_H
-
-#include <QEvent>
-#include <QScopedPointer>
-
-QT_BEGIN_NAMESPACE
-
-class QWinTaskbarButtonCreatedEventPrivate;
-
-class QWinTaskbarButtonCreatedEvent : public QEvent
-{
-public:
-    QWinTaskbarButtonCreatedEvent();
-    ~QWinTaskbarButtonCreatedEvent();
-
-    static QEvent::Type eventType();
-
-private:
-    QScopedPointer<QWinTaskbarButtonCreatedEventPrivate> d_ptr;
-
-    Q_DECLARE_PRIVATE(QWinTaskbarButtonCreatedEvent)
-};
-
-QT_END_NAMESPACE
-
-#endif // QWINTASKBARBUTTONCREATEDEVENT_H
diff --git a/src/winextras/qwintaskbarbuttoncreatedevent_p.h b/src/winextras/qwintaskbarbuttoncreatedevent_p.h
deleted file mode 100644
index 54ea4e958ba821f333c12dbfc47731592c9a959f..0000000000000000000000000000000000000000
--- a/src/winextras/qwintaskbarbuttoncreatedevent_p.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#ifndef QWINTASKBARBUTTONCREATEDEVENT_P_H
-#define QWINTASKBARBUTTONCREATEDEVENT_P_H
-
-#include "qwintaskbarbuttoncreatedevent.h"
-
-QT_BEGIN_NAMESPACE
-
-class QWinTaskbarButtonCreatedEventPrivate
-{
-public:
-    static QEvent::Type eventType();
-
-private:
-    static int eventTypeId;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWINTASKBARBUTTONCREATEDEVENT_P_H
diff --git a/src/winextras/qwinthemechangeevent.cpp b/src/winextras/qwinthemechangeevent.cpp
deleted file mode 100644
index e9eeb63d61772a19dbae8f116badabc0788c8f32..0000000000000000000000000000000000000000
--- a/src/winextras/qwinthemechangeevent.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#include "qwinthemechangeevent.h"
-#include "qwinthemechangeevent_p.h"
-
-QWinThemeChangeEvent::QWinThemeChangeEvent() :
-    QEvent(eventType())
-{
-}
-
-QWinThemeChangeEvent::~QWinThemeChangeEvent()
-{
-}
-
-QEvent::Type QWinThemeChangeEvent::eventType()
-{
-    return QWinThemeChangeEventPrivate::eventType();
-}
-
-
-int QWinThemeChangeEventPrivate::eventTypeId = 0;
-
-QEvent::Type QWinThemeChangeEventPrivate::eventType()
-{
-    if (!eventTypeId)
-        eventTypeId = QEvent::registerEventType();
-    return static_cast<QEvent::Type>(eventTypeId);
-}
diff --git a/src/winextras/qwinthemechangeevent.h b/src/winextras/qwinthemechangeevent.h
deleted file mode 100644
index 63c6c38449c2afbdffc9cb58a585718bc8f2137d..0000000000000000000000000000000000000000
--- a/src/winextras/qwinthemechangeevent.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#ifndef QWINTHEMECHANGEEVENT_H
-#define QWINTHEMECHANGEEVENT_H
-
-#include <QtWinExtras/qwinextrasglobal.h>
-#include <QEvent>
-#include <QScopedPointer>
-
-QT_BEGIN_NAMESPACE
-
-class QWinThemeChangeEventPrivate;
-
-class Q_WINEXTRAS_EXPORT QWinThemeChangeEvent : public QEvent
-{
-public:
-    QWinThemeChangeEvent();
-    ~QWinThemeChangeEvent();
-
-    static QEvent::Type eventType();
-
-private:
-    QScopedPointer<QWinThemeChangeEventPrivate> d_ptr;
-
-    Q_DECLARE_PRIVATE(QWinThemeChangeEvent)
-};
-
-QT_END_NAMESPACE
-
-#endif // QWINTHEMECHANGEEVENT_H
diff --git a/src/winextras/qwinthemechangeevent_p.h b/src/winextras/qwinthemechangeevent_p.h
deleted file mode 100644
index 62ada0a20bcf686260da75a384e257bfd169af04..0000000000000000000000000000000000000000
--- a/src/winextras/qwinthemechangeevent_p.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2013 Ivan Vizir <define-true-false@yandex.com>
- ** Contact: http://www.qt-project.org/legal
- **
- ** This file is part of QtWinExtras in the Qt Toolkit.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** Commercial License Usage
- ** Licensees holding valid commercial Qt licenses may use this file in
- ** accordance with the commercial license agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.  For licensing terms and
- ** conditions see http://qt.digia.com/licensing.  For further information
- ** use the contact form at http://qt.digia.com/contact-us.
- **
- ** GNU Lesser General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU Lesser
- ** General Public License version 2.1 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.LGPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Digia gives you certain additional
- ** rights.  These rights are described in the Digia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU
- ** General Public License version 3.0 as published by the Free Software
- ** Foundation and appearing in the file LICENSE.GPL included in the
- ** packaging of this file.  Please review the following information to
- ** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#ifndef QWINTHEMECHANGEEVENT_P_H
-#define QWINTHEMECHANGEEVENT_P_H
-
-#include "qwinthemechangeevent.h"
-
-class QWinThemeChangeEventPrivate
-{
-public:
-    static QEvent::Type eventType();
-
-private:
-    static int eventTypeId;
-};
-
-#endif // QWINTHEMECHANGEEVENT_P_H
diff --git a/src/winextras/qwinthumbnailtoolbar.cpp b/src/winextras/qwinthumbnailtoolbar.cpp
index 6021241f4c52745eadd5404a8e7cf3d08fc3eead..cf8c0d0429f89ff1f68f907a4d7ef437a745cebd 100644
--- a/src/winextras/qwinthumbnailtoolbar.cpp
+++ b/src/winextras/qwinthumbnailtoolbar.cpp
@@ -49,7 +49,7 @@
 #include <QTimer>
 #include <QDebug>
 
-#include "qwintaskbarbuttoncreatedevent.h"
+#include "qwinevent.h"
 #include "qwinfunctions.h"
 #include "qwineventfilter_p.h"
 
@@ -294,7 +294,7 @@ void QWinThumbnailToolBarPrivate::_q_scheduleUpdate()
 
 bool QWinThumbnailToolBarPrivate::eventFilter(QObject *object, QEvent *event)
 {
-    if (object == window && event->type() == QWinTaskbarButtonCreatedEvent::eventType()) {
+    if (object == window && event->type() == QWinEvent::TaskbarButtonCreated) {
         initToolbar();
         _q_scheduleUpdate();
     }
diff --git a/src/winextras/winextras.pro b/src/winextras/winextras.pro
index fc1f49448087673706fc3189b3f5af3a98049c34..7e830aa15945814e2cc72b728f070a9e5b92be5b 100644
--- a/src/winextras/winextras.pro
+++ b/src/winextras/winextras.pro
@@ -8,13 +8,10 @@ SOURCES += \
     qwintaskbarbutton.cpp \
     windowsguidsdefs.cpp \
     qjumplist.cpp \
-    qwincolorizationcolorchangeevent.cpp \
-    qwincompositionstatechangeevent.cpp \
     qwineventfilter.cpp \
-    qwintaskbarbuttoncreatedevent.cpp \
-    qwinthemechangeevent.cpp \
     qwinthumbnailtoolbar.cpp \
-    qwinthumbnailtoolbutton.cpp
+    qwinthumbnailtoolbutton.cpp \
+    qwinevent.cpp
 
 HEADERS += \
     qwinfunctions.h \
@@ -23,21 +20,14 @@ HEADERS += \
     qwintaskbarbutton_p.h \
     qwintaskbarbutton.h \
     qjumplist.h \
-    qwincolorizationcolorchangeevent.h \
-    qwincolorizationcolorchangeevent_p.h \
-    qwincompositionstatechangeevent.h \
-    qwincompositionstatechangeevent_p.h \
-    qwintaskbarbuttoncreatedevent.h \
-    qwintaskbarbuttoncreatedevent_p.h \
     winshobjidl_p.h \
     winpropkey_p.h \
     qwineventfilter_p.h \
-    qwinthemechangeevent.h \
-    qwinthemechangeevent_p.h \
     qwinthumbnailtoolbar.h \
     qwinthumbnailtoolbar_p.h \
     qwinthumbnailtoolbutton.h \
-    qwinthumbnailtoolbutton_p.h
+    qwinthumbnailtoolbutton_p.h \
+    qwinevent.h
 
 QMAKE_DOCS = $$PWD/doc/qtwinextras.qdocconf