[arch-commits] Commit in deepin-menu/repos (5 files)

Felix Yan fyan at archlinux.org
Fri Oct 23 08:35:44 UTC 2015


    Date: Friday, October 23, 2015 @ 10:35:43
  Author: fyan
Revision: 144779

archrelease: copy trunk to community-i686, community-x86_64

Added:
  deepin-menu/repos/community-x86_64/PKGBUILD
    (from rev 144777, deepin-menu/trunk/PKGBUILD)
Deleted:
  deepin-menu/repos/community-i686/PKGBUILD
  deepin-menu/repos/community-i686/fix-mouse-event-issue.patch
  deepin-menu/repos/community-x86_64/PKGBUILD
  deepin-menu/repos/community-x86_64/fix-mouse-event-issue.patch

----------------------------------------------+
 /PKGBUILD                                    |   48 +++++
 community-i686/PKGBUILD                      |   51 ------
 community-i686/fix-mouse-event-issue.patch   |  205 -------------------------
 community-x86_64/PKGBUILD                    |   51 ------
 community-x86_64/fix-mouse-event-issue.patch |  205 -------------------------
 5 files changed, 48 insertions(+), 512 deletions(-)

Deleted: community-i686/PKGBUILD
===================================================================
--- community-i686/PKGBUILD	2015-10-23 08:35:43 UTC (rev 144778)
+++ community-i686/PKGBUILD	2015-10-23 08:35:43 UTC (rev 144779)
@@ -1,51 +0,0 @@
-# $Id$
-# Maintainer: Felix Yan <felixonmars at archlinux.org>
-# Contributor: Josip Ponjavic <josipponjavic at gmail dot com>
-# Contributor: Xu Fasheng <fasheng.xu[AT]gmail.com>
-
-pkgname=deepin-menu
-pkgver=2.3.0
-pkgrel=2
-pkgdesc="Deepin menu service for building beautiful menus"
-arch=('i686' 'x86_64')
-url="https://gitcafe.com/Deepin/deepin-menu"
-license=('GPL3')
-depends=('python2-pyqt5' 'qt5-x11extras')
-makedepends=('python2-setuptools' 'qt5-declarative' 'git')
-groups=('deepin')
-source=("git+https://github.com/linuxdeepin/deepin-menu.git#tag=$pkgver"
-        "fix-mouse-event-issue.patch")
-sha256sums=('SKIP' 'SKIP')
-
-prepare() {
-  cd deepin-menu
-
-  patch -p1 -i ../fix-mouse-event-issue.patch
-
-  # fix python version
-  find -iname "*.py" | xargs sed -i 's=\(^#! */usr/bin.*\)python *$=\1python2='
-}
-
-build() {
-  cd deepin-menu
-
-  python2 setup.py build
-  qmake-qt5
-  make
-}
-
-package() {
-  cd deepin-menu
-
-  python2 setup.py install --root="${pkgdir}" --optimize=1
-
-  make INSTALL_ROOT="$pkgdir" install
-
-  install -dm 755 "${pkgdir}"/usr/share/dbus-1/services/
-  install -dm 755 "${pkgdir}"/etc/xdg/autostart/
-
-  rm -r "${pkgdir}"/usr/deepin_menu
-
-  install -m 644 *.service "${pkgdir}"/usr/share/dbus-1/services/
-  install -m 644 *.desktop "${pkgdir}"/etc/xdg/autostart/
-}

