Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37747648
en ru br
ALT Linux repos
5.0: 1.0.13-alt0.M50.1
4.1: 1.0.13-alt0.M41.1
4.0: 1.0.7-alt2.M40.1

Group :: Networking/Remote access
RPM: italc

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: italc-1.0.13-ubuntu.patch
Download


 ica/src/isd_server.cpp        |    5 ++++-
 ica/src/ivs.cpp               |   13 +------------
 ica/src/local_system_ica.cpp  |    2 +-
 ima/src/classroom_manager.cpp |   21 ++++++++++++++++++++-
 ima/src/client.cpp            |   13 +++++++++++--
 lib/src/lock_widget.cpp       |    1 +
 6 files changed, 38 insertions(+), 17 deletions(-)
diff --git a/ica/src/isd_server.cpp b/ica/src/isd_server.cpp
index 280c91a..7c09e70 100644
--- a/ica/src/isd_server.cpp
+++ b/ica/src/isd_server.cpp
@@ -285,7 +285,10 @@ int isdServer::processClient( socketDispatcher _sd, void * _user )
 			}
 			else
 			{
-				action = port;
+				if ( port.split(":").size() == 3 )
+					action = port.split(":")[1]+":"+port.split(":")[2];
+				else
+					action = port;
 			}
 			break;
 		}
diff --git a/ica/src/ivs.cpp b/ica/src/ivs.cpp
index 086ca61..34e6f1e 100644
--- a/ica/src/ivs.cpp
+++ b/ica/src/ivs.cpp
@@ -180,18 +180,7 @@ void IVS::run( void )
 			p.setProcessChannelMode( QProcess::ForwardedChannels );
 			p.start( QCoreApplication::applicationFilePath() +
 					" -rx11vs " + cmdline.join( " " ) );
-			m_restart = FALSE;
-			while( p.state() != QProcess::NotRunning )
-			{
-				sleep( 1 );
-				if( m_restart )
-				{
-					p.terminate();
-					sleep( 1 );
-					p.kill();
-					break;
-				}
-			}
+			p.waitForFinished(-1);
 		}
 		return;
 	}
diff --git a/ica/src/local_system_ica.cpp b/ica/src/local_system_ica.cpp
index 511fa6b..08cccf9 100644
--- a/ica/src/local_system_ica.cpp
+++ b/ica/src/local_system_ica.cpp
@@ -395,7 +395,7 @@ QString currentUser( void )
 		}
 
 		return( QString( "%1 (%2)" ).
-				arg( QString::fromUtf8( pw_entry->pw_gecos ) ).
+				arg( QString::fromUtf8( pw_entry->pw_gecos ).replace( ",,,", "" ) ).
 				arg( QString::fromUtf8( pw_entry->pw_name ) ) );
 	}
 #endif
diff --git a/ima/src/classroom_manager.cpp b/ima/src/classroom_manager.cpp
index 154947a..5dc4b99 100644
--- a/ima/src/classroom_manager.cpp
+++ b/ima/src/classroom_manager.cpp
@@ -76,6 +76,7 @@ inline T roundCorrect( T _val )
 
 
 const int widths[] = { 128, 192, 256, 320, 384, 448, 512, 0 };
+int items_at_zero_pos = 0;
 
 
 
@@ -724,7 +725,15 @@ void classroomManager::loadTree( classRoom * _parent_item,
 						_parent_item,
 						mainWindow(),
 						e.attribute( "id" ).toInt() );
-				c->hide();
+				if( _parent_element.attribute("forcevisible") == "yes" )
+				{
+					c->show();
+				}
+				else
+				{
+					c->hide();
+				}
+				++items_at_zero_pos;
 			}
 			else
 			{
@@ -739,6 +748,10 @@ void classroomManager::loadTree( classRoom * _parent_item,
 					e.attribute( "y" ).toInt() );
 				c->m_rasterX = e.attribute( "x" ).toInt();
 				c->m_rasterY = e.attribute( "y" ).toInt();
+				if( c->m_rasterX != 0 || c->m_rasterY != 0 )
+				{
+					--items_at_zero_pos;
+				}
 				c->setFixedSize( e.attribute( "w" ).toInt(),
 						e.attribute( "h" ).toInt() );
 
@@ -988,6 +1001,12 @@ void classroomManager::updateClients( void )
 		cl->update();
 	}
 
+	if ( items_at_zero_pos > 1 )
+	{
+		arrangeWindows();
+		items_at_zero_pos = 0;
+	}
+
 	QTimer::singleShot( m_clientUpdateInterval * 1000, this,
 						SLOT( updateClients() ) );
 }
diff --git a/ima/src/client.cpp b/ima/src/client.cpp
index 1c53c66..c34aaf9 100644
--- a/ima/src/client.cpp
+++ b/ima/src/client.cpp
@@ -52,12 +52,13 @@ const int TITLE_HEIGHT = 23;
 const QPoint CONTENT_OFFSET( DECO_WIDTH, DECO_WIDTH + TITLE_HEIGHT ); 
 const QSize CONTENT_SIZE_SUB( 2*DECO_WIDTH, 2*DECO_WIDTH + TITLE_HEIGHT ); 
 
+extern QString __isd_host;
 
 // resolve static symbols...
 QHash<int, client *> client::s_clientIDs;
 
 bool client::s_reloadSnapshotList = FALSE;
-
+QString demohost;
 
 class closeButton : public QWidget
 {
@@ -1240,8 +1241,16 @@ void updateThread::update( void )
 						i.second.toString() );
 				break;
 			case Cmd_StartDemo:
+				if ( __isd_host != "127.0.0.1" )
+				{
+					demohost=__isd_host + ":" + i.second.toList()[0].toString();
+				}
+				else
+				{
+					demohost=i.second.toList()[0].toString();
+				}
 				m_client->m_connection->startDemo(
-					i.second.toList()[0].toString(),
+					demohost,
 					i.second.toList()[1].toInt() );
 				break;
 			case Cmd_StopDemo:
diff --git a/lib/src/lock_widget.cpp b/lib/src/lock_widget.cpp
index 2fdee15..ad40b1b 100644
--- a/lib/src/lock_widget.cpp
+++ b/lib/src/lock_widget.cpp
@@ -71,6 +71,7 @@ lockWidget::lockWidget( types _type ) :
 	m_sysKeyTrapper.disableAllKeys( TRUE );
 	setWindowTitle( tr( "screen lock" ) );
 	setWindowIcon( QIcon( ":/resources/icon32.png" ) );
+	setWindowFlags( Qt::Popup );
 	setCursor( Qt::BlankCursor );
 	showFullScreen();
 	move( 0, 0 );
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin