rpms/kdebase-workspace/devel kdebase-workspace-4.1.2-multihead.patch, NONE, 1.1 kdebase-workspace-4.1.2-panel-autohide-866998.patch, NONE, 1.1 kdebase-workspace-4.1.2-panel-autohide-871058.patch, NONE, 1.1 kdebase-workspace-4.1.2-panel-autohide-coords.patch, NONE, 1.1 kdebase-workspace-4.1.2-rootprivs.patch, NONE, 1.1 kdebase-workspace-4.1.2-session-button.patch, NONE, 1.1 kdebase-workspace.spec, 1.129, 1.130 kdebase-workspace-4.0.72-rootprivs.patch, 1.3, NONE

Kevin Kofler kkofler at fedoraproject.org
Sun Nov 2 08:59:23 UTC 2008


Author: kkofler

Update of /cvs/pkgs/rpms/kdebase-workspace/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25703/devel

Modified Files:
	kdebase-workspace.spec 
Added Files:
	kdebase-workspace-4.1.2-multihead.patch 
	kdebase-workspace-4.1.2-panel-autohide-866998.patch 
	kdebase-workspace-4.1.2-panel-autohide-871058.patch 
	kdebase-workspace-4.1.2-panel-autohide-coords.patch 
	kdebase-workspace-4.1.2-rootprivs.patch 
	kdebase-workspace-4.1.2-session-button.patch 
Removed Files:
	kdebase-workspace-4.0.72-rootprivs.patch 
Log Message:
Sync from F-10:

* Sat Nov 01 2008 Than Ngo <than at redhat.com> 4.1.2-9
- previous session button should be enabled

* Fri Oct 31 2008 Than Ngo <than at redhat.com> 4.1.2-8
- apply patch to fix multihead issue
- bz#469235, use non-blocking QProcess:startDetacted

* Sat Oct 25 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.1.2-7
- F10: use KDM default face icon from solar-kde-theme, require it

* Sat Oct 18 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.1.2-6
- reenable panel-autohide-fix-flicker patch
- backport revision 866998 to fix the CPU consumption problem (kde#172549)
- backport panelview.cpp coordinate fixes (revisions 869882, 869925, 870041)
- backport revision 871058 (request config sync when panel controller goes away)

kdebase-workspace-4.1.2-multihead.patch:

--- NEW FILE kdebase-workspace-4.1.2-multihead.patch ---
diff -up kdebase-workspace-4.1.2/kdm/kfrontend/kgapp.cpp.orig kdebase-workspace-4.1.2/kdm/kfrontend/kgapp.cpp
--- kdebase-workspace-4.1.2/kdm/kfrontend/kgapp.cpp.orig	2008-10-31 14:23:05.000000000 +0100
+++ kdebase-workspace-4.1.2/kdm/kfrontend/kgapp.cpp	2008-10-31 14:25:23.000000000 +0100
@@ -248,8 +248,9 @@ kg_main( const char *argv0 )
 	gSendInt( G_Ready );
 
 	if (themer) {
-		QPixmap pm( app.desktop()->screen()->size() );
-		themer->paintBackground( &pm );
+		QPixmap pm( app.desktop()->size() );
+		for (int i = 0; i < app.desktop()->numScreens(); ++i)
+			themer->paintBackground( &pm, app.desktop()->screenGeometry(i) );
 		QPalette palette;
 		palette.setBrush( app.desktop()->backgroundRole(), QBrush( pm ) );
 		app.desktop()->setPalette( palette );
diff -up kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.cpp.orig kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.cpp
--- kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.cpp.orig	2008-10-31 14:21:32.000000000 +0100
+++ kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.cpp	2008-10-31 14:22:02.000000000 +0100
@@ -186,10 +186,9 @@ KdmThemer::widgetEvent( QEvent *e )
 }
 
 void
-KdmThemer::paintBackground( QPaintDevice *dev )
+KdmThemer::paintBackground( QPaintDevice *dev, const QRect &rect )
 {
 	debug() << "==== setting background geometry ====";
-	QRect rect( 0, 0, dev->width(), dev->height() );
 	QStack<QSize> ps;
 	rootItem->setGeometry( ps, rect, true );
 	QPainter p( dev );
diff -up kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.h.orig kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.h
--- kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.h.orig	2008-10-31 14:22:13.000000000 +0100
+++ kdebase-workspace-4.1.2/kdm/kfrontend/themer/kdmthemer.h	2008-10-31 14:22:50.000000000 +0100
@@ -29,6 +29,7 @@ class KdmItem;
 
 class QDomNode;
 class QPaintDevice;
+class QRect;
 
 /**
 * @author Unai Garro
@@ -69,7 +70,7 @@ public:
 	void setTypeVisible( const QString &t, bool show );
 	bool typeVisible( const QString &t ) { return m_showTypes.value( t, false ); }
 
-	void paintBackground( QPaintDevice *dev );
+	void paintBackground( QPaintDevice *dev, const QRect &rect );
 
 Q_SIGNALS:
 	void activated( const QString &id );

kdebase-workspace-4.1.2-panel-autohide-866998.patch:

--- NEW FILE kdebase-workspace-4.1.2-panel-autohide-866998.patch ---
Index: plasma/containments/panel/panel.cpp
===================================================================
--- plasma/containments/panel/panel.cpp	(revision 866997)
+++ plasma/containments/panel/panel.cpp	(revision 866998)
@@ -443,6 +443,9 @@
     if (viewGeom != m_lastViewGeom) {
         m_lastViewGeom = viewGeom;
         updateBorders(viewGeom);
+        if (containmentOpt && containmentOpt->view) {
+            containmentOpt->view->setMask(m_background->mask());
+        }
     }
 
     // blit the background (saves all the per-pixel-products that blending does)
@@ -451,10 +454,6 @@
 
     m_background->paintPanel(painter, option->exposedRect);
 
-    if (containmentOpt && containmentOpt->view) {
-        containmentOpt->view->setMask(m_background->mask());
-    }
-
     // restore transformation and composition mode
     painter->restore();
 }

kdebase-workspace-4.1.2-panel-autohide-871058.patch:

--- NEW FILE kdebase-workspace-4.1.2-panel-autohide-871058.patch ---
Index: plasma/plasma/panelview.cpp
===================================================================
--- plasma/plasma/panelview.cpp	(revision 871057)
+++ plasma/plasma/panelview.cpp	(revision 871058)
@@ -626,6 +626,10 @@
     containment()->closeToolBox();
     updateStruts();
     m_firstPaint = true; // triggers autohide
+
+    // not overly efficient since we may not have changed any settings,
+    // but ensures that if we have, a config sync will occur
+    PlasmaApp::self()->corona()->requestConfigSync();
 }
 
 Qt::Alignment PanelView::alignmentFilter(Qt::Alignment align) const

kdebase-workspace-4.1.2-panel-autohide-coords.patch:

--- NEW FILE kdebase-workspace-4.1.2-panel-autohide-coords.patch ---
Index: plasma/plasma/panelview.cpp
===================================================================
--- plasma/plasma/panelview.cpp	(revision 869881)
+++ plasma/plasma/panelview.cpp	(revision 870041)
@@ -324,7 +324,7 @@
         } else if (m_alignment == Qt::AlignRight) {
             geom.moveTopRight(QPoint(screenGeom.right() - m_offset, screenGeom.top()));
         } else if (m_alignment == Qt::AlignCenter) {
-            geom.moveCenter(QPoint(screenGeom.center().x() + m_offset, screenGeom.top() + geom.height()/2  - 1));
+            geom.moveTopLeft(QPoint(screenGeom.center().x() - geom.width()/2 + 1 - geom.width()%2 + m_offset, screenGeom.top()));
         }
 
         //enable borders if needed
@@ -337,7 +337,7 @@
         } else if (m_alignment == Qt::AlignRight) {
             geom.moveBottomLeft(QPoint(screenGeom.left(), screenGeom.bottom() - m_offset));
         } else if (m_alignment == Qt::AlignCenter) {
-            geom.moveCenter(QPoint(screenGeom.left()+size.width()/2 - 1, screenGeom.center().y() + m_offset -1));
+            geom.moveTopLeft(QPoint(screenGeom.left(), screenGeom.center().y() - geom.height()/2 + 1 - geom.height()%2 + m_offset));
         }
 
         //enable borders if needed
@@ -346,11 +346,11 @@
 
     case Plasma::RightEdge:
         if (m_alignment == Qt::AlignLeft) {
-            geom.moveTopLeft(QPoint(screenGeom.right() - size.width() + 1, m_offset));
+            geom.moveTopRight(QPoint(screenGeom.right(), m_offset));
         } else if (m_alignment == Qt::AlignRight) {
-            geom.moveBottomLeft(QPoint(screenGeom.right() - size.width() + 1, screenGeom.bottom() - m_offset));
+            geom.moveBottomRight(QPoint(screenGeom.right(), screenGeom.bottom() - m_offset));
         } else if (m_alignment == Qt::AlignCenter) {
-            geom.moveCenter(QPoint(screenGeom.right() - size.width()/2, screenGeom.center().y() + m_offset));
+            geom.moveTopRight(QPoint(screenGeom.right(), screenGeom.center().y() - geom.height()/2 + 1 - geom.height()%2 + m_offset));
         }
 
         //enable borders if needed
@@ -360,11 +360,11 @@
     case Plasma::BottomEdge:
     default:
         if (m_alignment == Qt::AlignLeft) {
-            geom.moveTopLeft(QPoint(m_offset, screenGeom.bottom() - size.height() + 1));
+            geom.moveBottomLeft(QPoint(m_offset, screenGeom.bottom()));
         } else if (m_alignment == Qt::AlignRight) {
-            geom.moveTopRight(QPoint(screenGeom.right() - m_offset, screenGeom.bottom() - size.height() + 1));
+            geom.moveBottomRight(QPoint(screenGeom.right() - m_offset, screenGeom.bottom()));
         } else if (m_alignment == Qt::AlignCenter) {
-            geom.moveCenter(QPoint(screenGeom.center().x() + m_offset, screenGeom.bottom() - size.height()/2));
+            geom.moveBottomLeft(QPoint(screenGeom.center().x() - geom.width()/2 + 1 - geom.width()%2 + m_offset, screenGeom.bottom()));
         }
 
         //enable borders if needed

kdebase-workspace-4.1.2-rootprivs.patch:

--- NEW FILE kdebase-workspace-4.1.2-rootprivs.patch ---
Index: mainwindow.cpp
===================================================================
--- mainwindow.cpp	(revision 835492)
+++ mainwindow.cpp	(working copy)
@@ -27,6 +27,7 @@
 
 #include <QLayout>
 #include <QStackedWidget>
+#include <QProcess>
 
 #include <KAction>
 #include <KActionCollection>
@@ -42,6 +43,7 @@
 #include <KStandardAction>
 #include <KTabWidget>
 #include <kcategorizedsortfilterproxymodel.h>
+#include <KStandardDirs>
 #include <kcategorizedview.h>
 #include <kcategorydrawer.h>
 #include <kiconloader.h>
@@ -176,13 +178,6 @@
         connect( tv,
                 SIGNAL(activated(const QModelIndex&)),
                 SLOT(selectionChanged(const QModelIndex&)) );
-        if (KGlobalSettings::singleClick()) {
-            connect( tv, SIGNAL(clicked(const QModelIndex&)),
-                     SLOT(selectionChanged(const QModelIndex&)));
-        } else {
-            connect( tv, SIGNAL(doubleClicked(const QModelIndex&)),
-                     SLOT(selectionChanged(const QModelIndex&)));
-        }
         connect( search, SIGNAL(textChanged(const QString&)),
                 kcsfpm, SLOT(setFilterRegExp(const QString&)));
         connect( kcsfpm, SIGNAL(layoutChanged()),
@@ -299,9 +294,13 @@
         return;
 
     MenuItem * mItem = selected.data( Qt::UserRole ).value<MenuItem*>();
+    bool needsRootPrivs = false;
     if ( mItem ) {
         kDebug() << "Selected item: " << mItem->service->name();
         kDebug() << "Comment:       " << mItem->service->comment();
+
+        needsRootPrivs = mItem->service->property( "X-KDE-RootOnly", QVariant::Bool ).toBool();
+        kDebug() << "Needs root privs:" << needsRootPrivs;
     } else {
         kDebug() << ":'( Got dud pointer from " << selected.data( Qt::DisplayRole ).toString();
         Q_ASSERT(mItem); // Would core dump below. Do it now
@@ -313,6 +312,35 @@
     if ( groupWidget )
         return;
 
+    if ( needsRootPrivs )
+    {
+        QString kdesu = KStandardDirs::findExe( "kdesu" );
+        //kDebug() << "kdesu path:" << kdesu;
+
+        QString cmd = mItem->service->exec().trimmed();
+
+        /* Prepare the process to run the kcmshell */
+        if ( cmd.left(5) == "kdesu" )
+        {
+            cmd = cmd.remove(0,5).trimmed();
+
+            /* Remove all kdesu switches */
+            while ( cmd.length() > 1 && cmd[ 0 ] == '-' )
+                cmd = cmd.remove( 0, cmd.indexOf( ' ' ) ).trimmed();
+        }
+
+        if ( cmd.left(9) == "kcmshell4" )
+            cmd = cmd.remove(0,9).trimmed();
+
+        QStringList args;
+        args << "-i" << QString( mItem->service->icon() ) << "-c" << QString( "%1 %2 --lang %3" ).arg( KStandardDirs::locate("exe", "kcmshell4") ).arg( cmd ).arg( KGlobal::locale()->language() );
+
+        kDebug() << "Starting root module: " << args;
+        QProcess::startDetached( kdesu, args );
+
+        return;
+    }
+
     groupWidget = moduleItemToWidgetDict[mItem->service];
 
     if( !groupWidget ) {

kdebase-workspace-4.1.2-session-button.patch:

--- NEW FILE kdebase-workspace-4.1.2-session-button.patch ---
diff -up kdebase-workspace-4.1.2/kdm/kfrontend/kgreeter.cpp.orig kdebase-workspace-4.1.2/kdm/kfrontend/kgreeter.cpp
--- kdebase-workspace-4.1.2/kdm/kfrontend/kgreeter.cpp.orig	2008-10-31 23:21:08.000000000 +0100
+++ kdebase-workspace-4.1.2/kdm/kfrontend/kgreeter.cpp	2008-11-01 00:15:47.000000000 +0100
@@ -520,9 +520,11 @@ KGreeter::setPrevWM( QAction *wm )
 	if (curPrev != wm) {
 		if (curPrev)
 			curPrev->setText( sessionTypes[curPrev->data().toInt()].name );
-		if (wm)
+		if (wm) {
 			wm->setText( sessionTypes[wm->data().toInt()].name +
 			             i18nc("appended to session type", " (previous)") );
+			wm->toggle();
+		}
 		curPrev = wm;
 	}
 }


Index: kdebase-workspace.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kdebase-workspace/devel/kdebase-workspace.spec,v
retrieving revision 1.129
retrieving revision 1.130
diff -u -r1.129 -r1.130
--- kdebase-workspace.spec	10 Oct 2008 19:20:07 -0000	1.129
+++ kdebase-workspace.spec	2 Nov 2008 08:58:52 -0000	1.130
@@ -3,8 +3,7 @@
 Summary: K Desktop Environment - Workspace
 Name: kdebase-workspace
 Version: 4.1.2
-
-Release: 5%{?dist}
+Release: 9%{?dist}
 Source0: ftp://ftp.kde.org/pub/kde/unstable/%{version}/src/kdebase-workspace-%{version}.tar.bz2
 License: GPLv2
 Group: User Interface/Desktops
@@ -17,7 +16,7 @@
 Patch4: kdebase-workspace-4.1.1-show-systemsettings.patch
 Patch5: kdebase-workspace-4.0.72-ck-shutdown.patch
 # 434824: KDE4 System Settings - No Method To Enter Administrative Mode
-Patch6: kdebase-workspace-4.0.72-rootprivs.patch
+Patch6: kdebase-workspace-4.1.2-rootprivs.patch
 Patch7: kdebase-workspace-4.0.3-timedate-kcm.patch
 # 441062: packagekit tools do not show icons correctly on KDE
 Patch8: kdebase-workspace-4.0.3-krdb.patch
@@ -26,6 +25,8 @@
 Patch10: kdebase-workspace-4.0.72-klipper-url.patch
 # allows to define a default wallpaper via plasmarc:wallpaper
 Patch11: kdebase-workspace-4.0.85-plasma-default-wallpaper.patch
+Patch12: kdebase-workspace-4.1.2-multihead.patch
+Patch13: kdebase-workspace-4.1.2-session-button.patch
 
 # upstream patches:
 # backport Plasma tooltip manager from KDE 4.2 (fixes regression from 4.0)
@@ -52,11 +53,19 @@
 # (use sed -i -e 's!plasma/shells/desktop!plasma/plasma!g' to backport):
 # http://websvn.kde.org/?view=rev&revision=866710
 # http://websvn.kde.org/?view=rev&revision=866715
-#Patch105: kdebase-workspace-4.1.2-panel-autohide-fix-flicker.patch
+Patch105: kdebase-workspace-4.1.2-panel-autohide-fix-flicker.patch
+# http://websvn.kde.org/?view=rev&revision=866998
+Patch106: kdebase-workspace-4.1.2-panel-autohide-866998.patch
 # http://websvn.kde.org/?view=rev&revision=868231
-Patch106: kdebase-workspace-4.1.2-panel-autohide-868231.patch
+Patch107: kdebase-workspace-4.1.2-panel-autohide-868231.patch
 # http://websvn.kde.org/?view=rev&revision=869277
-Patch107: kdebase-workspace-4.1.2-panel-autohide-869277.patch
+Patch108: kdebase-workspace-4.1.2-panel-autohide-869277.patch
+# http://websvn.kde.org/?view=rev&revision=869882
+# http://websvn.kde.org/?view=rev&revision=869925
+# http://websvn.kde.org/?view=rev&revision=870041
+Patch109: kdebase-workspace-4.1.2-panel-autohide-coords.patch
+# http://websvn.kde.org/?view=rev&revision=871058
+Patch110: kdebase-workspace-4.1.2-panel-autohide-871058.patch
 # end panel autohide bugfixes
 
 # FIXME: "inconsistent naming System Monitor vs KSysGuard" http://bugs.kde.org/162151
@@ -111,6 +120,13 @@
 Requires: xorg-x11-utils
 Requires: xorg-x11-server-utils
 
+%if 0%{?fedora} == 10
+%define default_face_icon default_solar.png
+Requires: solar-kde-theme
+%else
+%define default_face_icon default1.png
+%endif
+
 %description
 The KDE Workspace consists of what is the desktop of the 
 KDE Desktop Environment.
@@ -186,15 +202,20 @@
 %patch9 -p1 -b .kickoff-suspend
 %patch10 -p1 -b .klipper-url
 %patch11 -p1 -b .plasma-default-wallpaper
+%patch12 -p1 -b .multihead
+%patch13 -p1 -b .session-button
 
 # upstream patches
 %patch100 -p1 -b .plasma-tooltips
 %patch102 -p0 -b .kwin-taskbarthumbnail
 %patch103 -p0 -b .klipper-crash
 %patch104 -p0 -b .panel-autohide
-#patch105 -p0 -b .panel-autohide2
+%patch105 -p0 -b .panel-autohide2
 %patch106 -p0 -b .panel-autohide3
 %patch107 -p0 -b .panel-autohide4
+%patch108 -p0 -b .panel-autohide5
+%patch109 -p0 -b .panel-autohide6
+%patch110 -p0 -b .panel-autohide7
 
 
 %build
@@ -226,7 +247,7 @@
 # own %{_kde4_appsdir}/kdm/faces and set default user image
 mkdir -p %{buildroot}%{_kde4_appsdir}/kdm/faces
 pushd %{buildroot}%{_kde4_appsdir}/kdm/faces
-ln -sf ../pics/users/default1.png .default.face.icon
+ln -sf ../pics/users/%{default_face_icon} .default.face.icon
 popd
 
 # move devel symlinks
@@ -332,6 +353,22 @@
 
 
 %changelog
+* Sat Nov 01 2008 Than Ngo <than at redhat.com> 4.1.2-9
+- previous session button should be enabled
+
+* Fri Oct 31 2008 Than Ngo <than at redhat.com> 4.1.2-8
+- apply patch to fix multihead issue
+- bz#469235, use non-blocking QProcess:startDetacted
+
+* Sat Oct 25 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.1.2-7
+- F10: use KDM default face icon from solar-kde-theme, require it
+
+* Sat Oct 18 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.1.2-6
+- reenable panel-autohide-fix-flicker patch
+- backport revision 866998 to fix the CPU consumption problem (kde#172549)
+- backport panelview.cpp coordinate fixes (revisions 869882, 869925, 870041)
+- backport revision 871058 (request config sync when panel controller goes away)
+
 * Fri Oct 10 2008 Kevin Kofler <Kevin at tigcc.ticalc.org> 4.1.2-5
 - disable panel-autohide-fix-flicker patch for now, eats CPU
 


--- kdebase-workspace-4.0.72-rootprivs.patch DELETED ---




More information about the scm-commits mailing list