Deleted: community-i686/fix-mouse-event-issue.patch
===================================================================
--- community-i686/fix-mouse-event-issue.patch	2015-10-23 08:35:43 UTC (rev 144778)
+++ community-i686/fix-mouse-event-issue.patch	2015-10-23 08:35:43 UTC (rev 144779)
@@ -1,205 +0,0 @@
-commit f15fc5c0c8f1d74d66b4a5067567e21d56c9786f
-Author: Xu Fasheng <fasheng.xu at gmail.com>
-Date:   2015-09-28 14:01:22 +0800
-
-    fix issue that could not receive XCB_BUTTON* message
-    
-    If Qt configured with "-xinput2", the original code will not catch the
-    core X11 events like XCB_BUTTON*, instead, we should dispatch mouse and
-    button events from xinput2 specially.
-    
-    https://bugreports.qt.io/browse/QTBUG-48472
-    
-    Change-Id: I4011c47d904a08d7c92d3c0cc9fb6436e86b064c
-
-diff --git a/deepin-menu.pro b/deepin-menu.pro
-index 6b21a54..9257ff2 100644
---- a/deepin-menu.pro
-+++ b/deepin-menu.pro
-@@ -37,7 +37,7 @@ HEADERS  += \
-     ddockmenu.h \
-     dmenuapplication.h
- 
--LIBS += -lxcb
-+LIBS += -lxcb -lX11
- 
- RESOURCES += \
-     images.qrc
-diff --git a/dmenubase.cpp b/dmenubase.cpp
-index ce9a1c0..9469dd5 100644
---- a/dmenubase.cpp
-+++ b/dmenubase.cpp
-@@ -12,9 +12,10 @@
- #include <QTimer>
- #include <QTime>
- #include <QDebug>
-+#include <QX11Info>
- 
--#include <xcb/xcb.h>
- #include <xcb/xproto.h>
-+#include <X11/Xlib.h>
- 
- #include "dmenubase.h"
- #include "dmenucontent.h"
-@@ -30,6 +31,8 @@ DMenuBase::DMenuBase(QWidget *parent) :
- {
-     this->setAttribute(Qt::WA_TranslucentBackground);
- 
-+    queryXIExtension();
-+
-     _dropShadow = new QGraphicsDropShadowEffect(this);
-     _dropShadow->setBlurRadius(0);
-     _dropShadow->setColor(Qt::black);
-@@ -334,7 +337,7 @@ bool DMenuBase::nativeEvent(const QByteArray &eventType, void *message, long *)
-         switch (responseType) {
-         case XCB_BUTTON_PRESS: {
-             xcb_button_press_event_t *ev = reinterpret_cast<xcb_button_press_event_t*>(event);
--            qDebug() << "nativeEvent" <<  responseType <<
-+            qDebug() << "nativeEvent XCB_BUTTON_PRESS" <<  responseType <<
-                         ev->detail << ev->child << ev->root_x << ev->root_y;
-             if (!this->menuUnderPoint(QPoint(ev->root_x, ev->root_y))) {
-                 this->destroyAll();
-@@ -343,7 +346,7 @@ bool DMenuBase::nativeEvent(const QByteArray &eventType, void *message, long *)
-         }
-         case XCB_BUTTON_RELEASE: {
-             xcb_button_release_event_t *ev = reinterpret_cast<xcb_button_release_event_t*>(event);
--            qDebug() << "nativeEvent" <<  responseType <<
-+            qDebug() << "nativeEvent XCB_BUTTON_RELEASE" <<  responseType <<
-                         ev->detail << ev->child << ev->root_x << ev->root_y;
- 
-             if (this->menuUnderPoint(QPoint(ev->root_x, ev->root_y)) && _menuContent){
-@@ -353,7 +356,7 @@ bool DMenuBase::nativeEvent(const QByteArray &eventType, void *message, long *)
-         }
-         case XCB_MOTION_NOTIFY: {
-             xcb_motion_notify_event_t *ev = reinterpret_cast<xcb_motion_notify_event_t*>(event);
--            qDebug() << "nativeEvent" <<  responseType <<
-+            qDebug() << "nativeEvent XCB_MOTION_NOTIFY" <<  responseType <<
-                         ev->detail << ev->child << ev->root_x << ev->root_y;
-             DMenuBase *menuUnderPoint = this->menuUnderPoint(QPoint(ev->root_x, ev->root_y));
-             if (menuUnderPoint &&
-@@ -363,11 +366,66 @@ bool DMenuBase::nativeEvent(const QByteArray &eventType, void *message, long *)
-             }
-             break;
-         }
-+        default:
-+            if (isXIType(event, xiOpCode, XI_ButtonPress)) {
-+                xXIDeviceEvent *ev = reinterpret_cast<xXIDeviceEvent*>(event);
-+                qDebug() << "nativeEvent XI_ButtonPress" << fixed1616ToReal(ev->root_x) <<
-+                    fixed1616ToReal(ev->root_y);
-+                if (!this->menuUnderPoint(QPoint(fixed1616ToReal(ev->root_x),
-+                                                 fixed1616ToReal(ev->root_y)))) {
-+                    this->destroyAll();
-+                }
-+            } else if (isXIType(event, xiOpCode, XI_ButtonRelease)) {
-+                xXIDeviceEvent *ev = reinterpret_cast<xXIDeviceEvent*>(event);
-+                qDebug() << "nativeEvent XI_ButtonRelease" << fixed1616ToReal(ev->root_x) <<
-+                    fixed1616ToReal(ev->root_y);
-+                if (this->menuUnderPoint(QPoint(fixed1616ToReal(ev->root_x),
-+                                                fixed1616ToReal(ev->root_y))) && _menuContent){
-+                    _menuContent->doCurrentAction();
-+                }
-+            } else if (isXIType(event, xiOpCode, XI_Motion)) {
-+                xXIDeviceEvent *ev = reinterpret_cast<xXIDeviceEvent*>(event);
-+                qDebug() << "nativeEvent XI_Motion" << fixed1616ToReal(ev->root_x) <<
-+                    fixed1616ToReal(ev->root_y);
-+                DMenuBase *menuUnderPoint = this->menuUnderPoint(
-+                    QPoint(fixed1616ToReal(ev->root_x), fixed1616ToReal(ev->root_y)));
-+                if (menuUnderPoint &&
-+                    (this->mouseGrabber() != menuUnderPoint
-+                     || this->keyboardGrabber() != menuUnderPoint)) {
-+                    menuUnderPoint->grabFocus();
-+                }
-+            }
-+            break;
-         }
-     }
-     return false;
- }
- 
-+void DMenuBase::queryXIExtension()
-+{
-+    XQueryExtension((Display *)QX11Info::display(), "XInputExtension", &xiOpCode, &xiEventBase, &xiErrorBase);
-+    qDebug() << "xiOpCode: " << xiOpCode;
-+}
-+
-+bool DMenuBase::isXIEvent(xcb_generic_event_t *event, int opCode)
-+{
-+    qt_xcb_ge_event_t *e = (qt_xcb_ge_event_t *)event;
-+    return e->extension == opCode;
-+}
-+
-+bool DMenuBase::isXIType(xcb_generic_event_t *event, int opCode, uint16_t type)
-+{
-+    if (!isXIEvent(event, opCode))
-+        return false;
-+
-+    xXIGenericDeviceEvent *xiEvent = reinterpret_cast<xXIGenericDeviceEvent *>(event);
-+    return xiEvent->evtype == type;
-+}
-+
-+qreal DMenuBase::fixed1616ToReal(FP1616 val)
-+{
-+    return (qreal(val >> 16)) + (val & 0xFFFF) / (qreal)0xFFFF;
-+}
- 
- // private methods
- void DMenuBase::updateAll()
-diff --git a/dmenubase.h b/dmenubase.h
-index 2fa2559..59805a1 100644
---- a/dmenubase.h
-+++ b/dmenubase.h
-@@ -1,10 +1,31 @@
- #ifndef DMENUBASE_H
- #define DMENUBASE_H
- 
-+// this event type was added in libxcb 1.10,
-+// but we support also older version
-+#ifndef XCB_GE_GENERIC
-+#define XCB_GE_GENERIC 35
-+#endif
-+
- #include <QWidget>
- #include <QSharedPointer>
- #include <QGraphicsDropShadowEffect>
- 
-+#include <xcb/xcb.h>
-+#include <X11/extensions/XI2proto.h>
-+
-+// Starting from the xcb version 1.9.3 struct xcb_ge_event_t has changed:
-+// - "pad0" became "extension"
-+// - "pad1" and "pad" became "pad0"
-+// New and old version of this struct share the following fields:
-+typedef struct qt_xcb_ge_event_t {
-+    uint8_t  response_type;
-+    uint8_t  extension;
-+    uint16_t sequence;
-+    uint32_t length;
-+    uint16_t event_type;
-+} qt_xcb_ge_event_t;
-+
- class QColor;
- class QTimer;
- class QMargins;
-@@ -94,6 +115,10 @@ private slots:
-     void grabFocusSlot();
- 
- private:
-+    int xiErrorBase;
-+    int xiEventBase;
-+    int xiOpCode;
-+
-     int _radius;
-     QMargins _shadowMargins;
-     QMargins _menuContentMargins;
-@@ -106,6 +131,11 @@ private:
-     QGraphicsDropShadowEffect *_dropShadow;
-     QTimer *_grabFocusTimer;
- 
-+    void queryXIExtension();
-+    bool isXIEvent(xcb_generic_event_t *event, int opCode);
-+    bool isXIType(xcb_generic_event_t *event, int opCode, uint16_t type);
-+    qreal fixed1616ToReal(FP1616 val);
-+
-     bool grabFocusInternal(int);
-     void updateAll();
- };

