| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nxagent links system libraries that link against libX11. Unfortunately,
nxagent (and libXcompshad) require a modified libX11 version,
nicknamed libNX_X11, for proper functioning. Fortunately, this one can
act as a drop-in replacement for the system libX11. So we’ll hack our
way out: add a DT_NEEDED entry for libX11 by linking against the
system library when building nxagent and link the other system
libraries later and set DT_RUNPATH to a special directory containing
symlinks from libNX_X11 to libX11.
This tricks the loader into pulling in the "fake" libX11 version
without checking its SONAME and thus satisfying the DT_NEEDED entry
early on - specifically also for the system libraries.
Ex.:
readelf -a /usr/bin/nxagent | grep NEEDED
0x0000000000000001 (NEEDED) Shared library: [libX11.so.6]
...
0x0000000000000001 (NEEDED) Shared library: [libNX_X11.so.6]
...
If, however, you run the build a second time, it will find the newly
created libX11 links in ../../exports/lib (used as an additional
library search path) instead of the system libX11. The results in a
binary looking like this:
0x0000000000000001 (NEEDED) Shared library: [libNX_X11.so.6]
...
With such a setup, the whole magic falls apart and system libraries
will suddenly pull in the actual system libX11 file.
We initially believed a compiler call such as:
${CC} [--unrelated-options ...] [-Lunrelated_library_path ...] -lX11 [more
options like -l and -L] -L../../exports/lib -lother_libraries
to do "the right thing" and link against the system libX11 (or, at
worst, a libX11 found in the library directory search list preceding the
link call) and use ../../exports/lib only for later linking operations,
since the order of options matters.
However, this turned out to be blatantly wrong: while the order of -L
arguments does matter for building the search path, the whole search
path including elements from *ALL* -L arguments (and the system paths)
will always be used when linking libraries.
Hence, (counter-intuitively to us) both these calls will be equivalent:
${CC} [--unrelated-options ...] -la -Loverride_liba -lb
[-Lunrelated_library_path ...] -lc
${CC} [--unrelated-options ...] -Loverride_liba [-Lunrelated_library_path
...] -la -lb -lc
By removing LDPRELIBS from NXAGENTSYSLIBS, ../../exports/lib is no
longer used during building/linking and the binaries are built
reproducibly. We never intended to use this directory at link time
anyway.
|
| |
|
|
|
|
| |
We should do something similar for all subsystems over time...
|
|
|
|
|
| |
Especially switchin to/from fullscreen with active AutoGrab was
problematic. Works much smoother now.
|
| |
|
|
|
|
| |
This also make re-autograbbing after switch back from AllScreens work.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
You can now toggle between autograb mode by pressing CTRL-ALT-G
(default, can be adjusted in keystrokes.cfg).
Fixes ArcticaProject/nx-libs#384.
|
|
|
|
|
|
|
|
| |
... not on reconnect. After the reconnect RRCloseScreen was called
twice which caused a double free. This was introduced with
3b06ad51d91ff2b9442f159cddf34ed03bc2dd35
Fixes ArcticaProject/nx-libs#833
|
|
|
|
| |
it is only used there, no need for a global variable
|
|
|
|
| |
was only used once
|
|
|
|
| |
It is only relevant there.
|
|
|
|
|
| |
There were some locations referenceing a variable that was only
availabe with NXAGENT_ONSTART set
|
|
|
|
| |
There was only one (commented) section using it.
|
|
|
|
| |
This better reflects its purpose: Tell listeners we are ready.
|
|
|
|
| |
They belong there...
|
| |
|
|
|
|
| |
Make them defines. Also determine the screen depth dynamically.
|
|
|
|
|
|
|
|
| |
We either use a solid black or a white background and no backround
pixmap. So nxagentRootTileWindow is always empty and we can drop all
stuff around it.
remove nxagentSplashCount, too, since it is no longer checked anywhere.
|
| |
|
| |
|
|
|
|
| |
nobody was checking it.
|
|
|
|
|
|
|
| |
The splash window is only shown in x2go mode. In nxagent mode the
splash window was also shown, but empty (and thus invisible). And the
code waited for the splash window to disappear. Fix this by skipping
_all_ the splash stuff in nxagent mode.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before there was no way of getting a white background despite having
the approriate code.
Backport of this commit:
commit cb0a565d2b2cf8823abbd77b4426cc2237731dc1
Author: Daniel Stone <daniel@fooishbar.org>
Date: Fri Aug 18 17:04:48 2006 +0300
dix: add whiteroot flag
Add a -wr option to use a white root window, and use a BackPixel rather
than BackPixmap for both white and black root windows.
Fixes ArcticaProject/nx-libs#832
|
| |
|
|
|
|
| |
Fixes ArcticaProject/nx-libs#733
|
|
|
|
|
| |
no more need to pass down a struct, we now only pass the milliseconds
and let the function do the rest.
|
|
|
|
|
|
| |
The effect of this was that special keystrokes where detected and
passed to the nxagent. E.g. pressing ctrl-alt-f for Fullscreen also
produced an "f" in the current input window inside the nxagent.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|