diff --git a/compiz.spec b/compiz.spec index 176d220..feda1ab 100644 --- a/compiz.spec +++ b/compiz.spec @@ -13,7 +13,7 @@ URL: http://www.go-compiz.org License: GPLv2+ and LGPLv2+ and MIT Group: User Interface/Desktops Version: 0.8.4 -Release: 3%{?dist} +Release: 4%{?dist} Summary: OpenGL window and compositing manager BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -60,7 +60,7 @@ Patch107: compiz-0.8.4-wall.patch Patch127: unknown-key.patch -Patch128: kde4_decorator_build.patch +Patch128: kde44-api.patch %description Compiz is one of the first OpenGL-accelerated compositing window @@ -128,7 +128,8 @@ and other kde integration related stuff. #%patch110 -p1 -b .scale-key %patch127 -p1 -b .unknown-key -%patch128 -p1 -b .kde4_decorator_build +# http://bugs.opencompositing.org/show_bug.cgi?id=1249 +%patch128 -p1 -b .kde44-api %build rm -rf $RPM_BUILD_ROOT @@ -307,6 +308,11 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Sun Feb 07 2010 Leigh Scott - 0.8.4-4 +- rebuilt for new kde api +- drop kde4_decorator_build patch +- add kde44-api patch + * Mon Jan 18 2010 Matthias Clasen - 0.8.4-3 - Rebuild against new gnome-desktop diff --git a/kde44-api.patch b/kde44-api.patch new file mode 100644 index 0000000..67d8609 --- /dev/null +++ b/kde44-api.patch @@ -0,0 +1,204 @@ +diff --git a/kde/window-decorator-kde4/window.cpp b/kde/window-decorator-kde4/window.cpp +index a7cd2d4..d7ab93d 100644 +--- a/kde/window-decorator-kde4/window.cpp ++++ b/kde/window-decorator-kde4/window.cpp +@@ -486,31 +486,39 @@ KWD::Window::showWindowMenu (const QRect &pos) + showWindowMenu (pos.bottomLeft ()); + } + +-void +-KWD::Window::processMousePressEvent (QMouseEvent *qme) ++KWD::Options::MouseCommand ++KWD::Window::buttonToCommand (Qt::MouseButtons button) + { + Options::MouseCommand com = Options::MouseNothing; +- bool active = isActive (); ++ bool active = isActive (); + + if (!mSupportTakeFocus) +- active = TRUE; ++ active = true; + +- switch (qme->button ()) { ++ switch (button) { + case Qt::LeftButton: + com = active ? Decorator::options ()->commandActiveTitlebar1 () : +- Decorator::options()->commandInactiveTitlebar1 (); ++ Decorator::options()->commandInactiveTitlebar1 (); + break; + case Qt::MidButton: + com = active ? Decorator::options ()->commandActiveTitlebar2 () : +- Decorator::options()->commandInactiveTitlebar2 (); ++ Decorator::options()->commandInactiveTitlebar2 (); + break; + case Qt::RightButton: + com = active ? Decorator::options ()->commandActiveTitlebar3 () : +- Decorator::options()->commandInactiveTitlebar3 (); ++ Decorator::options()->commandInactiveTitlebar3 (); + default: + break; + } + ++ return com; ++} ++ ++void ++KWD::Window::processMousePressEvent (QMouseEvent *qme) ++{ ++ Options::MouseCommand com = buttonToCommand (qme->button ()); ++ + if (qme->button () == Qt::LeftButton) + { + // actions where it's not possible to get the matching release event +@@ -752,6 +760,92 @@ KWD::Window::compositingActive (void) const + return true; + } + ++QRect ++KWD::Window::transparentRect () const ++{ ++ return QRect (); ++} ++ ++bool ++KWD::Window::isClientGroupActive () ++{ ++ return true; ++} ++ ++QList ++KWD::Window::clientGroupItems () const ++{ ++ QList items; ++ ++ QIcon icon (mIcon); ++ icon.addPixmap (mMiniIcon); ++ ++ items.append (ClientGroupItem (mName, icon)); ++ ++ return items; ++} ++ ++long ++KWD::Window::itemId (int index) ++{ ++ return (long) mClientId; ++} ++ ++int ++KWD::Window::visibleClientGroupItem () ++{ ++ return 0; ++} ++ ++void ++KWD::Window::setVisibleClientGroupItem (int index) ++{ ++} ++ ++void ++KWD::Window::moveItemInClientGroup (int index, int before) ++{ ++} ++ ++void ++KWD::Window::moveItemToClientGroup (long itemId, int before) ++{ ++} ++ ++void ++KWD::Window::removeFromClientGroup (int index, const QRect& newGeom) ++{ ++} ++ ++void ++KWD::Window::closeClientGroupItem (int index) ++{ ++ closeWindow (); ++} ++ ++void ++KWD::Window::closeAllInClientGroup () ++{ ++ closeWindow (); ++} ++ ++void ++KWD::Window::displayClientMenu (int index, const QPoint& pos) ++{ ++ showWindowMenu (pos); ++} ++ ++KDecorationDefines::WindowOperation ++KWD::Window::buttonToWindowOperation(Qt::MouseButtons button) ++{ ++ Options::MouseCommand com = buttonToCommand (button); ++ ++ if (com == Options::MouseOperationsMenu) ++ return KDecorationDefines::OperationsOp; ++ ++ return KDecorationDefines::NoOp; ++} ++ + void + KWD::Window::createDecoration (void) + { +@@ -1466,7 +1560,7 @@ KWD::Window::moveWindow (QMouseEvent *qme) + NET::Direction direction; + + direction = positionToDirection (mDecor->mousePosition (qme->pos ())); +- ++ + QPoint p (mGeometry.x () - mExtents.left, mGeometry.y () - mExtents.top); + p += qme->pos (); + +@@ -1476,7 +1570,7 @@ KWD::Window::moveWindow (QMouseEvent *qme) + Decorator::rootInfo ()->restackRequest (mClientId, NET::FromApplication, + None, Above, + QX11Info::appTime()); +- ++ + Decorator::rootInfo ()->moveResizeRequest (mClientId, + p.x (), + p.y (), +diff --git a/kde/window-decorator-kde4/window.h b/kde/window-decorator-kde4/window.h +index 40a5076..e230a83 100644 +--- a/kde/window-decorator-kde4/window.h ++++ b/kde/window-decorator-kde4/window.h +@@ -111,7 +111,23 @@ class Window: public QObject, public KDecorationBridgeUnstable { + + /* unstable API */ + virtual bool compositingActive () const; +- ++ virtual QRect transparentRect () const; ++ ++ virtual bool isClientGroupActive (); ++ virtual QList clientGroupItems () const; ++ virtual long itemId (int index); ++ virtual int visibleClientGroupItem (); ++ virtual void setVisibleClientGroupItem (int index); ++ virtual void moveItemInClientGroup (int index, int before); ++ virtual void moveItemToClientGroup (long itemId, int before); ++ virtual void removeFromClientGroup (int index, const QRect& newGeom); ++ virtual void closeClientGroupItem (int index); ++ virtual void closeAllInClientGroup (); ++ virtual void displayClientMenu (int index, const QPoint& pos); ++ ++ virtual WindowOperation ++ buttonToWindowOperation(Qt::MouseButtons button); ++ + virtual bool eventFilter (QObject* o, QEvent* e); + + void handleActiveChange (void); +@@ -191,8 +207,10 @@ class Window: public QObject, public KDecorationBridgeUnstable { + int rightOffset); + void updateProperty (void); + void getWindowProtocols (void); ++ ++ Options::MouseCommand buttonToCommand (Qt::MouseButtons button); + void performMouseCommand (KWD::Options::MouseCommand command, +- QMouseEvent *qme); ++ QMouseEvent *qme); + NET::Direction positionToDirection (int pos); + Cursor positionToCursor (QPoint pos); + diff --git a/kde4_decorator_build.patch b/kde4_decorator_build.patch deleted file mode 100644 index 9e2aa48..0000000 --- a/kde4_decorator_build.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Danny Baumann -Date: Wed, 9 Dec 2009 15:33:14 +0000 (+0100) -Subject: Don't pull in unstable API, it's not needed any longer. -X-Git-Url: http://gitweb.compiz.org/?p=compiz%2Fcore;a=commitdiff_plain;h=9cb2dffa18f711a8515e65612721900ba5cd22e3 - -Don't pull in unstable API, it's not needed any longer. ---- - -diff --git a/kde/window-decorator-kde4/window.h b/kde/window-decorator-kde4/window.h -index 40a5076..4422a15 100644 ---- a/kde/window-decorator-kde4/window.h -+++ b/kde/window-decorator-kde4/window.h -@@ -50,7 +50,7 @@ namespace KWin - - namespace KWD - { --class Window: public QObject, public KDecorationBridgeUnstable { -+class Window: public QObject, public KDecorationBridge { - Q_OBJECT public: - - enum Type -@@ -108,10 +108,8 @@ class Window: public QObject, public KDecorationBridgeUnstable { - virtual QWidget *initialParentWidget (void) const; - virtual Qt::WFlags initialWFlags (void) const; - virtual void grabXServer (bool grab); -+ virtual bool compositingActive() const; - -- /* unstable API */ -- virtual bool compositingActive () const; -- - virtual bool eventFilter (QObject* o, QEvent* e); - - void handleActiveChange (void);