Deleted: community-x86_64/PKGBUILD
===================================================================
--- community-x86_64/PKGBUILD	2015-10-23 08:35:43 UTC (rev 144778)
+++ community-x86_64/PKGBUILD	2015-10-23 08:35:43 UTC (rev 144779)
@@ -1,51 +0,0 @@
-# $Id$
-# Maintainer: Felix Yan <felixonmars at archlinux.org>
-# Contributor: Josip Ponjavic <josipponjavic at gmail dot com>
-# Contributor: Xu Fasheng <fasheng.xu[AT]gmail.com>
-
-pkgname=deepin-menu
-pkgver=2.3.0
-pkgrel=2
-pkgdesc="Deepin menu service for building beautiful menus"
-arch=('i686' 'x86_64')
-url="https://gitcafe.com/Deepin/deepin-menu"
-license=('GPL3')
-depends=('python2-pyqt5' 'qt5-x11extras')
-makedepends=('python2-setuptools' 'qt5-declarative' 'git')
-groups=('deepin')
-source=("git+https://github.com/linuxdeepin/deepin-menu.git#tag=$pkgver"
-        "fix-mouse-event-issue.patch")
-sha256sums=('SKIP' 'SKIP')
-
-prepare() {
-  cd deepin-menu
-
-  patch -p1 -i ../fix-mouse-event-issue.patch
-
-  # fix python version
-  find -iname "*.py" | xargs sed -i 's=\(^#! */usr/bin.*\)python *$=\1python2='
-}
-
-build() {
-  cd deepin-menu
-
-  python2 setup.py build
-  qmake-qt5
-  make
-}
-
-package() {
-  cd deepin-menu
-
-  python2 setup.py install --root="${pkgdir}" --optimize=1
-
-  make INSTALL_ROOT="$pkgdir" install
-
-  install -dm 755 "${pkgdir}"/usr/share/dbus-1/services/
-  install -dm 755 "${pkgdir}"/etc/xdg/autostart/
-
-  rm -r "${pkgdir}"/usr/deepin_menu
-
-  install -m 644 *.service "${pkgdir}"/usr/share/dbus-1/services/
-  install -m 644 *.desktop "${pkgdir}"/etc/xdg/autostart/
-}

