This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goclient. commit 58c2db08167d490797f3160d12274761f23bfaa8 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Tue Jul 7 09:54:34 2015 +0200 Fixing multimonitor mode on Windows. Run VcXsrv with on selected screen without decoration. --- debian/changelog | 4 ++++ src/onmainwindow.cpp | 65 +++++++++++++++++++++++++++++--------------------- src/onmainwindow.h | 3 ++- 3 files changed, 44 insertions(+), 28 deletions(-) diff --git a/debian/changelog b/debian/changelog index 8e0c97c..2758813 100644 --- a/debian/changelog +++ b/debian/changelog @@ -88,6 +88,10 @@ x2goclient (4.0.4.1-0x2go1) UNRELEASED; urgency=low - x2goclient.pro: simplify lrelease path preparing for different OS and cross compiling. Fixes: #901. + [ Oleksandr Shneyder ] + - Fixing multimonitor mode on Windows. Run VcXsrv with on selected screen + without decoration. + -- X2Go Release Manager <git-admin@x2go.org> Tue, 26 May 2015 21:42:09 +0200 x2goclient (4.0.4.0-0x2go1) unstable; urgency=low diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp index 0b2a924..5236748 100644 --- a/src/onmainwindow.cpp +++ b/src/onmainwindow.cpp @@ -3825,6 +3825,32 @@ void ONMainWindow::startNewSession() { runRemoteCommand=false; } +#ifdef Q_OS_WIN + x2goDebug<<"Fullscreen: "<<fullscreen; + maximizeProxyWin=false; + proxyWinWidth=width; + proxyWinHeight=height; + xorgMode=WIN; + if (fullscreen) + xorgMode=FS; + if (rootless) + xorgMode=SAPP; + xorgWidth=QString::number(width); + xorgHeight=QString::number(height); + uint displays=QApplication::desktop()->numScreens(); + if (st->setting()->value ( sid+"/multidisp", ( QVariant ) false ).toBool()) + { + xorgMode=MULTIDISPLAY; + uint disp=st->setting()->value ( sid+"/display",( QVariant ) 1 ).toUInt(); + if (disp>displays) + { + disp=1; + } + localDisplayNumber=disp; + } + if (! startXorgOnStart) + startXOrg(); +#endif delete st; } @@ -3840,25 +3866,6 @@ void ONMainWindow::startNewSession() QString geometry; -#ifdef Q_OS_WIN - - x2goDebug<<"Fullscreen: "<<fullscreen; - - maximizeProxyWin=false; - proxyWinWidth=width; - proxyWinHeight=height; -//#ifdef CFGCLIENT - xorgMode=WIN; - if (fullscreen) - xorgMode=FS; - if (rootless) - xorgMode=SAPP; - xorgWidth=QString::number(width); - xorgHeight=QString::number(height); - if (! startXorgOnStart) - startXOrg(); -//#endif -#endif if ( fullscreen ) { geometry="fullscreen"; @@ -5394,7 +5401,10 @@ void ONMainWindow::slotTunnelOk(int) nxproxy->start ( proxyCmd ); proxyRunning=true; -//always search for proxyWin +//allways search for proxy window on linux. On Windows only in window mode +#ifdef Q_OS_WIN + if(xorgMode==WIN) +#endif proxyWinTimer->start ( 300 ); if ( embedMode ) { @@ -9519,6 +9529,9 @@ void ONMainWindow::startXOrg () x2goDebug<<cmdLine; break; + case MULTIDISPLAY: + cmdLine=xorgMDOptions+QString::number(localDisplayNumber); + break; } } QStringList options=cmdLine.split(" ",QString::SkipEmptyParts); @@ -9919,7 +9932,7 @@ void ONMainWindow::xorgSettings() xorgWinOptions=(st.setting()->value("optionswin","-screen 0 %wx%h -notrayicon -clipboard").toString()); xorgFSOptions=(st.setting()->value("optionsfs","-fullscreen -notrayicon -clipboard").toString()); xorgSAppOptions=(st.setting()->value("optionssingle","-multiwindow -notrayicon -clipboard").toString()); - + xorgMDOptions=(st.setting()->value("optionsmd","-nodecoration -notrayicon -clipboard -screen 0 @").toString()); if (QFile::exists(appDir+"\\vcxsrv")) @@ -9941,6 +9954,7 @@ void ONMainWindow::xorgSettings() xorgWinOptions="-multiwindow -notrayicon -clipboard"+primClip; xorgFSOptions="-fullscreen -notrayicon -clipboard"+primClip; xorgSAppOptions="-multiwindow -notrayicon -clipboard"+primClip; + xorgMDOptions="-nodecoration -notrayicon -clipboard"+primClip+" -screen 0 @"; } } @@ -10227,11 +10241,6 @@ void ONMainWindow::slotSetProxyWinFullscreen() sshConnection->executeCommand("DISPLAY=:"+resumingSession.display+" xrandr --output default --mode "+geoStr); #endif -#ifdef Q_OS_WIN - wapiSetFSWindow ( ( HWND ) proxyWinId, - dispGeometry ); - -#endif } @@ -10392,9 +10401,10 @@ void ONMainWindow::slotFindProxyWin() st=new X2goSettings(config.iniFile,QSettings::IniFormat); else st= new X2goSettings( "sessions" ); - uint displays=QApplication::desktop()->numScreens(); xinerama=st->setting()->value ( sid+"/xinerama", ( QVariant ) defaultXinerama ).toBool(); +#ifndef Q_OS_WIN + uint displays=QApplication::desktop()->numScreens(); if (st->setting()->value ( sid+"/multidisp", ( QVariant ) false ).toBool()) { @@ -10408,6 +10418,7 @@ void ONMainWindow::slotFindProxyWin() resizeProxyWinOnDisplay(disp); return; } +#endif } if (xinerama) { diff --git a/src/onmainwindow.h b/src/onmainwindow.h index 18c0094..224a138 100644 --- a/src/onmainwindow.h +++ b/src/onmainwindow.h @@ -886,7 +886,8 @@ private: QString xorgWinOptions; QString xorgFSOptions; QString xorgSAppOptions; - enum {WIN,FS,SAPP} xorgMode; + QString xorgMDOptions; + enum {WIN,FS,SAPP,MULTIDISPLAY} xorgMode; QString xorgWidth; QString xorgHeight; int waitingForX; -- Alioth's /srv/git/code.x2go.org/x2goclient.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goclient.git