[kdebase-workspace] - include better, upstream fix for: krandr: Display Settings are Lost on Logout (kdebug183143, rh#

Rex Dieter rdieter at fedoraproject.org
Fri Oct 15 18:59:44 UTC 2010


commit bca6937aba22ad4a7e9795a9ecf07aba515e5816
Author: Rex Dieter <rdieter at fedoraproject.org>
Date:   Fri Oct 15 14:05:46 2010 -0500

    - include better, upstream fix for: krandr: Display Settings are Lost
      on Logout (kdebug183143, rh#607180)

 kdebase-workspace-4.4.4-kdebug183143.patch        |  139 ------
 kdebase-workspace-4.5.2-krandrtray_backport.patch |  508 +++++++++++++++++++++
 kdebase-workspace.spec                            |   15 +-
 3 files changed, 518 insertions(+), 144 deletions(-)
---
diff --git a/kdebase-workspace-4.5.2-krandrtray_backport.patch b/kdebase-workspace-4.5.2-krandrtray_backport.patch
new file mode 100644
index 0000000..e62d12c
--- /dev/null
+++ b/kdebase-workspace-4.5.2-krandrtray_backport.patch
@@ -0,0 +1,508 @@
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/CMakeLists.txt.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/CMakeLists.txt
+--- kdebase-workspace-4.5.2/kcontrol/randr/CMakeLists.txt.krandrtray_backport	2010-05-16 05:04:23.000000000 -0500
++++ kdebase-workspace-4.5.2/kcontrol/randr/CMakeLists.txt	2010-10-15 13:49:39.466636332 -0500
+@@ -58,6 +58,8 @@ target_link_libraries(krandrtray ${KDE4_
+ 
+ install(TARGETS krandrtray ${INSTALL_TARGETS_DEFAULT_ARGS})
+ 
++install(PROGRAMS krandrstartup DESTINATION ${BIN_INSTALL_DIR})
++
+ 
+ ########### install files ###############
+ 
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/krandrstartup.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/krandrstartup
+--- kdebase-workspace-4.5.2/kcontrol/randr/krandrstartup.krandrtray_backport	2010-10-15 13:49:39.466636332 -0500
++++ kdebase-workspace-4.5.2/kcontrol/randr/krandrstartup	2010-10-15 13:49:39.466636332 -0500
+@@ -0,0 +1,57 @@
++#!/bin/sh
++#
++# A script that is called from startkde. Does early setup of a configuration
++# saved by krandr.
++
++if test "$kcmrandrrc_display_applyonstartup" = "true"; then
++    if test -n "$kcmrandrrc_display_startupcommands"; then
++        # new way of simply storing the commands
++        echo "$kcmrandrrc_display_startupcommands" | \
++        while read command; do
++            eval "$command"
++        done
++    else
++        # backwards compatibility
++        # 4 screens is hopefully enough
++        for scrn in 0 1 2 3; do
++            args=
++            width="\$kcmrandrrc_screen${scrn}_width" ; eval "width=$width"
++            height="\$kcmrandrrc_screen${scrn}_height" ; eval "height=$height"
++            if test -n "${width}" -a -n "${height}"; then
++                args="$args -s ${width}x${height}"
++            fi
++            refresh="\$kcmrandrrc_screen${scrn}_refresh" ; eval "refresh=$refresh"
++            if test -n "${refresh}"; then
++                args="$args -r ${refresh}"
++            fi
++            rotation="\$kcmrandrrc_screen${scrn}_rotation" ; eval "rotation=$rotation"
++            if test -n "${rotation}"; then
++                case "${rotation}" in
++                    0)
++                        args="$args -o 0"
++                        ;;
++                    90)
++                        args="$args -o 1"
++                        ;;
++                    180)
++                        args="$args -o 2"
++                        ;;
++                    270)
++                        args="$args -o 3"
++                        ;;
++                esac
++            fi
++            reflectx="\$kcmrandrrc_screen${scrn}_reflectx" ; eval "reflectx=$reflectx"
++            if test "${refrectx}" = "true"; then
++                args="$args -x"
++            fi
++            reflecty="\$kcmrandrrc_screen${scrn}_reflecty" ; eval "reflecty=$reflecty"
++            if test "${refrecty}" = "true"; then
++                args="$args -y"
++            fi
++            if test -n "$args"; then
++                xrandr $args
++            fi
++        done
++    fi
++fi
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/krandrtray.cpp.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/krandrtray.cpp
+--- kdebase-workspace-4.5.2/kcontrol/randr/krandrtray.cpp.krandrtray_backport	2010-05-05 04:37:46.000000000 -0500
++++ kdebase-workspace-4.5.2/kcontrol/randr/krandrtray.cpp	2010-10-15 13:49:39.466636332 -0500
+@@ -505,7 +505,7 @@ void KRandRSystemTray::slotResolutionCha
+ 
+ 	if (screen->applyProposedAndConfirm()) 
+ 	{
+-		KConfig config("krandrrc");
++		KConfig config("kcmrandrrc");
+ 		if (m_display->syncTrayApp(config))
+ 			screen->save(config);
+ 	}
+@@ -531,7 +531,7 @@ void KRandRSystemTray::slotOrientationCh
+ 
+ 	if (screen->applyProposedAndConfirm()) 
+ 	{
+-		KConfig config("krandrrc");
++		KConfig config("kcmrandrrc");
+ 		if (m_display->syncTrayApp(config))
+ 			screen->save(config);
+ 	}
+@@ -551,7 +551,7 @@ void KRandRSystemTray::slotRefreshRateCh
+ 
+ 	if (screen->applyProposedAndConfirm()) 
+ 	{
+-		KConfig config("krandrrc");
++		KConfig config("kcmrandrrc");
+ 		if (m_display->syncTrayApp(config))
+ 			screen->save(config);
+ 	}
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrconfig.cpp.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrconfig.cpp
+--- kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrconfig.cpp.krandrtray_backport	2009-11-13 04:57:32.000000000 -0600
++++ kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrconfig.cpp	2010-10-15 13:49:39.467636123 -0500
+@@ -73,7 +73,7 @@ void LegacyRandRConfig::load()
+ 	// and if it isn't correct they have changed a) their X configuration, b) the screen
+ 	// with another program, or c) their hardware.
+ 
+-	KConfig config("krandrrc");
++	KConfig config("kcmrandrrc");
+ 	m_oldApply = m_display->loadDisplay(config, false);
+ 	m_oldSyncTrayApp = m_display->syncTrayApp(config);
+ 	applyOnStartup->setChecked(m_oldApply);
+@@ -91,8 +91,12 @@ void LegacyRandRConfig::save()
+ 
+ 	m_oldApply = applyOnStartup->isChecked();
+ 	m_oldSyncTrayApp = syncTrayApp->isChecked();
+-	KConfig config("krandrrc");
+-	m_display->saveDisplay(config, m_oldApply, m_oldSyncTrayApp);
++	KConfig config("kcmrandrrc");
++	m_display->saveDisplay(config, m_oldSyncTrayApp);
++	if(m_oldApply)
++		m_display->saveStartup(config);
++	else
++		m_display->disableStartup(config);
+ 
+ 	setChanged();
+ }
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrscreen.cpp.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrscreen.cpp
+--- kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrscreen.cpp.krandrtray_backport	2008-07-08 04:26:10.000000000 -0500
++++ kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrscreen.cpp	2010-10-15 13:49:39.467636123 -0500
+@@ -388,6 +388,28 @@ void LegacyRandRScreen::save(KConfig& co
+ 	group.writeEntry("reflectY", (bool)(rotation() & RandR::ReflectMask) == RandR::ReflectY);
+ }
+ 
++QStringList LegacyRandRScreen::startupCommands() const
++{
++	QString command = QString("xrandr -s %1x%2 -r %3 ").arg( currentPixelSize().width(),
++	    currentPixelSize().height(), refreshRateIndexToHz(size(), refreshRate()));
++	switch( rotation()) {
++		case RR_Rotate_90:
++			command += " -o 1 ";
++			break;
++		case RR_Rotate_180:
++			command += " -o 2 ";
++			break;
++		case RR_Rotate_270:
++			command += " -o 3 ";
++			break;
++	}
++	if((rotation() & RandR::ReflectMask) == RandR::ReflectX)
++		command += " -x ";
++	if((bool)(rotation() & RandR::ReflectMask) == RandR::ReflectY)
++		command += " -y ";
++	return QStringList() << command;
++}
++
+ int LegacyRandRScreen::pixelCount( int index ) const
+ {
+ 	QSize sz = pixelSize(index);
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrscreen.h.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrscreen.h
+--- kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrscreen.h.krandrtray_backport	2008-01-14 19:50:55.000000000 -0600
++++ kdebase-workspace-4.5.2/kcontrol/randr/legacyrandrscreen.h	2010-10-15 13:49:39.468636472 -0500
+@@ -130,6 +130,7 @@ public:
+ 	 */
+ 	void load(KConfig& config);
+ 	void save(KConfig& config) const;
++	QStringList startupCommands() const;
+ 
+ private:
+ 	XRRScreenConfiguration*	m_config;
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/randrconfigbase.ui.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/randrconfigbase.ui
+--- kdebase-workspace-4.5.2/kcontrol/randr/randrconfigbase.ui.krandrtray_backport	2009-11-13 04:57:32.000000000 -0600
++++ kdebase-workspace-4.5.2/kcontrol/randr/randrconfigbase.ui	2010-10-15 13:49:39.468636472 -0500
+@@ -44,6 +44,13 @@
+          </property>
+         </widget>
+        </item>
++       <item>
++        <widget class="QPushButton" name="saveAsDefaultButton">
++         <property name="text">
++          <string>Save as Default</string>
++         </property>
++        </widget>
++       </item>
+       </layout>
+      </widget>
+      <widget class="QGraphicsView" name="screenView"/>
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/randrconfig.cpp.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/randrconfig.cpp
+--- kdebase-workspace-4.5.2/kcontrol/randr/randrconfig.cpp.krandrtray_backport	2009-12-10 17:14:03.000000000 -0600
++++ kdebase-workspace-4.5.2/kcontrol/randr/randrconfig.cpp	2010-10-15 13:49:39.469636751 -0500
+@@ -31,6 +31,8 @@
+ #include <kglobalsettings.h>
+ #include <kmessagebox.h>
+ #include <kprocess.h>
++#include <kshell.h>
++#include <qmenu.h>
+ 
+ RandRConfig::RandRConfig(QWidget *parent, RandRDisplay *display)
+ 	: QWidget(parent), Ui::RandRConfigBase()
+@@ -54,6 +56,12 @@ RandRConfig::RandRConfig(QWidget *parent
+ 	identifyTimer.setSingleShot( true );
+ 	compressUpdateViewTimer.setSingleShot( true );
+ 
++	connect( saveAsDefaultButton, SIGNAL( clicked()), SLOT( saveStartup()));
++	QMenu* saveMenu = new QMenu(saveAsDefaultButton);
++	saveMenu->addAction(i18n("Save as Default"),this, SLOT(saveStartup()));
++	saveMenu->addAction(i18n("Reset"),this, SLOT(disableStartup()));
++	saveAsDefaultButton->setMenu(saveMenu);
++
+ 	// create the container for the settings widget
+ 	QHBoxLayout *layout = new QHBoxLayout(outputList);
+ 	layout->setSpacing(0);
+@@ -214,6 +222,25 @@ void RandRConfig::update()
+ 	emit changed(false);
+ }
+ 
++void RandRConfig::saveStartup()
++{
++	if (!m_display->isValid())
++		return;
++	KConfig config("kcmrandrrc");
++	m_display->saveStartup(config);
++	KMessageBox::information( window(), i18n( "Configuration has been set as the desktop default." ));
++}
++
++void RandRConfig::disableStartup()
++{
++	if (!m_display->isValid())
++		return;
++	KConfig config("kcmrandrrc");
++	m_display->disableStartup(config);
++	KMessageBox::information( window(), i18n( "Default desktop setup has been reset." ));
++}
++
++
+ bool RandRConfig::eventFilter(QObject *obj, QEvent *event)
+ {
+ 	if ( obj == screenView && event->type() == QEvent::Resize ) {
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/randrconfig.h.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/randrconfig.h
+--- kdebase-workspace-4.5.2/kcontrol/randr/randrconfig.h.krandrtray_backport	2009-11-13 04:57:32.000000000 -0600
++++ kdebase-workspace-4.5.2/kcontrol/randr/randrconfig.h	2010-10-15 13:49:39.469636751 -0500
+@@ -57,6 +57,8 @@ protected slots:
+ 	void slotAdjustOutput(OutputGraphicsItem *o);
+ 	void identifyOutputs();
+ 	void clearIndicators();
++	void saveStartup();
++	void disableStartup();
+ 
+ signals:
+ 	void changed(bool change);
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/randrdisplay.cpp.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/randrdisplay.cpp
+--- kdebase-workspace-4.5.2/kcontrol/randr/randrdisplay.cpp.krandrtray_backport	2008-09-29 00:55:38.000000000 -0500
++++ kdebase-workspace-4.5.2/kcontrol/randr/randrdisplay.cpp	2010-10-15 13:49:39.470636332 -0500
+@@ -290,10 +290,9 @@ bool RandRDisplay::syncTrayApp(KConfig& 
+ 	return config.group("Display").readEntry("SyncTrayApp", false);
+ }
+ 
+-void RandRDisplay::saveDisplay(KConfig& config, bool applyOnStartup, bool syncTrayApp)
++void RandRDisplay::saveDisplay(KConfig& config, bool syncTrayApp)
+ {
+ 	KConfigGroup group = config.group("Display");
+-	group.writeEntry("ApplyOnStartup", applyOnStartup);
+ 	group.writeEntry("SyncTrayApp", syncTrayApp);
+ 
+ #ifdef HAS_RANDR_1_2
+@@ -310,6 +309,36 @@ void RandRDisplay::saveDisplay(KConfig& 
+ 	}
+ }
+ 
++// to be used during desktop startup, make all screens provide the shell commands
++// (using xrandr cli tool), save them here and a script will perform these commands
++// early during desktop startup
++void RandRDisplay::saveStartup(KConfig& config)
++{
++	KConfigGroup group = config.group("Display");
++	group.writeEntry("ApplyOnStartup", true);
++	QStringList commands;
++#ifdef HAS_RANDR_1_2
++	if (RandR::has_1_2)
++	{
++		foreach(RandRScreen *s, m_screens)
++			commands += s->startupCommands();
++	}
++	else
++#endif
++	{
++		foreach(LegacyRandRScreen *s, m_legacyScreens)
++			commands += s->startupCommands();
++	}
++	group.writeEntry( "StartupCommands", commands.join( "\n" ));
++}
++
++void RandRDisplay::disableStartup(KConfig& config)
++{
++	KConfigGroup group = config.group("Display");
++	group.writeEntry("ApplyOnStartup", false);
++	group.deleteEntry( "StartupCommands" );
++}
++
+ void RandRDisplay::applyProposed(bool confirm)
+ {
+ 
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/randrdisplay.h.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/randrdisplay.h
+--- kdebase-workspace-4.5.2/kcontrol/randr/randrdisplay.h.krandrtray_backport	2009-11-13 04:57:32.000000000 -0600
++++ kdebase-workspace-4.5.2/kcontrol/randr/randrdisplay.h	2010-10-15 13:49:39.470636332 -0500
+@@ -63,7 +63,9 @@ public:
+ 	 * @retuns true if the settings should be applied on KDE startup.
+ 	 */
+ 	bool loadDisplay(KConfig& config, bool loadScreens = true);
+-	void saveDisplay(KConfig& config, bool applyOnStartup, bool syncTrayApp);
++	void saveDisplay(KConfig& config, bool syncTrayApp);
++	void saveStartup(KConfig& config);
++	void disableStartup(KConfig& config);
+ 
+ 	static bool applyOnStartup(KConfig& config);
+ 	static bool syncTrayApp(KConfig& config);
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/randroutput.cpp.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/randroutput.cpp
+--- kdebase-workspace-4.5.2/kcontrol/randr/randroutput.cpp.krandrtray_backport	2010-04-15 03:59:20.000000000 -0500
++++ kdebase-workspace-4.5.2/kcontrol/randr/randroutput.cpp	2010-10-15 13:49:39.471635983 -0500
+@@ -24,6 +24,7 @@
+ 
+ #include <KConfig>
+ #include <KConfigGroup>
++#include <KShell>
+ #include <QX11Info>
+ #include <QAction>
+ 
+@@ -424,6 +425,36 @@ void RandROutput::save(KConfig &config)
+ 	cg.writeEntry("RefreshRate", (double)m_crtc->refreshRate());
+ }
+ 
++QStringList RandROutput::startupCommands() const
++{
++	if (!m_connected)
++		return QStringList();
++	if (m_crtc->id() == None)
++	     return QStringList();	
++	QString command = QString( "xrandr --output \"%1\"" ).arg( KShell::quoteArg( m_name ));
++	// if the outputs are unified, do not save size and rotation
++	// this allow us to set back the size and rotation being used
++	// when the outputs are not unified.
++	if (!m_screen->outputsUnified() || m_screen->connectedCount() <=1)
++	{
++		command += QString( " --pos %1x%2 --mode %3x%4" ).arg( m_crtc->rect().x())
++		    .arg( m_crtc->rect().y()).arg( m_crtc->rect().width()).arg( m_crtc->rect().height());
++		switch( m_crtc->rotation()) {
++			case RandR::Rotate90:
++				command += " --rotate right";
++				break;
++			case RandR::Rotate180:
++				command += " --rotate inverted";
++				break;
++			case RandR::Rotate270:
++				command += " --rotate left";
++				break;
++		}
++	}
++	command += QString(" --refresh %1").arg( m_crtc->refreshRate());
++	return QStringList() << command;
++}
++
+ void RandROutput::proposeRefreshRate(float rate)
+ {
+ 	if (!m_crtc->isValid())
+@@ -559,7 +590,7 @@ bool RandROutput::applyProposed(int chan
+ 	}
+ 	kDebug() << "Applying proposed changes for output" << m_name << "...";
+ 
+-	KConfig cfg("krandrrc");
++	KConfig cfg("kcmrandrrc");
+ 	RandRCrtc *crtc;
+ 
+ 	// first try to apply to the already attached crtc if any
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/randroutput.h.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/randroutput.h
+--- kdebase-workspace-4.5.2/kcontrol/randr/randroutput.h.krandrtray_backport	2009-11-13 04:57:32.000000000 -0600
++++ kdebase-workspace-4.5.2/kcontrol/randr/randroutput.h	2010-10-15 13:49:39.472635843 -0500
+@@ -118,6 +118,7 @@ public:
+ 
+ 	void load(KConfig &config);
+ 	void save(KConfig &config);
++	QStringList startupCommands() const;
+ 
+ public slots:
+ 	void slotChangeSize(QAction *action);
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/randrscreen.cpp.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/randrscreen.cpp
+--- kdebase-workspace-4.5.2/kcontrol/randr/randrscreen.cpp.krandrtray_backport	2009-11-13 04:57:32.000000000 -0600
++++ kdebase-workspace-4.5.2/kcontrol/randr/randrscreen.cpp	2010-10-15 13:49:39.472635843 -0500
+@@ -420,13 +420,24 @@ void RandRScreen::save(KConfig &config)
+ 
+ void RandRScreen::save()
+ {
+-	KConfig cfg("krandrrc");
++	KConfig cfg("kcmrandrrc");
+ 	save(cfg);
+ }
+ 
++QStringList RandRScreen::startupCommands() const
++{
++	QStringList commands;
++	foreach(RandROutput *output, m_outputs)
++	{
++		if (output->isConnected())
++			commands += output->startupCommands();
++	}
++	return commands;
++}
++
+ void RandRScreen::load()
+ {
+-	KConfig cfg("krandrrc");
++	KConfig cfg("kcmrandrrc");
+ 	load(cfg);
+ }
+ 
+@@ -511,7 +522,7 @@ bool RandRScreen::applyProposed(bool con
+ 
+ void RandRScreen::unifyOutputs()
+ {
+-	KConfig cfg("krandrrc");
++	KConfig cfg("kcmrandrrc");
+ 	SizeList sizes = unifiedSizes();
+ 
+ 	//FIXME: better handle this
+@@ -562,7 +573,7 @@ void RandRScreen::slotResizeUnified(QAct
+ void RandRScreen::slotUnifyOutputs(bool unified)
+ {
+ 	m_outputsUnified = unified;
+-	KConfig cfg("krandrrc");
++	KConfig cfg("kcmrandrrc");
+ 
+ 	if (!unified || m_connectedCount <= 1)
+ 	{
+diff -up kdebase-workspace-4.5.2/kcontrol/randr/randrscreen.h.krandrtray_backport kdebase-workspace-4.5.2/kcontrol/randr/randrscreen.h
+--- kdebase-workspace-4.5.2/kcontrol/randr/randrscreen.h.krandrtray_backport	2008-01-14 19:50:55.000000000 -0600
++++ kdebase-workspace-4.5.2/kcontrol/randr/randrscreen.h	2010-10-15 13:49:39.473636192 -0500
+@@ -84,6 +84,7 @@ public:
+ 
+ 	void load(KConfig &config);
+ 	void save(KConfig &config);
++	QStringList startupCommands() const;
+ 
+ public slots:
+ 	void slotUnifyOutputs(bool unify);
+diff -up kdebase-workspace-4.5.2/startkde.cmake.krandrtray_backport kdebase-workspace-4.5.2/startkde.cmake
+--- kdebase-workspace-4.5.2/startkde.cmake.krandrtray_backport	2010-08-27 03:10:26.000000000 -0500
++++ kdebase-workspace-4.5.2/startkde.cmake	2010-10-15 13:49:39.473636192 -0500
+@@ -82,6 +82,7 @@ kcminputrc Mouse cursorSize ''
+ ksplashrc KSplash Theme Default
+ ksplashrc KSplash Engine KSplashX
+ kcmrandrrc Display ApplyOnStartup false
++kcmrandrrc Display StartupCommands ''
+ kcmrandrrc [Screen0]
+ kcmrandrrc [Screen1]
+ kcmrandrrc [Screen2]
+@@ -115,49 +116,7 @@ if test -n "$kcminputrc_mouse_cursorthem
+     fi
+ fi
+ 
+-if test "$kcmrandrrc_display_applyonstartup" = "true"; then
+-    # 4 screens is hopefully enough
+-    for scrn in 0 1 2 3; do
+-        args=
+-        width="\$kcmrandrrc_screen${scrn}_width" ; eval "width=$width"
+-        height="\$kcmrandrrc_screen${scrn}_height" ; eval "height=$height"
+-        if test -n "${width}" -a -n "${height}"; then
+-            args="$args -s ${width}x${height}"
+-        fi
+-        refresh="\$kcmrandrrc_screen${scrn}_refresh" ; eval "refresh=$refresh"
+-        if test -n "${refresh}"; then
+-            args="$args -r ${refresh}"
+-        fi
+-        rotation="\$kcmrandrrc_screen${scrn}_rotation" ; eval "rotation=$rotation"
+-        if test -n "${rotation}"; then
+-            case "${rotation}" in
+-                0)
+-                    args="$args -o 0"
+-                    ;;
+-                90)
+-                    args="$args -o 1"
+-                    ;;
+-                180)
+-                    args="$args -o 2"
+-                    ;;
+-                270)
+-                    args="$args -o 3"
+-                    ;;
+-            esac
+-        fi
+-        reflectx="\$kcmrandrrc_screen${scrn}_reflectx" ; eval "reflectx=$reflectx"
+-        if test "${refrectx}" = "true"; then
+-            args="$args -x"
+-        fi
+-        reflecty="\$kcmrandrrc_screen${scrn}_reflecty" ; eval "reflecty=$reflecty"
+-        if test "${refrecty}" = "true"; then
+-            args="$args -y"
+-        fi
+-        if test -n "$args"; then
+-            xrandr $args
+-        fi
+-    done
+-fi
++. krandrstartup 2>/dev/null
+ 
+ if test "$kcmfonts_general_forcefontdpi" -eq 120; then
+     xrdb -quiet -merge -nocpp <<EOF
diff --git a/kdebase-workspace.spec b/kdebase-workspace.spec
index 37ebf07..496ff59 100644
--- a/kdebase-workspace.spec
+++ b/kdebase-workspace.spec
@@ -17,7 +17,7 @@ Version: 4.5.2
 # for .0 releases we have to use '00' as '0' is treated as null by cmake, dont' forget to update
 %define kde4workspace_version %{version} 
 
-Release: 1%{?dist}
+Release: 2%{?dist}
 
 License: GPLv2
 Group:   User Interface/Desktops
@@ -64,8 +64,6 @@ Patch50: kdebase-workspace-4.3.3-kde#171685.patch
 # "Adding "Enable networking" button to knetworkmanager"
 # https://bugzilla.redhat.com/598765 https://bugs.kde.org/238325
 Patch52: kdebase-workspace-4.4.85-kdebug238325.patch 
-# Display Settings are Lost on Logout, http://bugs.kde.org/183143 , http://bugzilla.redhat.com/607180
-Patch53: kdebase-workspace-4.4.4-kdebug183143.patch
 #  Error in file "/usr/share/applications/kde4/kfontview.desktop":
 # "fonts/package" is an invalid MIME type http://bugzilla.redhat.com/581896
 Patch54: kdebase-workspace-4.5.1-kfontview_dt_validate.patch
@@ -73,7 +71,9 @@ Patch54: kdebase-workspace-4.5.1-kfontview_dt_validate.patch
 ## 4.5 patches
 
 ## trunk patches
-
+# Display Settings are Lost on Logout, http://bugs.kde.org/183143 , http://bugzilla.redhat.com/607180
+# backport http://websvn.kde.org/?view=revision&revision=1170315
+Patch150: kdebase-workspace-4.5.2-krandrtray_backport.patch
 
 # moving to non-multilib hack
 Obsoletes: kdebase-workspace < 4.3.0-2
@@ -321,12 +321,12 @@ Requires: akonadi
 # upstream patches
 %patch50 -p1 -b .kde#171685
 %patch52 -p1 -b .kdebug238325
-%patch53 -p1 -b .kdebug183143
 %patch54 -p1 -b .kfontview_dt_validate
 
 # 4.5 patches
 
 # trunk patches
+%patch150 -p1 -b .krandrtray_backport
 
 
 %build
@@ -421,6 +421,7 @@ fi
 %{_kde4_bindir}/klipper
 %{_kde4_bindir}/kmenuedit
 %{_kde4_bindir}/krandom.kss
+%{_kde4_bindir}/krandrstartup
 %{_kde4_bindir}/krandrtray
 %{_kde4_bindir}/krdb
 %{_kde4_bindir}/krunner
@@ -699,6 +700,10 @@ fi
 
 
 %changelog
+* Fri Oct 15 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.5.2-2
+- include better, upstream fix for: krandr: Display Settings are Lost
+  on Logout (kdebug183143, rh#607180)
+
 * Fri Oct 01 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.5.2-1
 - 4.5.2
 


More information about the scm-commits mailing list