Copied: deepin-menu/repos/community-x86_64/PKGBUILD (from rev 144777, deepin-menu/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD	                        (rev 0)
+++ community-x86_64/PKGBUILD	2015-10-23 08:35:43 UTC (rev 144779)
@@ -0,0 +1,48 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Josip Ponjavic <josipponjavic at gmail dot com>
+# Contributor: Xu Fasheng <fasheng.xu[AT]gmail.com>
+
+pkgname=deepin-menu
+pkgver=2.90.1
+pkgrel=1
+pkgdesc="Deepin menu service for building beautiful menus"
+arch=('i686' 'x86_64')
+url="https://gitcafe.com/Deepin/deepin-menu"
+license=('GPL3')
+depends=('python2-pyqt5' 'qt5-x11extras')
+makedepends=('python2-setuptools' 'qt5-declarative' 'git')
+groups=('deepin')
+source=("git+https://github.com/linuxdeepin/deepin-menu.git#tag=$pkgver")
+sha256sums=('SKIP')
+
+prepare() {
+  cd deepin-menu
+
+  # fix python version
+  find -iname "*.py" | xargs sed -i 's=\(^#! */usr/bin.*\)python *$=\1python2='
+}
+
+build() {
+  cd deepin-menu
+
+  python2 setup.py build
+  qmake-qt5
+  make
+}
+
+package() {
+  cd deepin-menu
+
+  python2 setup.py install --root="${pkgdir}" --optimize=1
+
+  make INSTALL_ROOT="$pkgdir" install
+
+  install -dm 755 "${pkgdir}"/usr/share/dbus-1/services/
+  install -dm 755 "${pkgdir}"/etc/xdg/autostart/
+
+  rm -r "${pkgdir}"/usr/deepin_menu
+
+  install -m 644 *.service "${pkgdir}"/usr/share/dbus-1/services/
+  install -m 644 *.desktop "${pkgdir}"/etc/xdg/autostart/
+}

Deleted: community-x86_64/fix-mouse-event-issue.patch
===================================================================
--- community-x86_64/fix-mouse-event-issue.patch	2015-10-23 08:35:43 UTC (rev 144778)
+++ community-x86_64/fix-mouse-event-issue.patch	2015-10-23 08:35:43 UTC (rev 144779)
@@ -1,205 +0,0 @@
-commit f15fc5c0c8f1d74d66b4a5067567e21d56c9786f
-Author: Xu Fasheng <fasheng.xu at gmail.com>
-Date:   2015-09-28 14:01:22 +0800
-
-    fix issue that could not receive XCB_BUTTON* message
-    
-    If Qt configured with "-xinput2", the original code will not catch the
-    core X11 events like XCB_BUTTON*, instead, we should dispatch mouse and
-    button events from xinput2 specially.
-    
-    https://bugreports.qt.io/browse/QTBUG-48472
-    
-    Change-Id: I4011c47d904a08d7c92d3c0cc9fb6436e86b064c
-
-diff --git a/deepin-menu.pro b/deepin-menu.pro
-index 6b21a54..9257ff2 100644
---- a/deepin-menu.pro
-+++ b/deepin-menu.pro
-@@ -37,7 +37,7 @@ HEADERS  += \
-     ddockmenu.h \
-     dmenuapplication.h
- 
--LIBS += -lxcb
-+LIBS += -lxcb -lX11
- 
- RESOURCES += \
-     images.qrc
-diff --git a/dmenubase.cpp b/dmenubase.cpp
-index ce9a1c0..9469dd5 100644
---- a/dmenubase.cpp
-+++ b/dmenubase.cpp
-@@ -12,9 +12,10 @@
- #include <QTimer>
- #include <QTime>
- #include <QDebug>
-+#include <QX11Info>
- 
--#include <xcb/xcb.h>
- #include <xcb/xproto.h>
-+#include <X11/Xlib.h>
- 
- #include "dmenubase.h"
- #include "dmenucontent.h"
-@@ -30,6 +31,8 @@ DMenuBase::DMenuBase(QWidget *parent) :
- {
-     this->setAttribute(Qt::WA_TranslucentBackground);
- 
-+    queryXIExtension();
-+
-     _dropShadow = new QGraphicsDropShadowEffect(this);
-     _dropShadow->setBlurRadius(0);
-     _dropShadow->setColor(Qt::black);
-@@ -334,7 +337,7 @@ bool DMenuBase::nativeEvent(const QByteArray &eventType, void *message, long *)
-         switch (responseType) {
-         case XCB_BUTTON_PRESS: {
-             xcb_button_press_event_t *ev = reinterpret_cast<xcb_button_press_event_t*>(event);
--            qDebug() << "nativeEvent" <<  responseType <<
-+            qDebug() << "nativeEvent XCB_BUTTON_PRESS" <<  responseType <<
-                         ev->detail << ev->child << ev->root_x << ev->root_y;
-             if (!this->menuUnderPoint(QPoint(ev->root_x, ev->root_y))) {
-                 this->destroyAll();
-@@ -343,7 +346,7 @@ bool DMenuBase::nativeEvent(const QByteArray &eventType, void *message, long *)
-         }
-         case XCB_BUTTON_RELEASE: {
-             xcb_button_release_event_t *ev = reinterpret_cast<xcb_button_release_event_t*>(event);
--            qDebug() << "nativeEvent" <<  responseType <<
-+            qDebug() << "nativeEvent XCB_BUTTON_RELEASE" <<  responseType <<
-                         ev->detail << ev->child << ev->root_x << ev->root_y;
- 
-             if (this->menuUnderPoint(QPoint(ev->root_x, ev->root_y)) && _menuContent){
-@@ -353,7 +356,7 @@ bool DMenuBase::nativeEvent(const QByteArray &eventType, void *message, long *)
-         }
-         case XCB_MOTION_NOTIFY: {
-             xcb_motion_notify_event_t *ev = reinterpret_cast<xcb_motion_notify_event_t*>(event);
--            qDebug() << "nativeEvent" <<  responseType <<
-+            qDebug() << "nativeEvent XCB_MOTION_NOTIFY" <<  responseType <<
-                         ev->detail << ev->child << ev->root_x << ev->root_y;
-             DMenuBase *menuUnderPoint = this->menuUnderPoint(QPoint(ev->root_x, ev->root_y));
-             if (menuUnderPoint &&
-@@ -363,11 +366,66 @@ bool DMenuBase::nativeEvent(const QByteArray &eventType, void *message, long *)
-             }
-             break;
-         }
-+        default:
-+            if (isXIType(event, xiOpCode, XI_ButtonPress)) {
-+                xXIDeviceEvent *ev = reinterpret_cast<xXIDeviceEvent*>(event);
-+                qDebug() << "nativeEvent XI_ButtonPress" << fixed1616ToReal(ev->root_x) <<
-+                    fixed1616ToReal(ev->root_y);
-+                if (!this->menuUnderPoint(QPoint(fixed1616ToReal(ev->root_x),
-+                                                 fixed1616ToReal(ev->root_y)))) {
-+                    this->destroyAll();
-+                }
-+            } else if (isXIType(event, xiOpCode, XI_ButtonRelease)) {
-+                xXIDeviceEvent *ev = reinterpret_cast<xXIDeviceEvent*>(event);
-+                qDebug() << "nativeEvent XI_ButtonRelease" << fixed1616ToReal(ev->root_x) <<
-+                    fixed1616ToReal(ev->root_y);
-+                if (this->menuUnderPoint(QPoint(fixed1616ToReal(ev->root_x),
-+                                                fixed1616ToReal(ev->root_y))) && _menuContent){
-+                    _menuContent->doCurrentAction();
-+                }
-+            } else if (isXIType(event, xiOpCode, XI_Motion)) {
-+                xXIDeviceEvent *ev = reinterpret_cast<xXIDeviceEvent*>(event);
-+                qDebug() << "nativeEvent XI_Motion" << fixed1616ToReal(ev->root_x) <<
-+                    fixed1616ToReal(ev->root_y);
-+                DMenuBase *menuUnderPoint = this->menuUnderPoint(
-+                    QPoint(fixed1616ToReal(ev->root_x), fixed1616ToReal(ev->root_y)));
-+                if (menuUnderPoint &&
-+                    (this->mouseGrabber() != menuUnderPoint
-+                     || this->keyboardGrabber() != menuUnderPoint)) {
-+                    menuUnderPoint->grabFocus();
-+                }
-+            }
-+            break;
-         }
-     }
-     return false;
- }
- 
-+void DMenuBase::queryXIExtension()
-+{
-+    XQueryExtension((Display *)QX11Info::display(), "XInputExtension", &xiOpCode, &xiEventBase, &xiErrorBase);
-+    qDebug() << "xiOpCode: " << xiOpCode;
-+}
-+
-+bool DMenuBase::isXIEvent(xcb_generic_event_t *event, int opCode)
-+{
-+    qt_xcb_ge_event_t *e = (qt_xcb_ge_event_t *)event;
-+    return e->extension == opCode;
-+}
-+
-+bool DMenuBase::isXIType(xcb_generic_event_t *event, int opCode, uint16_t type)
-+{
-+    if (!isXIEvent(event, opCode))
-+        return false;
-+
-+    xXIGenericDeviceEvent *xiEvent = reinterpret_cast<xXIGenericDeviceEvent *>(event);
-+    return xiEvent->evtype == type;
-+}
-+
-+qreal DMenuBase::fixed1616ToReal(FP1616 val)
-+{
-+    return (qreal(val >> 16)) + (val & 0xFFFF) / (qreal)0xFFFF;
-+}
- 
- // private methods
- void DMenuBase::updateAll()
-diff --git a/dmenubase.h b/dmenubase.h
-index 2fa2559..59805a1 100644
---- a/dmenubase.h
-+++ b/dmenubase.h
-@@ -1,10 +1,31 @@
- #ifndef DMENUBASE_H
- #define DMENUBASE_H
- 
-+// this event type was added in libxcb 1.10,
-+// but we support also older version
-+#ifndef XCB_GE_GENERIC
-+#define XCB_GE_GENERIC 35
-+#endif
-+
- #include <QWidget>
- #include <QSharedPointer>
- #include <QGraphicsDropShadowEffect>
- 
-+#include <xcb/xcb.h>
-+#include <X11/extensions/XI2proto.h>
-+
-+// Starting from the xcb version 1.9.3 struct xcb_ge_event_t has changed:
-+// - "pad0" became "extension"
-+// - "pad1" and "pad" became "pad0"
-+// New and old version of this struct share the following fields:
-+typedef struct qt_xcb_ge_event_t {
-+    uint8_t  response_type;
-+    uint8_t  extension;
-+    uint16_t sequence;
-+    uint32_t length;
-+    uint16_t event_type;
-+} qt_xcb_ge_event_t;
-+
- class QColor;
- class QTimer;
- class QMargins;
-@@ -94,6 +115,10 @@ private slots:
-     void grabFocusSlot();
- 
- private:
-+    int xiErrorBase;
-+    int xiEventBase;
-+    int xiOpCode;
-+
-     int _radius;
-     QMargins _shadowMargins;
-     QMargins _menuContentMargins;
-@@ -106,6 +131,11 @@ private:
-     QGraphicsDropShadowEffect *_dropShadow;
-     QTimer *_grabFocusTimer;
- 
-+    void queryXIExtension();
-+    bool isXIEvent(xcb_generic_event_t *event, int opCode);
-+    bool isXIType(xcb_generic_event_t *event, int opCode, uint16_t type);
-+    qreal fixed1616ToReal(FP1616 val);
-+
-     bool grabFocusInternal(int);
-     void updateAll();
- };



More information about the arch-commits mailing list