[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