summaryrefslogtreecommitdiffstats
path: root/opensuse/core/tdelibs/xinerama.patch
diff options
context:
space:
mode:
authorRobert Xu <robxu9@gmail.com>2012-03-31 14:28:06 -0400
committerRobert Xu <robxu9@gmail.com>2012-03-31 14:28:06 -0400
commit59dd46ef985a719579132efa6a9aa49bfeeae112 (patch)
tree93d8c721ff263e67aaf59e364496862872ded8fb /opensuse/core/tdelibs/xinerama.patch
parentc141f0bc29b6e2eeda5ca08a043d26546a1427f9 (diff)
downloadtde-packaging-59dd46ef985a719579132efa6a9aa49bfeeae112.tar.gz
tde-packaging-59dd46ef985a719579132efa6a9aa49bfeeae112.zip
better late than never, hm...
Diffstat (limited to 'opensuse/core/tdelibs/xinerama.patch')
-rw-r--r--opensuse/core/tdelibs/xinerama.patch543
1 files changed, 0 insertions, 543 deletions
diff --git a/opensuse/core/tdelibs/xinerama.patch b/opensuse/core/tdelibs/xinerama.patch
deleted file mode 100644
index dec878b40..000000000
--- a/opensuse/core/tdelibs/xinerama.patch
+++ /dev/null
@@ -1,543 +0,0 @@
-Index: kio/kio/krun.h
-===================================================================
---- kio/kio/krun.h.orig
-+++ kio/kio/krun.h
-@@ -111,6 +111,8 @@ public:
- */
- KRun( const KURL& url, QWidget* window, mode_t mode = 0,
- bool isLocalFile = false, bool showProgressInfo = true );
-+ KRun( const KURL& url, QWidget* window, const QCString& asn, mode_t mode = 0,
-+ bool isLocalFile = false, bool showProgressInfo = true );
-
- /**
- * Destructor. Don't call it yourself, since a KRun object auto-deletes
-@@ -210,6 +212,8 @@ public:
- * @since 3.5.2
- */
- static pid_t run( const KService& _service, const KURL::List& _urls, QWidget* window, bool tempFiles = false );
-+ static pid_t run( const KService& _service, const KURL::List& _urls, QWidget* window,
-+ const QCString& asn, bool tempFiles = false );
- /**
- * Open a list of URLs with a certain service (application).
- *
-@@ -226,6 +230,8 @@ public:
- /// @since 3.5.3
- /// @internal
- static pid_t run( const KService& _service, const KURL::List& _urls, QWidget* window, bool tempFiles, const QString& suggestedFileName );
-+ static pid_t run( const KService& _service, const KURL::List& _urls, QWidget* window,
-+ const QCString& asn, bool tempFiles, const QString& suggestedFileName );
-
- /**
- * Open a list of URLs with.
-@@ -269,6 +275,7 @@ public:
- static pid_t runURL( const KURL& _url, const QString& _mimetype );
- /// @since 3.5.3
- /// @internal
-+ static pid_t runURL( const KURL& _url, const QString& _mimetype, QWidget* window, const QCString& asn, bool tempFile, bool runExecutables, const QString& suggestedFileName );
- static pid_t runURL( const KURL& _url, const QString& _mimetype, bool tempFile, bool runExecutables, const QString& suggestedFileName );
-
- /**
-@@ -299,6 +306,8 @@ public:
- * of running command) if command was unsafe for map notification.
- */
- static pid_t runCommand( const QString& cmd, const QString & execName, const QString & icon );
-+ static pid_t runCommand( const QString& cmd, const QString & execName, const QString & icon,
-+ QWidget* window, const QCString& asn );
-
- /**
- * Display the Open-With dialog for those URLs, and run the chosen application.
-@@ -438,7 +447,7 @@ protected:
- virtual void virtual_hook( int id, void* data );
-
- private:
-- void init (const KURL& url, QWidget* window, mode_t mode,
-+ void init (const KURL& url, QWidget* window, const QCString& asn, mode_t mode,
- bool isLocalFile, bool showProgressInfo);
- private:
- class KRunPrivate;
-Index: kio/kio/krun.cpp
-===================================================================
---- kio/kio/krun.cpp.orig
-+++ kio/kio/krun.cpp
-@@ -77,6 +77,7 @@ public:
- QString m_localPath;
- QString m_suggestedFileName;
- QGuardedPtr <QWidget> m_window;
-+ QCString m_asn;
- };
-
- pid_t KRun::runURL( const KURL& u, const QString& _mimetype )
-@@ -109,14 +110,20 @@ bool KRun::isExecutableFile( const KURL&
- return false;
- }
-
--// This is called by foundMimeType, since it knows the mimetype of the URL
- pid_t KRun::runURL( const KURL& u, const QString& _mimetype, bool tempFile, bool runExecutables, const QString& suggestedFileName )
- {
-+ return runURL( u, _mimetype, NULL, "", tempFile, runExecutables, suggestedFileName );
-+}
-+
-+// This is called by foundMimeType, since it knows the mimetype of the URL
-+pid_t KRun::runURL( const KURL& u, const QString& _mimetype, QWidget* window, const QCString& asn,
-+ bool tempFile, bool runExecutables, const QString& suggestedFileName )
-+{
- bool noRun = false;
- bool noAuth = false;
- if ( _mimetype == "inode/directory-locked" )
- {
-- KMessageBoxWrapper::error( 0L,
-+ KMessageBoxWrapper::error( window,
- i18n("<qt>Unable to enter <b>%1</b>.\nYou do not have access rights to this location.</qt>").arg(u.htmlURL()) );
- return 0;
- }
-@@ -133,7 +140,7 @@ pid_t KRun::runURL( const KURL& u, const
- {
- QString path = u.path();
- shellQuote( path );
-- return (KRun::runCommand(path)); // just execute the url as a command
-+ return (KRun::runCommand(path, QString::null, QString::null, window, asn)); // just execute the url as a command
- // ## TODO implement deleting the file if tempFile==true
- }
- else
-@@ -155,14 +162,14 @@ pid_t KRun::runURL( const KURL& u, const
-
- if ( noRun )
- {
-- KMessageBox::sorry( 0L,
-+ KMessageBox::sorry( window,
- i18n("<qt>The file <b>%1</b> is an executable program. "
- "For safety it will not be started.</qt>").arg(u.htmlURL()));
- return 0;
- }
- if ( noAuth )
- {
-- KMessageBoxWrapper::error( 0L,
-+ KMessageBoxWrapper::error( window,
- i18n("<qt>You do not have permission to run <b>%1</b>.</qt>").arg(u.htmlURL()) );
- return 0;
- }
-@@ -182,7 +189,7 @@ pid_t KRun::runURL( const KURL& u, const
- return displayOpenWithDialog( lst, tempFile, suggestedFileName );
- }
-
-- return KRun::run( *offer, lst, 0 /*window*/, tempFile, suggestedFileName );
-+ return KRun::run( *offer, lst, window, asn, tempFile, suggestedFileName );
- }
-
- bool KRun::displayOpenWithDialog( const KURL::List& lst )
-@@ -536,13 +543,13 @@ QString KRun::binaryName( const QString
- }
-
- static pid_t runCommandInternal( KProcess* proc, const KService* service, const QString& binName,
-- const QString &execName, const QString & iconName )
-+ const QString &execName, const QString & iconName, QWidget* window, QCString asn )
- {
- if (service && !service->desktopEntryPath().isEmpty()
- && !KDesktopFile::isAuthorizedDesktopFile( service->desktopEntryPath() ))
- {
- kdWarning() << "No authorization to execute " << service->desktopEntryPath() << endl;
-- KMessageBox::sorry(0, i18n("You are not authorized to execute this file."));
-+ KMessageBox::sorry(window, i18n("You are not authorized to execute this file."));
- return 0;
- }
- QString bin = KRun::binaryName( binName, true );
-@@ -550,10 +557,10 @@ static pid_t runCommandInternal( KProces
- bool silent;
- QCString wmclass;
- KStartupInfoId id;
-- bool startup_notify = KRun::checkStartupNotify( binName, service, &silent, &wmclass );
-+ bool startup_notify = ( asn != "0" && KRun::checkStartupNotify( binName, service, &silent, &wmclass ));
- if( startup_notify )
- {
-- id.initId();
-+ id.initId( asn );
- id.setupStartupEnv();
- KStartupInfoData data;
- data.setHostname();
-@@ -572,6 +579,8 @@ static pid_t runCommandInternal( KProces
- if( silent )
- data.setSilent( KStartupInfoData::Yes );
- data.setDesktop( KWin::currentDesktop());
-+ if( window )
-+ data.setLaunchedBy( window->winId());
- KStartupInfo::sendStartup( id, data );
- }
- pid_t pid = KProcessRunner::run( proc, binName, id );
-@@ -635,7 +644,8 @@ bool KRun::checkStartupNotify( const QSt
- return true;
- }
-
--static pid_t runTempService( const KService& _service, const KURL::List& _urls, bool tempFiles, const QString& suggestedFileName )
-+static pid_t runTempService( const KService& _service, const KURL::List& _urls, QWidget* window,
-+ const QCString& asn, bool tempFiles, const QString& suggestedFileName )
- {
- if (!_urls.isEmpty()) {
- kdDebug(7010) << "runTempService: first url " << _urls.first().url() << endl;
-@@ -654,7 +664,7 @@ static pid_t runTempService( const KServ
- {
- KURL::List singleUrl;
- singleUrl.append(*it);
-- runTempService( _service, singleUrl, tempFiles, suggestedFileName );
-+ runTempService( _service, singleUrl, window, "", tempFiles, suggestedFileName );
- }
- KURL::List singleUrl;
- singleUrl.append(_urls.first());
-@@ -673,7 +683,7 @@ static pid_t runTempService( const KServ
- proc->setWorkingDirectory(_service.path());
-
- return runCommandInternal( proc, &_service, KRun::binaryName( _service.exec(), false ),
-- _service.name(), _service.icon() );
-+ _service.name(), _service.icon(), window, asn );
- }
-
- // WARNING: don't call this from processDesktopExec, since klauncher uses that too...
-@@ -734,11 +744,22 @@ pid_t KRun::run( const KService& _servic
-
- pid_t KRun::run( const KService& _service, const KURL::List& _urls, QWidget* window, bool tempFiles )
- {
-- return run( _service, _urls, window, tempFiles, QString::null );
-+ return run( _service, _urls, window, "", tempFiles, QString::null );
-+}
-+
-+pid_t KRun::run( const KService& _service, const KURL::List& _urls, QWidget* window, const QCString& asn, bool tempFiles )
-+{
-+ return run( _service, _urls, window, asn, tempFiles, QString::null );
- }
-
- pid_t KRun::run( const KService& _service, const KURL::List& _urls, QWidget* window, bool tempFiles, const QString& suggestedFileName )
- {
-+ return run( _service, _urls, window, "", tempFiles, suggestedFileName );
-+}
-+
-+pid_t KRun::run( const KService& _service, const KURL::List& _urls, QWidget* window, const QCString& asn,
-+ bool tempFiles, const QString& suggestedFileName )
-+{
- if (!_service.desktopEntryPath().isEmpty() &&
- !KDesktopFile::isAuthorizedDesktopFile( _service.desktopEntryPath()))
- {
-@@ -759,7 +780,7 @@ pid_t KRun::run( const KService& _servic
-
- if ( tempFiles || _service.desktopEntryPath().isEmpty() || !suggestedFileName.isEmpty() )
- {
-- return runTempService(_service, _urls, tempFiles, suggestedFileName);
-+ return runTempService(_service, _urls, window, asn, tempFiles, suggestedFileName);
- }
-
- kdDebug(7010) << "KRun::run " << _service.desktopEntryPath() << endl;
-@@ -773,9 +794,25 @@ pid_t KRun::run( const KService& _servic
-
- QString error;
- int pid = 0;
--
-+
-+ QCString myasn = asn;
-+ // startServiceByDesktopPath() doesn't take QWidget*, add it to the startup info now
-+ if( window != NULL )
-+ {
-+ if( myasn.isEmpty())
-+ myasn = KStartupInfo::createNewStartupId();
-+ if( myasn != "0" )
-+ {
-+ KStartupInfoId id;
-+ id.initId( myasn );
-+ KStartupInfoData data;
-+ data.setLaunchedBy( window->winId());
-+ KStartupInfo::sendChange( id, data );
-+ }
-+ }
-+
- int i = KApplication::startServiceByDesktopPath(
-- _service.desktopEntryPath(), urls.toStringList(), &error, 0L, &pid
-+ _service.desktopEntryPath(), urls.toStringList(), &error, 0L, &pid, myasn
- );
-
- if (i != 0)
-@@ -800,33 +837,47 @@ pid_t KRun::run( const QString& _exec, c
-
- pid_t KRun::runCommand( QString cmd )
- {
-- return KRun::runCommand( cmd, QString::null, QString::null );
-+ return KRun::runCommand( cmd, QString::null, QString::null, NULL, "" );
- }
-
- pid_t KRun::runCommand( const QString& cmd, const QString &execName, const QString & iconName )
- {
-+ return KRun::runCommand( cmd, execName, iconName, NULL, "" );
-+}
-+
-+pid_t KRun::runCommand( const QString& cmd, const QString &execName, const QString & iconName,
-+ QWidget* window, const QCString& asn )
-+{
- kdDebug(7010) << "runCommand " << cmd << "," << execName << endl;
- KProcess * proc = new KProcess;
- proc->setUseShell(true);
- *proc << cmd;
- KService::Ptr service = KService::serviceByDesktopName( binaryName( execName, true ) );
-- return runCommandInternal( proc, service.data(), binaryName( execName, false ), execName, iconName );
-+ return runCommandInternal( proc, service.data(), binaryName( execName, false ), execName, iconName,
-+ window, asn );
- }
-
- KRun::KRun( const KURL& url, mode_t mode, bool isLocalFile, bool showProgressInfo )
- :m_timer(0,"KRun::timer")
- {
-- init (url, 0, mode, isLocalFile, showProgressInfo);
-+ init (url, 0, "", mode, isLocalFile, showProgressInfo);
- }
-
- KRun::KRun( const KURL& url, QWidget* window, mode_t mode, bool isLocalFile,
- bool showProgressInfo )
- :m_timer(0,"KRun::timer")
- {
-- init (url, window, mode, isLocalFile, showProgressInfo);
-+ init (url, window, "", mode, isLocalFile, showProgressInfo);
-+}
-+
-+KRun::KRun( const KURL& url, QWidget* window, const QCString& asn, mode_t mode, bool isLocalFile,
-+ bool showProgressInfo )
-+ :m_timer(0,"KRun::timer")
-+{
-+ init (url, window, asn, mode, isLocalFile, showProgressInfo);
- }
-
--void KRun::init ( const KURL& url, QWidget* window, mode_t mode, bool isLocalFile,
-+void KRun::init ( const KURL& url, QWidget* window, const QCString& asn, mode_t mode, bool isLocalFile,
- bool showProgressInfo )
- {
- m_bFault = false;
-@@ -842,6 +893,7 @@ void KRun::init ( const KURL& url, QWidg
- d = new KRunPrivate;
- d->m_runExecutables = true;
- d->m_window = window;
-+ d->m_asn = asn;
- setEnableExternalBrowser(true);
-
- // Start the timer. This means we will return to the event
-@@ -942,7 +994,7 @@ void KRun::init()
- KService::Ptr service = KService::serviceByStorageId( exec );
- if (service)
- {
-- run( *service, urls );
-+ run( *service, urls, d->m_window, d->m_asn );
- ok = true;
- }
- }
-@@ -1235,7 +1287,7 @@ void KRun::foundMimeType( const QString&
- {
- KURL::List lst;
- lst.append( m_strURL );
-- m_bFinished = KRun::run( *serv, lst );
-+ m_bFinished = KRun::run( *serv, lst, d->m_window, d->m_asn );
- /// Note: the line above means that if that service failed, we'll
- /// go to runURL to maybe find another service, even though a dialog
- /// box was displayed. That's good if runURL tries another service,
-@@ -1250,7 +1302,7 @@ void KRun::foundMimeType( const QString&
- m_strURL.setPath( d->m_localPath );
- }
-
-- if (!m_bFinished && KRun::runURL( m_strURL, type, false, d->m_runExecutables, d->m_suggestedFileName )){
-+ if (!m_bFinished && KRun::runURL( m_strURL, type, d->m_window, d->m_asn, false, d->m_runExecutables, d->m_suggestedFileName )){
- m_bFinished = true;
- }
- else{
-Index: kdecore/kstartupinfo.cpp
-===================================================================
---- kdecore/kstartupinfo.cpp.orig
-+++ kdecore/kstartupinfo.cpp
-@@ -1109,7 +1109,7 @@ unsigned long KStartupInfoId::timestamp(
- struct KStartupInfoDataPrivate
- {
- KStartupInfoDataPrivate() : desktop( 0 ), wmclass( "" ), hostname( "" ),
-- silent( KStartupInfoData::Unknown ), timestamp( -1U ), screen( -1 ) {}
-+ silent( KStartupInfoData::Unknown ), timestamp( -1U ), screen( -1 ), xinerama( -1 ), launched_by( 0 ) {}
- QString bin;
- QString name;
- QString description;
-@@ -1121,6 +1121,8 @@ struct KStartupInfoDataPrivate
- KStartupInfoData::TriState silent;
- unsigned long timestamp;
- int screen;
-+ int xinerama;
-+ WId launched_by;
- };
-
- QString KStartupInfoData::to_text() const
-@@ -1151,6 +1153,10 @@ QString KStartupInfoData::to_text() cons
- ret += QString::fromLatin1( " TIMESTAMP=%1" ).arg( d->timestamp );
- if( d->screen != -1 )
- ret += QString::fromLatin1( " SCREEN=%1" ).arg( d->screen );
-+ if( d->xinerama != -1 )
-+ ret += QString::fromLatin1( " XINERAMA=%1" ).arg( d->xinerama );
-+ if( d->launched_by != 0 )
-+ ret += QString::fromLatin1( " LAUNCHED_BY=%1" ).arg( d->launched_by );
- return ret;
- }
-
-@@ -1169,6 +1175,8 @@ KStartupInfoData::KStartupInfoData( cons
- const QString silent_str = QString::fromLatin1( "SILENT=" );
- const QString timestamp_str = QString::fromLatin1( "TIMESTAMP=" );
- const QString screen_str = QString::fromLatin1( "SCREEN=" );
-+ const QString xinerama_str = QString::fromLatin1( "XINERAMA=" );
-+ const QString launched_by_str = QString::fromLatin1( "LAUNCHED_BY=" );
- for( QStringList::Iterator it = items.begin();
- it != items.end();
- ++it )
-@@ -1199,6 +1207,10 @@ KStartupInfoData::KStartupInfoData( cons
- d->timestamp = get_unum( *it );
- else if( ( *it ).startsWith( screen_str ))
- d->screen = get_num( *it );
-+ else if( ( *it ).startsWith( xinerama_str ))
-+ d->xinerama = get_num( *it );
-+ else if( ( *it ).startsWith( launched_by_str ))
-+ d->launched_by = get_num( *it );
- }
- }
-
-@@ -1242,6 +1254,10 @@ void KStartupInfoData::update( const KSt
- d->timestamp = data_P.timestamp();
- if( data_P.screen() != -1 )
- d->screen = data_P.screen();
-+ if( data_P.xinerama() != -1 && xinerama() != -1 ) // don't overwrite
-+ d->xinerama = data_P.xinerama();
-+ if( data_P.launchedBy() != 0 && launchedBy() != 0 ) // don't overwrite
-+ d->launched_by = data_P.launchedBy();
- }
-
- KStartupInfoData::KStartupInfoData()
-@@ -1412,6 +1428,26 @@ int KStartupInfoData::screen() const
- return d->screen;
- }
-
-+void KStartupInfoData::setXinerama( int xinerama )
-+ {
-+ d->xinerama = xinerama;
-+ }
-+
-+int KStartupInfoData::xinerama() const
-+ {
-+ return d->xinerama;
-+ }
-+
-+void KStartupInfoData::setLaunchedBy( WId window )
-+ {
-+ d->launched_by = window;
-+ }
-+
-+WId KStartupInfoData::launchedBy() const
-+ {
-+ return d->launched_by;
-+ }
-+
- static
- long get_num( const QString& item_P )
- {
-Index: kdecore/netwm_def.h
-===================================================================
---- kdecore/netwm_def.h.orig
-+++ kdecore/netwm_def.h
-@@ -610,6 +610,7 @@ public:
- WM2WindowRole = 1<<11, ///< @since 3.3
- WM2ClientMachine = 1<<12, ///< @since 3.3
- WM2ShowingDesktop = 1<<13, ///< @since 3.5
-+ WM2FullPlacement = 1<<14,
- WM2DesktopLayout = 1<<15 ///< @since 3.5.8
- };
-
-Index: kdecore/netwm.cpp
-===================================================================
---- kdecore/netwm.cpp.orig
-+++ kdecore/netwm.cpp
-@@ -145,6 +145,9 @@ static Atom net_wm_state_stays_on_top =
- // used to determine whether application window is managed or not
- static Atom xa_wm_state = 0;
-
-+// ability flags
-+static Atom net_wm_full_placement = 0;
-+
- static Bool netwm_atoms_created = False;
- const unsigned long netwm_sendevent_mask = (SubstructureRedirectMask|
- SubstructureNotifyMask);
-@@ -236,7 +239,7 @@ static int wcmp(const void *a, const voi
- }
-
-
--static const int netAtomCount = 84;
-+static const int netAtomCount = 85;
- static void create_atoms(Display *d) {
- static const char * const names[netAtomCount] =
- {
-@@ -330,7 +333,9 @@ static void create_atoms(Display *d) {
- "_KDE_NET_WM_TEMPORARY_RULES",
-
- "WM_STATE",
-- "WM_PROTOCOLS"
-+ "WM_PROTOCOLS",
-+
-+ "_NET_WM_FULL_PLACEMENT"
- };
-
- Atom atoms[netAtomCount], *atomsp[netAtomCount] =
-@@ -425,7 +430,9 @@ static void create_atoms(Display *d) {
- &kde_net_wm_temporary_rules,
-
- &xa_wm_state,
-- &wm_protocols
-+ &wm_protocols,
-+
-+ &net_wm_full_placement
- };
-
- assert( !netwm_atoms_created );
-@@ -1355,6 +1362,8 @@ void NETRootInfo::setSupported() {
-
- if (p->properties[ PROTOCOLS2 ] & WM2KDETemporaryRules)
- atoms[pnum++] = kde_net_wm_temporary_rules;
-+ if (p->properties[ PROTOCOLS2 ] & WM2FullPlacement)
-+ atoms[pnum++] = net_wm_full_placement;
-
- XChangeProperty(p->display, p->root, net_supported, XA_ATOM, 32,
- PropModeReplace, (unsigned char *) atoms, pnum);
-@@ -1587,6 +1596,8 @@ void NETRootInfo::updateSupportedPropert
-
- else if( atom == kde_net_wm_temporary_rules )
- p->properties[ PROTOCOLS2 ] |= WM2KDETemporaryRules;
-+ else if( atom == net_wm_full_placement )
-+ p->properties[ PROTOCOLS2 ] |= WM2FullPlacement;
- }
-
- extern Time qt_x_user_time;
-Index: kdecore/kstartupinfo.h
-===================================================================
---- kdecore/kstartupinfo.h.orig
-+++ kdecore/kstartupinfo.h
-@@ -635,6 +635,30 @@ class KDECORE_EXPORT KStartupInfoData
- * This is usually not necessary to set, as it's set by default to qt_xscreen().
- */
- void setScreen( int screen );
-+
-+ /**
-+ * The Xinerama screen for the startup notification, -1 if unknown.
-+ */
-+ int xinerama() const;
-+
-+ /**
-+ * Sets the Xinerama screen for the startup notification ( i.e. the screeen on which
-+ * the starting application should appear ).
-+ * @param xinerama the Xinerama screen for the startup notification
-+ */
-+ void setXinerama( int xinerama );
-+
-+ /**
-+ * The toplevel window of the application that caused this startup notification,
-+ * 0 if unknown.
-+ */
-+ WId launchedBy() const;
-+
-+ /**
-+ * Sets the toplevel window of the application that caused this startup notification.
-+ * @param window window ID of the toplevel window that is responsible for this startup
-+ */
-+ void setLaunchedBy( WId window );
-
- /**
- * Updates the notification data from the given data. Some data, such as the desktop