Dear $LIST,
I seem to be stuck in a rather deep rabbit hole, and in dire need of an adult, err, developer with C++ skills.
Originally, I was merely trying to track down a race condition regarding the sessions file in MATE-Minidesktop-Mode. In doing so, I noticed some other things going wrong during the X2GoClient startup in MMD.
So what I'm looking at right now is the source of X2GoClient, where it says:
if (param == "--thinclient")
{
thinMode=true;
startMaximized=true;
return true;
}
and
if ( param=="--maximize" )
{
startMaximized=true;
return true;
}
So startMaximized is already triggered by "--maximize" (which is set in the MMD X2GoClient startup script "/etc/x2go/x2gothinclient-minidesktop_start"). Great. One thing less to worry about.
The only occurrences of thinMode in src/onmainwindow.cpp are:
if (thinMode)
{
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(slotSyncX()));
timer->start(200);
}
and
if (thinMode)
{
x2goDebug<<"Thin Mode is active.";
showMaximized();
activateWindow();
raise();
}
The second one is easy, it's some magic to make the Window appear in fullscreen and in the foreground, and this is probably how it needs to be done so it works even when there's no window manager present (as in TCE-NFS).
But what is that timer thing in the first if clause about???
The reason why I need to know this is so I can determine if the "--thinclient" parameter should be set when calling X2GoClient in MATE-MiniDesktop mode, should be unset, or is irrelevant.
(Note: TCE-NFS is not affected as it uses a different start script.)
Kind Regards, Stefan Baur
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
Hi Stefan,
top posting, sorry. The --thinclient option is not required in minidesktop mode. The thinclient has a WM...
Mike
On Friday, 18 January 2019, Stefan Baur wrote:
Dear $LIST,
I seem to be stuck in a rather deep rabbit hole, and in dire need of an adult, err, developer with C++ skills.
Originally, I was merely trying to track down a race condition regarding the sessions file in MATE-Minidesktop-Mode. In doing so, I noticed some other things going wrong during the X2GoClient startup in MMD.
So what I'm looking at right now is the source of X2GoClient, where it says:
if (param == "--thinclient") { thinMode=true; startMaximized=true; return true; }
and
if ( param=="--maximize" ) { startMaximized=true; return true; }
So startMaximized is already triggered by "--maximize" (which is set in the MMD X2GoClient startup script "/etc/x2go/x2gothinclient-minidesktop_start"). Great. One thing less to worry about.
The only occurrences of thinMode in src/onmainwindow.cpp are:
if (thinMode) { QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(slotSyncX())); timer->start(200); }
and
if (thinMode) { x2goDebug<<"Thin Mode is active."; showMaximized(); activateWindow(); raise(); }
The second one is easy, it's some magic to make the Window appear in fullscreen and in the foreground, and this is probably how it needs to be done so it works even when there's no window manager present (as in TCE-NFS).
But what is that timer thing in the first if clause about???
The reason why I need to know this is so I can determine if the "--thinclient" parameter should be set when calling X2GoClient in MATE-MiniDesktop mode, should be unset, or is irrelevant.
(Note: TCE-NFS is not affected as it uses a different start script.)
Kind Regards, Stefan Baur
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
-- Sent from my Sailfish device
Am 18.01.19 um 20:07 schrieb Mike Gabriel:
The --thinclient option is not required in minidesktop mode. The thinclient has a WM...
While that is a statement I can work with, I would still be interested in learning what
if (thinMode) { QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(slotSyncX())); timer->start(200); }
is supposed to be good for. ;)
Kind Regards, Stefan Baur
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
Hi Stefan,
On Fr 18 Jan 2019 20:02:48 CET, Stefan Baur wrote:
But what is that timer thing in the first if clause about???
The reason why I need to know this is so I can determine if the "--thinclient" parameter should be set when calling X2GoClient in MATE-MiniDesktop mode, should be unset, or is irrelevant.
(Note: TCE-NFS is not affected as it uses a different start script.)
The timer thing calls slotSyncX in regular intervals. The slotSyncX
method checks if the proxy is running, if so, it hides the X2Go Client
GUI.
Once the proxy has gone, it raises the X2Go Client GUI again and gives
it focus. Stuff that would normally be done by the window manager.
Mike
--
DAS-NETZWERKTEAM mike gabriel, herweg 7, 24357 fleckeby mobile: +49 (1520) 1976 148 landline: +49 (4354) 8390 139
GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31 mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
Am 21.01.19 um 12:58 schrieb Mike Gabriel:
The timer thing calls slotSyncX in regular intervals. The slotSyncX method checks if the proxy is running, if so, it hides the X2Go Client GUI.
Once the proxy has gone, it raises the X2Go Client GUI again and gives it focus. Stuff that would normally be done by the window manager.
Thanks for the explanation. Yeah, that makes sense. So we could probably even drop --thinclient from the TCE-Live call of X2GoClient, since we run a small window manager there.
Kind Regards, Stefan Baur
-- BAUR-ITCS UG (haftungsbeschränkt) Geschäftsführer: Stefan Baur Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364 Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243
Hi,
On Mo 21 Jan 2019 13:04:13 CET, Stefan Baur wrote:
Am 21.01.19 um 12:58 schrieb Mike Gabriel:
The timer thing calls slotSyncX in regular intervals. The slotSyncX method checks if the proxy is running, if so, it hides the X2Go Client GUI.
Once the proxy has gone, it raises the X2Go Client GUI again and gives it focus. Stuff that would normally be done by the window manager.
Thanks for the explanation. Yeah, that makes sense. So we could probably even drop --thinclient from the TCE-Live call of X2GoClient, since we run a small window manager there.
Kind Regards, Stefan Baur
yep, worth a try.
DAS-NETZWERKTEAM mike gabriel, herweg 7, 24357 fleckeby mobile: +49 (1520) 1976 148 landline: +49 (4354) 8390 139
GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31 mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de