[X2Go-Commits] [x2goclient] 01/01: Fixing multimonitor mode on Windows. Run VcXsrv with on selected screen without decoration.
git-admin at x2go.org
git-admin at x2go.org
Tue Jul 7 09:54:47 CEST 2015
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 at 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 at 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
More information about the x2go-commits
mailing list