diff options
Diffstat (limited to 'libraries/qt4/patches/0180-window-role.diff')
-rw-r--r-- | libraries/qt4/patches/0180-window-role.diff | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/libraries/qt4/patches/0180-window-role.diff b/libraries/qt4/patches/0180-window-role.diff deleted file mode 100644 index 687e11cb11..0000000000 --- a/libraries/qt4/patches/0180-window-role.diff +++ /dev/null @@ -1,101 +0,0 @@ -qt-bugs@ issue : 167704 -Trolltech task ID : 168283 (status: "fixed" for Qt 4.4.0, but effectively refused) -bugs.kde.org number : none -applied: no -author: Lubos Lunak <l.lunak@kde.org> - -NOTE: It is suggested to apply patch #0209 as well when this patch is used. - -This patch uses object name as a fallback for window role if no window role -is set explicitly using setWindowRole(). Since Qt3 always used the object -name as the window role and most Qt3/KDE3 code is ported to call setObjectName(), -this makes the window role set in many cases (which KWin uses for window identifying). - - ---- src/corelib/kernel/qobject.cpp.sav 2008-02-22 09:03:40.000000000 +0100 -+++ src/corelib/kernel/qobject.cpp 2008-02-23 16:15:51.000000000 +0100 -@@ -1016,9 +1016,18 @@ void QObject::setObjectName(const QStrin - { - Q_D(QObject); - d->objectName = name; -+#if defined(Q_WS_X11) -+ d->checkWindowRole(); -+#endif - } - - -+#if defined(Q_WS_X11) -+void QObjectPrivate::checkWindowRole() -+{ -+} -+#endif -+ - #ifdef QT3_SUPPORT - /*! \internal - QObject::child is compat but needs to call itself recursively, ---- src/corelib/kernel/qobject_p.h.sav 2008-02-22 09:23:44.000000000 +0100 -+++ src/corelib/kernel/qobject_p.h 2008-02-23 16:16:46.000000000 +0100 -@@ -148,6 +148,9 @@ public: - mutable quint32 connectedSignals; - - QString objectName; -+#if defined(Q_WS_X11) -+ virtual void checkWindowRole(); -+#endif - - // Note: you must hold the signalSlotLock() before accessing the lists below or calling the functions - struct Connection ---- src/gui/kernel/qwidget_p.h.sav 2008-02-22 09:04:04.000000000 +0100 -+++ src/gui/kernel/qwidget_p.h 2008-02-23 16:17:07.000000000 +0100 -@@ -324,6 +324,7 @@ public: - - #if defined(Q_WS_X11) - void setWindowRole(); -+ virtual void checkWindowRole(); - void sendStartupMessage(const char *message) const; - void setNetWmWindowTypes(); - #endif ---- src/gui/kernel/qwidget_x11.cpp.sav 2008-02-23 15:28:47.000000000 +0100 -+++ src/gui/kernel/qwidget_x11.cpp 2008-02-23 16:31:47.000000000 +0100 -@@ -710,13 +710,17 @@ void QWidgetPrivate::create_sys(WId wind - - - // declare the widget's window role -+ QByteArray windowRole; - if (QTLWExtra *topData = maybeTopData()) { -- if (!topData->role.isEmpty()) { -- QByteArray windowRole = topData->role.toUtf8(); -- XChangeProperty(dpy, id, -- ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace, -- (unsigned char *)windowRole.constData(), windowRole.length()); -- } -+ if (!topData->role.isEmpty()) -+ windowRole = topData->role.toUtf8(); -+ } -+ if (windowRole.isEmpty()) // use object name as a fallback -+ windowRole = objectName.toUtf8(); -+ if (!windowRole.isEmpty()) { -+ XChangeProperty(dpy, id, -+ ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace, -+ (unsigned char *)windowRole.constData(), windowRole.length()); - } - - // set client leader property -@@ -2852,6 +2856,17 @@ void QWidgetPrivate::setWindowRole() - (unsigned char *)windowRole.constData(), windowRole.length()); - } - -+void QWidgetPrivate::checkWindowRole() -+{ -+ Q_Q(QWidget); -+ if( !q->windowRole().isEmpty() || !q->internalWinId()) -+ return; -+ QByteArray windowRole = objectName.toUtf8(); // use as a fallback -+ XChangeProperty(X11->display, q->internalWinId(), -+ ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace, -+ (unsigned char *)windowRole.constData(), windowRole.length()); -+} -+ - Q_GLOBAL_STATIC(QX11PaintEngine, qt_widget_paintengine) - QPaintEngine *QWidget::paintEngine() const - { |