aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw
Commit message (Collapse)AuthorAgeFilesLines
* Set NX_AGENT_VERSION property for root windowUlrich Sibiller2017-08-103-0/+29
| | | | Fixes ArcticaProject/nx-libs#500
* Render.c: Improve situation for multiple trapezoid requests.Oleksandr Shneyder2017-07-311-14/+1
| | | | | | | | | | | | | | | | | | | This change improves the situation in nxagent for the following issue: ``` "XRenderCompositeTrapezoids builds RenderTrapezoids requests to composite the specified list of trapezoids to dst. XRenderCompositeTrapezoids will split the list of trapezoids to build requests no larger than the maximum request size supported by the server. This can create rendering artifacts as the precompositing done by RenderTrapezoids when a maskFormat is specified cannot span multiple requests." ``` For more information see: https://lists.freedesktop.org/archives/xorg/2008-June/036124.html Fixes ArcticaProject/nx-libs#336.
* treat options parameter as option string if it starts with nx/nxUlrich Sibiller2017-07-251-1/+16
| | | | | | | | | | This way one can easily pass options to nxagent run as Xnest replacement without having to create a temporary options file. Please note that it is not of much use for normal sessions. Options passed like this cannot be changed after startup so a reconnect may not work as expected. Fixes ArcticaProject/nx-libs#476
* rename nxagentOptionFile to nxagentOptionsFilenameUlrich Sibiller2017-07-242-15/+15
|
* pass filename as parameter to nxagentProcessOptionsFile()Ulrich Sibiller2017-07-233-16/+18
| | | | Do not use global variables where it is not necessary.
* Improve keystroke file handlingUlrich Sibiller2017-07-161-52/+35
| | | | Fixes ArcticaProject/nx-libs#486
* Report Xlib-side window IDs to session.log in machine readable form. This ↵Mike Gabriel2017-07-055-8/+55
| | | | feature can be enabled by the cmdline options -reportwids and -reportprivatewids.
* nxagent man page: Fix layout near -nxrealwindowprop option.Mike Gabriel2017-07-041-0/+1
|
* release 3.5.99.83.5.99.8Mike Gabriel2017-06-301-1/+1
|
* hw/nxagent/Window.c: Introduce NX_REAL_WINDOW window property.Mike Gabriel2017-06-304-0/+45
| | | | | | | | | | | | | | | | In nxagent sessions, all X11 clients have a representation of their NX session-side window object on the real X-Server side. The window object gets stored in the new NX_REAL_WINDOW window property immediately after window creation. This mapping is created in nxagentCreateWindow(). On session resumption, the client side window IDs normally change. Thus, during session resumption, all NX_REAL_WINDOW properties require being updated. This happens in nxagentReconnectWindow(). While a session is suspended, the NX_REAL_WINDOW property does not exist. It gets removed during nxagentDisconnectWindow().
* hw/nxagnet/Atoms.c: In DEBUG mode, we need validateString() which is not ↵Mike Gabriel2017-06-301-0/+5
| | | | statically defined in Utils.h. Thus including it for DEBUG builds.
* Args.c: fix sync option parsingUlrich Sibiller2017-06-091-4/+2
| | | | This fixes ArcticaProject/nx-libs#465
* Revert "Switch from using libNX_X11's deprecated XKeycodeToKeysym() function ↵Ulrich Sibiller2017-05-042-26/+8
| | | | | | | | | | | | | | | | | to using XGetKeyboardMapping()." This reverts commit efc0dae0519aa0ef1fabea6a64919475fd916347. Recent test revealed keyboard hangs on high latency connections. These hangs are not happening in 3.5.0 releases if the nx-libs. The commit above is responsible for them so we take that back. Interestingly nxcomp has special treatment for XGetKeyboardMapping() so it should normally speed up things but it results in the opposite for us. Needs further examination. This fixes ArcticaProject/nx-libs#450
* hw/nxagent/Dialog.c: Drop unused dialog for DIALOG_DISABLE_XKB_LOCAL.Mike Gabriel2017-04-212-41/+1
| | | | Fixes ArcticaProject/nx-libs#383.
* Revert "NXpicturestr_PictSolidFill.h: Drop file and revert db8705. Not an ↵Mike Gabriel2017-04-213-5/+78
| | | | | | | | | | | | issue anymore nowadays." This reverts commit 6c8c950258cf0da0cf24c5e80c2216914ac282a4. Fixes ArcticaProject/nx-libs#433. This patch is still a candidate for being re-implemented without extending the _PictSolidFill struct, but for now, we'll have to re-introduce commit db8705 for the sake of having fonts readable after resumption of remote NX sessions.
* man/nxagent.1: Document the nxagent specific usage pattern of the displayfd ↵Mike Gabriel2017-04-201-2/+17
| | | | cmdline option.
* nxagent.1: some more rephrasingUlrich Sibiller2017-04-201-6/+6
|
* nxagent.1: fix: "tolerancechecks" was documented as "reconnectchecks"Ulrich Sibiller2017-04-201-2/+2
|
* nxagent.1: highlight nxagentUlrich Sibiller2017-04-201-17/+17
|
* nxagent.1: use nxagent everywhereUlrich Sibiller2017-04-201-13/+13
| | | | "nx-X11 Agent" looks and sounds ugly.
* nxagent.1: rephrase descriptionUlrich Sibiller2017-04-201-2/+3
|
* nxagent.1: add -options, previously undocumentedUlrich Sibiller2017-04-201-3/+15
|
* nxagent.1: fix typoUlrich Sibiller2017-04-201-1/+1
|
* nxagent.1: remove no longer existing -co option from manpageUlrich Sibiller2017-04-201-4/+0
|
* Clearing comments from $XFree86$ (et al.) header lines.Mike Gabriel2017-04-197-13/+1
|
* release 3.5.99.53.5.99.5Mike Gabriel2017-04-111-1/+1
|
* Regression fix for added libXfont2 API support:Mike Gabriel2017-04-101-5/+0
| | | | | | | | | | - Move FONT_DEFINES and XLIBFONT definition to from Server.tmpl to Imake.tmpl. - Add FONT_DEFINES to ALLDEFINES. - Drop SpecialCObjectRules with FONT_DEFINES from various Imakefiles again, FONT_DEFINES is now set "globally". - Hand over FONT_DEFINES from main Makefile to nx-X11's make BuildEnv to make gccmakedep happy.
* hw/nxagent/Pixmap.c et al.: Propagate usage_hint through ↵Mike Gabriel2017-04-105-17/+24
| | | | nxagentCreatePixmap, as well.
* Save pixmap allocation hints into the PixmapRec.Aaron Plattner2017-04-101-0/+1
| | | | | | | | | | | | Backported from X.org: commit f797c96845a3fab37cda6839ebecf9ac5401fd6e Author: Aaron Plattner <aplattner@nvidia.com> Date: Thu Nov 15 12:12:02 2007 -0800 Save pixmap allocation hints into the PixmapRec. Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* Add CreatePixmap allocation hints.Aaron Plattner2017-04-105-7/+10
| | | | | | | | | | | | | | | | Backported from X.org: commit f2e310132fbe1520c1b5f3da4faa2d2d47835e72 Author: Aaron Plattner <aplattner@nvidia.com> Date: Wed Oct 31 14:15:35 2007 -0700 Add CreatePixmap allocation hints. These hints allow an acceleration architecture to optimize allocation of certain types of pixmaps, such as pixmaps that will serve as backing pixmaps for redirected windows. Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* Xserver: Support building against libXfont2 (v2) API and old libXfont(1) API ↵Mike Gabriel2017-04-104-2/+128
| | | | | | | | | | | | | | | | | | | | | | | | alike. Fixes ArcticaProject/nx-libs#296. Inspired by the following X.org commit. Other than X.org, we will continue support for building nx-libs against libXfont1 for a while. commit 05a793f5b3c40747d5a92a076def7f4fb673c7e7 Author: Keith Packard <keithp@keithp.com> Date: Tue Sep 1 18:50:55 2015 -0700 dix: Switch to the libXfont2 API (v2) This new libXfont API eliminates exposing internal X server symbols to the font library, replacing those with a struct full of the entire API needed to use that library. v2: Use libXfont2 instead of libXfont_2 Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
* hw/nxagent/BitmapUtils.c: Derive from utilbitmap.c in deprecated libXfont1 ↵Mike Gabriel2017-04-104-10/+130
| | | | and ship as copy-of-code with nxagent.
* xserver: remove index from CloseScreen (API/ABI breakage)Dave Airlie2017-04-102-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extracted from X.org bulk commit: commit 1f0e8bd5eb1a5539689cfc4f5a6b86b530907ec5 Author: Dave Airlie <airlied@redhat.com> Date: Tue Jun 5 13:22:18 2012 +0100 api: rework the X server driver API to avoid global arrays. This is a squash merge containing all the API changes, as well as the video ABI bump. Its been squashed to make bisection easier. Full patch log below: [...] commit 06729dbbc804a20242e6499f446acb5d94023c3c Author: Dave Airlie <airlied@gmail.com> Date: Tue Apr 10 14:04:59 2012 +0100 xserver: remove index from CloseScreen (API/ABI breakage) This drops the index from the CloseScreen callback, its always been useless really, since the pScreen contains it. Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Acked-by: Aaron Plattner <aplattner@nvidia.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* NXpicturestr_PictSolidFill.h: Drop file and revert db8705. Not an issue ↵Mike Gabriel2017-04-063-78/+5
| | | | anymore nowadays.
* Keystrokes: rename left/up/right/down keystrokes to descriptive namesUlrich Sibiller2017-04-033-48/+49
| | | | | | The are now called reflecting their purpose: viewport_scroll_left/up/right/down. This also regroups all the keystrokes referring to viewport stuff.
* Keystroke.c: move some vars to inner scopeUlrich Sibiller2017-04-031-5/+2
|
* Init keystrokes at startup and reconnectUlrich Sibiller2017-04-034-9/+12
| | | | no more late initialization
* Keystroke.c: avoid use of comparisons on "False"Ulrich Sibiller2017-04-031-21/+13
|
* Keystroke.c: use Booleans where appropriateUlrich Sibiller2017-04-031-13/+13
| | | | | Some of the keystroke checks have used them before. This commit unifies those checks.
* Keystroke.h: improve parse_keystroke_file()Ulrich Sibiller2017-04-031-35/+44
| | | | Print out more/better messages.
* Keystroke.c: introduce nxagentDumpKeystrokes()Ulrich Sibiller2017-04-032-0/+35
|
* Keystroke.c/h: completely disable keystrokes that are not active at compile timeUlrich Sibiller2017-04-032-10/+27
|
* Keystroke.h: auto-enum keystrokesUlrich Sibiller2017-04-031-26/+25
| | | | there's no need to define the values ourselves
* Keystroke.h/Keyboard.h: cleanup mask variablesUlrich Sibiller2017-04-032-2/+3
|
* Keystroke.c: detect duplicate keystroke definitionsUlrich Sibiller2017-04-031-0/+23
| | | | | | We cannot check if an action is defined twice because the viewport stuff is controlled by multiple keystrokes (arrow keys and keypad) in the default configuration.
* Keystroke.c: use KEYSTROKE_NOTHINGUlrich Sibiller2017-04-031-3/+3
| | | | | instead of KEYSTROKE_END_MARKER. This is cleaner since KEYSTROKE_END_MARKER really marks the end of the list.
* Args.c: add two missing options to help messageUlrich Sibiller2017-04-031-0/+2
|
* os: Remove the useless -x optionAdam Jackson2017-03-211-4/+0
| | | | | | | | | | commit cbb165ab88cb0810268001e84d87671440baf837 Author: Adam Jackson <ajax@redhat.com> Date: Fri Apr 3 18:34:45 2009 -0400 os: Remove the useless -x option Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* os: Add -displayfd optionChase Douglas2017-03-211-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | commit 88bacc49f06da5927f716869f5a32672a8297ed0 Author: Chase Douglas <chase.douglas@canonical.com> Date: Wed Apr 4 15:29:42 2012 -0700 os: Add -displayfd option This option specifies a file descriptor in the launching process. X will scan for an available display number and write that number back to the launching process, at the same time as SIGUSR1 generation. This means display managers don't need to guess at available display numbers. As a consequence, if X fails to start when using -displayfd, it's not because the display was in use, so there's no point in retrying the X launch on a higher display number. Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Reviewed-by: Julien Cristau <jcristau@debian.org> Tested-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* dix/os: backport various signal handling and smart scheduler changes from X.orgMike Gabriel2017-03-214-26/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backported from X.org: commit 6178b1c91cfc9e860914acc6f0be2f2d2e07a124 Author: Adam Jackson <ajax@redhat.com> Date: Tue Jun 7 15:52:11 2016 -0400 dix: Use OsSignal() not signal() As the man page for the latter states: The effects of signal() in a multithreaded process are unspecified. We already have an interface to call sigaction() instead, use it. Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com> commit e10ba9e4b52269b2ac75c4802dce4ca47d169657 Author: Keith Packard <keithp@keithp.com> Date: Wed Nov 11 22:02:01 2015 -0800 Remove non-smart scheduler. Don't require setitimer. This allows the server to call GetTimeInMillis() after each request is processed to avoid needing setitimer. -dumbSched now turns off the setitimer. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com> commit 1f915e8b524dd02011158aa038935970684c7630 Author: Daniel Drake <drake@endlessm.com> Date: Wed May 20 13:16:12 2015 -0600 Keep SIGALRM restart flag after Popen Commit 94ab7455 added SA_RESTART to the SIGALRM handler. However, the Popen code tears down and recreates the SIGALRM handler via OsSignal(), and this flag is dropped at this time. Clean the code to use just a single codepath for creating this signal handler, always applying SA_RESTART. [ajax: Fixed commit id] Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Daniel Drake <drake@endlessm.com> commit 94ab7455abc213fc96760e29ab2e943ec682fb22 Author: Daniel Drake <drake@endlessm.com> Date: Tue May 12 16:39:22 2015 -0600 Allow system call restarts upon signal interruption The X server frequently deals with SIGIO and SIGALRM interruptions. If process execution is inside certain blocking system calls when these signals arrive, e.g. with the kernel blocked on a contended semaphore, the system calls will be interrupted. Some system calls are automatically restartable (the kernel re-executes them with the same parameters once the signal handler returns) but only if the signal handler allows it. Set SA_RESTART on the signal handlers to enable this convenient behaviour. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Daniel Drake <drake@endlessm.com> commit a6c71ce5d2d2fe89e07a2ef5041c915acc3dc686 Author: Tiago Vignatti <tiago.vignatti@nokia.com> Date: Mon Mar 28 19:21:28 2011 +0300 os: fix memory and fd leaks in Popen Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Nicolas Peninguy <nico@lostgeeks.org> commit c9051b684b524549eab6d5b88ee3e195a6f6fbe8 Author: Alan Coopersmith <alan.coopersmith@sun.com> Date: Wed Nov 5 18:25:57 2008 -0800 Use OsSignal in Popen/Pclose to avoid SysV signal() stupidity commit 0e9ef65fa583bf2393dd0fda82df6f092387b425 Author: Keith Packard <keithp@koto.keithp.com> Date: Wed Nov 7 16:33:10 2007 -0800 Don't frob timers unless SmartSchedule is running commit 2338d5c9914e2a43c3a4f7ee0f4355ad0a1ad9e7 Author: Arjan van de Ven <arjan@linux.intel.com> Date: Sun Oct 28 09:37:52 2007 +0100 reduce wakeups from smart scheduler The smart scheduler itimer currently always fires after each request (which in turn causes the CPU to wake out of idle, burning precious power). Rather than doing this, just stop the timer before going into the select() portion of the WaitFor loop. It's a cheap system call, and it will only get called if there's no more commands batched up from the active fd. This change also allows some of the functions to be simplified; setitimer() will only fail if it's passed invalid data, and we don't do that... so make it void and remove all the conditional code that deals with failure. The change also allows us to remove a few variables that were used for housekeeping between the signal handler and the main loop. Signed-off-by: Keith Packard <keithp@koto.keithp.com> **Note**: The above change also required ABI changes in hw/nxagent/. commit abe0a51f3f790f8c055289465e130177c4b647cc Author: Ben Byer <bbyer@bbyer.apple.com> Date: Fri Sep 21 17:07:36 2007 -0700 So, like, checking return codes of system calls (signal, etc) is good. Also, only restore an old signal handler if one was actually set (prevents the server from dying on OS X). commit 6da39c67905500ab2db00a45cda4a9f756cdde96 Author: Eric Anholt <eric@anholt.net> Date: Wed Sep 12 13:23:13 2007 +0000 Fix build on FreeBSD after Popen changes. commit a5b8053606d6e786cdcf6734f271acc05f9cc588 Author: Adam Jackson <ajax@benzedrine.nwnk.net> Date: Tue Sep 11 11:37:06 2007 -0400 Ignore - not just block - SIGALRM around Popen()/Pclose(). Because our "popen" implementation uses stdio, and because nobody's stdio library is capable of surviving signals, we need to make absolutely sure that we hide the SIGALRM from the smart scheduler. Otherwise, when you open a menu in openoffice, and it recompiles XKB to deal with the accelerators, and you popen xkbcomp because we suck, then the scheduler will tell you you're taking forever doing something stupid, and the wait() code will get confused, and input will hang and your CPU usage slams to 100%. Down, not across. Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>