aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs
Commit message (Collapse)AuthorAgeFilesLines
* nxagent/Imakefile: remove ../../exports/libUlrich Sibiller2019-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* release 3.5.99.223.5.99.22Mike Gabriel2019-08-271-1/+1
|
* Events.c: introduce separate debug level for autograb debugging onlyUlrich Sibiller2019-08-271-7/+16
| | | | We should do something similar for all subsystems over time...
* Make AutoGrab work in more situationsUlrich Sibiller2019-08-272-2/+11
| | | | | Especially switchin to/from fullscreen with active AutoGrab was problematic. Works much smoother now.
* Dialog.c: Add NXTransDialog() call for autograb toggling.Mike Gabriel2019-08-273-0/+82
|
* Events.c: Autograb only for windowed modesUlrich Sibiller2019-08-271-2/+1
| | | | This also make re-autograbbing after switch back from AllScreens work.
* Events.c: do not ungrab keyboard on LeaveNotify when in autograb modeUlrich Sibiller2019-08-271-4/+7
|
* Events.c: improve debugging output for FocusIn/OutUlrich Sibiller2019-08-271-4/+56
|
* Args.c: make autograb available via options file, too.Ulrich Sibiller2019-08-272-0/+17
|
* Args.c: Add command line option -autograb.Ulrich Sibiller2019-08-272-0/+12
|
* nxagent: Make autograb an nxagentOption.Ulrich Sibiller2019-08-273-7/+14
|
* nxagent: Add autograb mode.Ulrich Sibiller2019-08-274-5/+93
| | | | | | | You can now toggle between autograb mode by pressing CTRL-ALT-G (default, can be adjusted in keystrokes.cfg). Fixes ArcticaProject/nx-libs#384.
* Screen.c: initialize RandR only on startup...Ulrich Sibiller2019-08-271-6/+6
| | | | | | | | ... 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
* NXdispatch.c: move nxagentWMtimeout into the functionUlrich Sibiller2019-08-271-8/+3
| | | | it is only used there, no need for a global variable
* NXdispatch.c: drop currentDispatch variableUlrich Sibiller2019-08-271-13/+8
| | | | was only used once
* nxagent: move nxagentWMPassed to Splash.cUlrich Sibiller2019-08-274-13/+8
| | | | It is only relevant there.
* nxagent: add NXAGENT_ONSTART where missingUlrich Sibiller2019-08-272-0/+8
| | | | | There were some locations referenceing a variable that was only availabe with NXAGENT_ONSTART set
* nxagent: drop NXAGENT_SPLASHUlrich Sibiller2019-08-272-3/+0
| | | | There was only one (commented) section using it.
* nxagent: rename nxagentWMStart to nxagentReadyAtomUlrich Sibiller2019-08-272-5/+5
| | | | This better reflects its purpose: Tell listeners we are ready.
* Splash.c: move some variables to Splash.cUlrich Sibiller2019-08-272-2/+3
| | | | They belong there...
* Splash.c: make Splash logo work with white background (-wr) mode, tooUlrich Sibiller2019-08-271-22/+31
|
* Splash.c: remove global variables for colorsUlrich Sibiller2019-08-273-30/+8
| | | | Make them defines. Also determine the screen depth dynamically.
* nxagent: drop nxagentRootTileWindowUlrich Sibiller2019-08-274-150/+4
| | | | | | | | 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.
* Splash.c: nxagentRemoveSplashWindow: drop unused parameterUlrich Sibiller2019-08-275-7/+6
|
* Splash.c: code cleanupUlrich Sibiller2019-08-271-22/+22
|
* Splash.c: drop return code of nxagentShowSplashWindowUlrich Sibiller2019-08-272-5/+3
| | | | nobody was checking it.
* Splash.c: do not wait in nxagent modeUlrich Sibiller2019-08-273-17/+20
| | | | | | | 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.
* dix: add whiteroot flagUlrich Sibiller2019-08-273-3/+9
| | | | | | | | | | | | | | | | | 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
* NXwindow.c: simplify window background codeUlrich Sibiller2019-08-271-8/+4
|
* nxagent: fix main window being garbled without inner windowsUlrich Sibiller2019-08-271-2/+0
| | | | Fixes ArcticaProject/nx-libs#733
* nxagent: simplify nxagentWaitEvents()Ulrich Sibiller2019-08-277-35/+28
| | | | | no more need to pass down a struct, we now only pass the milliseconds and let the function do the rest.
* Keystroke.c: fix wrong return codeUlrich Sibiller2019-08-271-1/+4
| | | | | | 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.
* Events.c: add more comments and TEST outputUlrich Sibiller2019-08-271-3/+25
|
* Events.c: refactor nxagentHandleKeypressUlrich Sibiller2019-08-271-6/+4
|
* Clipboard.c: use SAFE_freeUlrich Sibiller2019-08-061-2/+1
|
* Atoms.c: use SAFE_XFree and SAFE_free macrosUlrich Sibiller2019-08-061-10/+6
|
* Keystroke.c: use SAFE_freeUlrich Sibiller2019-08-061-2/+2
|
* GCOps.c: use SAFE_freeUlrich Sibiller2019-08-061-3/+4
|
* GC.c: use SAFE_freeUlrich Sibiller2019-08-061-9/+9
|
* Drawable.c: use SAFE_freeUlrich Sibiller2019-08-061-5/+6
|
* Colormap.c: use SAFE_freeUlrich Sibiller2019-08-061-10/+11
|
* Args.c: use SAFE_freeUlrich Sibiller2019-08-061-8/+6
|
* Error.c: use SAFE_freeUlrich Sibiller2019-08-061-6/+7
|
* Image.c: use SAFE_freeUlrich Sibiller2019-08-061-15/+12
|
* Render.c: use SAFE_freeUlrich Sibiller2019-08-061-2/+3
|
* Pixmap.c: use SAFE_freeUlrich Sibiller2019-08-061-6/+7
|
* Reconnect.c: use SAFE_freeUlrich Sibiller2019-08-061-7/+5
|
* Keyboard.c: use SAFE_XFree and SAFE_freeUlrich Sibiller2019-08-061-36/+34
|
* Cursor.c: use SAFE_XFreeUlrich Sibiller2019-08-061-4/+3
|
* Window.c: use SAFE_free and SAFE_XFreeUlrich Sibiller2019-08-061-24/+16
|