ChangeLog:

nxagent-1.3.2-20

- New code uses sigaction to set the SIGHUP handler in persistent
  mode. Contrarily to signal(), the sigaction call doesn't seem to
  reset the handler to SIG_DFL after the signal has been caught.
  This problem seems to be specific of Solaris.

- Client messages of type WM_PROTOCOLS are now handled even when
  a window manager is not detected at agent startup.
 
- Removed handling of GraphicsExposure coming fron the real server.
  Agent will still generate events in the MI. Code dealing with the
  remote events needs to be better tuned as it seems to cause some
  troubles with double refreshes.

nxagent-1.3.2-19

- Starting from this version agent doens't use NXSync and NXKarma
  messages to manage bandwidth arbitration among clients but makes
  efficient use of the congestion notification messages introduced
  in 1.3.1. A new handler has been added to manage the congestion
  state. The handler will block, if needed, waiting for the decon-
  gestion notification coming from proxy.
  
nxagent-1.3.2-18

- Rewritten the block handlers to check the event queue more often.
  The new code seems to greatly enhance responsiveness, especially
  on fast links.

- Now agent will handle the expose events coming from the remote
  display inside the event dispatcher.

- Created a new function collecting the expose events. Function is
  optimized to add all the expose events for the same window to a
  single region. Region is passed to the mi when the last event
  has been processed.

- Still dealing with GetImage from OpenOffice. Now we try to match
  the geometry of the incoming requests with known geometry of most
  of its graphic elements. It seem to work on Fedora.

nxagent-1.3.2-17

- Added swapping of image data in nxagentGetImage() when connecting
  to a display having a different image byte order than the agent
  server.

- Added a new nxagentImageReformat() function in GCOps.c.

- Now agent will not try to pack images having a data size smaller
  than 768 bytes. The previous threshold was set to 64. The Mandrake
  vesion of KDE seems to send lot of such small images. Compressed
  through JPEG, these images obtain a very poor ratio of nearly 1:1.

- Added a function translating and sending the GraphicsExposures
  events received from the remote server to the agent's clients.

- Renamed the functions providing the ad-hoc handling of remote X
  events.

nxagent-1.3.2-16

- Implemented a cache for the alpha channel data. With clients
  making heavy use of the alpha blending, the new cache is able to
  cut by nearly 30% the traffic incoming to proxy, offering compara-
  ble savings in CPU performance. While proxy is usually able to
  cache almost all the alpha traffic, when caching is not enabled
  (f.e. when link setting is WAN or LAN) this data is sent uncomp-
  ressed by the agent. Tests running common desktop environments
  showed that alpha channel could weight up to 2 times the corres-
  ponding data generated by the packed images.

- Fixed the compilation warnings in NXrender.c.

nxagent-1.3.2-15

- Rewritten handling of GetImage from dispatcher down to GCOps. If
  the fast GetImage mode is enabled agent will use the asynchronous
  calls provided by nxcompext to get data from the real server. Data
  collected from the last get image performed is preserved and the
  upper left pixel is used to guess a solid background.

- Added a nxagentGetBackgroundImage() function to apply a similar
  mechanism when the nxagent window isn't fully visible. Previously
  a solid white background was returned. The new handling seems to
  correctly match the window background in most cases.

- Fixed a problem passing the bytes per line value when creating a
  XYPixmap image. The previously calculated value didn't take into
  account the depth of the image.

- Now image's bytes per line, length and visual are calculated by
  using a few utility functions added to GCOps.c.

- Added declaration of the nxagentVisibility related variables to
  Window.h.

nxagent-1.3.2-14

- On Fedora xbcomp configuration fails when agent is run nested.
  This causes keyboard to ignore most AltGr keys. Strangely enough
  this behaviour has been observed only with KDE while GNOME does
  not seem to be affected. Reason is to be investigated.

- Auto-repeat mode of the agent's keyboard device is now always
  disabled. Agent will leverage auto-repeated keystrokes genera-
  ted on the real server even when propagating device configura-
  tion changes.

- The info output telling if agent will propagate the changes to
  devices' setting is now printed after having initialized the
  screen. The purpose would be to verify if agent is running in
  fullscreen mode and there is no WM on the real display. In this
  case we should forcibly propagate device configuration changes.
  Unfortunately, due to the way intern atoms are collected, this
  is not going to work on platforms where sessions are likely to
  run on an existing X server.

nxagent-1.3.2-13

- Fixed a problem with XYPixmaps being used in PutImage with the
  wrong left pad. This is a step forward in the solution of the
  corrupted masks displayed by Mozilla when showing some animated
  GIFs.

- By selecting 'fast' mode nxagent will now skip real XGetImage
  operations on windows. This becomes the default in the case of
  MODEM, ISDN and ADSL links. In theory X clients should never do
  that. In practice a few naive programs and libraries (like, sur-
  prisingly enough, a famous Linux office automation suite) do,
  mainly to compose images with the window's backgound. Why don't
  they compose content into a Pixmap?

- Improved the implementation of CompositeGlyphs. It now uses a
  single call to XRenderCompositeText instead of splitting the
  output in multiple RENDER requests.

- In previous versions file NXmiwindow.o was not linked into the
  resulting nxagent. This solves the problem of missing repaints
  in CDE and other Xt applications. Be sure you upgrade nx-X11
  to version nx-X11-1.3.2-2.

- Added a warning when the change keyboard control or the change
  pointer control functions are called.

nxagent-1.3.2-12

- Added bit-swapping of glyphs having depth 1 when agent has a
  different bitmap-bit-order than the X server.

- The KeyRelease event's timestamp calculation, accounting for
  differences in time between the local and the remote machine,
  will now use the timestamp taken from the last KeyPress. Using
  the timestamp of the last event was sometimes causing time to
  go backward with the result that server could remain grabbed.
  This solves the long-standing "mouse stop responding" problem.

- Fixed a problem handling the alpha channeled visual introduced
  while experimenting with the new server endianess layout.

nxagent-1.3.2-11

- Added the Reset option to options repository. By default agent
  will skip server reset when the last client disconnects. This is
  equivalent to passing the -noreset option to a standard XFree86
  server. To restore the original behaviour the new -reset option
  can be used on the command line.

- Moved the SharedMemory and DeviceControl options to the options
  repository.

- A basic session, still leveraging all the default facilities, can
  now be run as: nxagent -name NX -geometry 800x600+10+100 :1. The
  -fp unix/:7100 option can be added to enable access to the X font
  server.

- Fixed a "unused variable" warning in Cursor.c.

nxagent-1.3.2-10

- Rootless mode. Some cleanup in initialization.

- Rootless mode. Working at the configure-window errors.

nxagent-1.3.2-9

- Removed limitations when running nxagent nested inside another
  nxagent server. Now both render extension and packing of images
  are enabled.

- The nxagent X server now inherits its endianess from the host
  architecture, instead of assuming the same endianess of the con-
  necting client. This fixes the remaining problems running ses-
  sions nested inside another nxagent server.

- Removed any reference to ReformatImage().

nxagent-1.3.2-8

- Changed the way the agent server handles images internally.
  The inherited Xnest code used to set the server's image order
  to the same order of the remote X display. This caused agent
  to create images in the internal frame-buffer with a different
  endianess in respect to images got from X clients.

- The new image handling code seems to solve all the known image
  endianess problems, for example cursors created on big-endian
  displays with a wrong shape or glyphs being showed flipped when
  retrieving the image data from the virtual frame-buffer.

- As an added bonus the new code seems to double the performance
  of the SPARC Solaris server when accessing i386 clients.

- Commented out all the existing calls to ReformatImage(). Code
  needs now extensive testing to see if any of the calls must be
  actually restored.

- Replaced calls to index() with strchr().

nxagent-1.3.2-7

- Solved a potential memory error when accessing a client or a
  window pointer in clipboard management code after the resources 
  had been destroyed. Added a nxagentClearClipboard() function to
  be called before a client or a window is destroyed to get rid
  of any reference to the disposed resources.

- Auto-repeated keystrokes generated by agent from inside the
  virtual keyboard device are now ignored. Agent will correctly
  honor auto-repeated keystrokes generated by the real X server.
  This is actually the expected behaviour. The former implemen-
  tation triggered an annoying bug, with keystrokes being inad-
  vertedly auto-repeated in the case of high latency on the
  network link.

- Agent will now ignore the pointer settings changes generated
  inside the remote session. The original behaviour was to reset
  the pointer values (for example acceleration) to the X factory
  settings at session startup. Agent will now inherit whatever
  values are set on the real X display.

- Added a -noignore parameter. When passed, agent will propagate
  to the real X server any change to keyboard and pointer control
  settings operated by its own X clients.

nxagent-1.3.2-6

- Fixed problem with glyphs being drawn clipped in the virtual
  frame buffer. This is not yet the final solution but it seems
  to work in all the circumstances where problem was observed
  in the past. Problem seems to be caused by scratch pixmaps
  being requested with a width and height smaller than actually
  required. Note anyway that pixmap's buffer seems to be never
  accessed beyond its boundary. This probably means that memory
  for the pixmap is originally allocated using the right size.

- Moved backing-store selection to options repository. Now by
  default the backing-store mode is set to WhenRequested. This
  means that, in most cases, there is no need to pass the -bs
  option on the command line.

- Code cleanup in Render.c, NXrender.c, NXglyph.c.

nxagent-1.3.2-5

- Fixed initialization of all the supported depths. Previous
  versions correctly initialized the various depths but still
  failed to advertise the support of any other depth than the 
  default depth supported by the remote X server.

- Persistent mode. We now correctly propagate the pixmap ID of
  the parent to the virtual pixmap at reconnection. This fixes
  the reconnection errors when render extension is enabled.

- Persistent mode. Solved the refresh problems at reconnection.
  Problems were generated by the lack of window parent's ID at
  the time session was reconnected. 

- Changed the agent's behaviour at the time the close button is
  pressed. If agent is running in persistent mode a new dialog
  is showed with the option to suspend the session.

nxagent-1.3.2-4

- Persistent mode. At the time the proxy connection is reset the
  per-client unpack geometry information is cleared. This makes
  agent find out that a new unpack geometry is needed as soon as
  the display is reconnected.

- Persistent mode. Lot of logging added in order to trace use of
  resources as long as they are recreated. The current version
  fails to correctly restore the picture information when render
  is enabled.
 
nxagent-1.3.2-3

- Finally fixed all the problems with missing initialization of
  pixmap formats. The screen info is now correctly set up even
  when the remote display doesn't support all the target depths.
  Many thanks to Michael L Torrie who helped me to reproduce the
  problem and come to a solution.

- Moved initialization of depths, default drawables and pixmap
  formats to their own functions in Display.c.

nxagent-1.3.2-2

- Fixed the nxagentDestroyPixmap() function to correctly take into
  account the reference counter of the virtual pixmaps. This solves
  the crashes observed when running some GTK clients like xchat.

- Added a function Pixmap.c to forcibly destroy the pixmaps created
  in the virtual framebuffer when the parent pixmap is destroyed.

- This version contains some verbose output intended to better test
  the new behaviour. The output will be removed in future versions.

nxagent-1.3.2-1

- More cleanup in Pixmap.c.

- Rewritten nxagentCreatePixmap(). Corrected an error where the
  bitsPerPixel field was set to the pixmap's depth instead of the
  result of BitsPerPixel(depth). This finally solves the problem
  of text being incorrectly rendered in the virtual framebuffer.

- Corrected the X error returned at the end of session when trying
  to free a pixmap with an invalid id.

- Opened the 1.3.2 branch.

nxagent-1.3.1-32

- Cleanup of Pixmap.h/Pixmap.c. Renamed macros according to the
  nxagent naming conventions.

nxagent-1.3.1-31

- When running in fullscreen mode, grab and ungrab of pointer and
  keyboard is performed in new functions, placed in Events.c.

- The event loop now checks if the enter/leave notify carries a
  NotifyInferior detail and, in this case, doesn't perform the grab.
  This saves half the amount of grabs (and the related roundtrips)
  performed by the previous version.

- Ungrab of pointer is now performed whenever the cursor leaves the
  fullscreen window. In previous version only the keyboard was
  explicitly ungrabbed.

- Added a warning in the event loop when receiving a MappingNotify.
  This event is presently unhandled and seems to be reported, as a
  consequence of the selected event mask, only by some X servers.

nxagent-1.3.1-30

- Reverted the patch introduced in Pixmap.c. The whole issue is
  being investigated in its ramifications up to the virtual frame
  buffer.

nxagent-1.3.1-29

- Fixed a problem in the nxagentDestroyPixmap function where the
  reference counter of pixmaps could be decremented twice. This
  could lead to agent trying to free the pixmaps more than once.

- On Solaris there is no description for pc105 keyboard model. As
  a workaround we consider pc104 to be the closest approximation.

nxagent-1.3.1-28

- Fixed a bug in the create window procedure. With some clients,
  like Maelstrom and xmame, the creation of the main window was
  failing due to the wrong colormap and visual attributes used
  by agent on the real X server.

- In fullscreen mode the keyboard is now grabbed at the time we
  receive an EnterNotify event. This fixes a problem at startup
  observed on some Debian based distributions where agent didn't
  receive the keyboard focus until user had minimized and then
  brought to front the agent's window. The grab is now correctly
  performed by using the timestamp of the remote X server ins-
  tead of our local timestamp.

- In NXdixfonts.c strings corresponding to names of fonts and
  font aliases cached by nxagent were missing the terminating
  zero.

- In function InitClientPrivates fixed the missing initializa-
  tion of the is_ignored member of the ClientPriv structure.

- Added the Persistent option to Options repository. The flag is
  intended to replace the old nxagentEnableReconnect variable.

nxagent-1.3.1-27

- Fixed a memory allocation problem in Keyboard.c. A string was
  allocated in the heap without making enough room for the trail-
  ing zero.

nxagent-1.3.1-26

- Added further run-time checks to verify that pixmaps are not
  created with bad bit-per-plane settings. This problem seems to
  be caused by lack of support by nxagent of some combinations
  of depth and visual when the render extension is enabled. If
  this is the case, hide the render extension to new clients and
  force any subsequent render operation to return a BadRequest
  error. This required including extension.c from dix. A new
  NXextension.c file is added to the distribution.

- A problem was reported by Valgrind about reading the first 4
  bytes just after the block allocated in fbCreatePixmap from
  nxagentCreatePixmap. A quick fix was added to pixmap.c from
  dix so that AllocatePixmap adds 4 additinal bytes to each
  buffer.

nxagent-1.3.1-25

- Fixed a memory corruption error. The original AllocateGlyphSet
  from render/glyph.c could be called instead of the NX counter-
  part defined in NXglyph.c. This could lead to the missing
  allocation of the trailing remote glyphset id field.

- Added initialization of an otherwise usused string in function
  nxagentPropagateArtsdProperties(). The whole string is probably
  to be removed in future versions.

- Moved the flag used to avoid reentrancy in GCOps to a separate
  Trap header and source.

- Further cleanup. Removed the zombie file NXglyphcurs.h.

- Added missing initialization of the picture pointer in private
  window's data in nxagentCreateWindow.

nxagent-1.3.1-24

- Added the missing timeout when calling WaitForSomething() at
  startup. The bug caused the splash to remain on screen until
  a further event was received.

- Fixed a BadAtom error on Windows during initialization. Error
  was caused by a bad attempt to change the NX_AGENT_SIGNATURE.

- Hunting the 0 bits-per-plane drawable bug in nxagentValidateGC.
  Added tracing output and additional checks. GC validation is
  skipped if it is not possible to recover an appropriate value.

- Ensured that nxagentDisplayName is set before calling the post
  initialization procedure.

nxagent-1.3.1-23

- When session is run nested inside another NX X agent, all the
  optimizations regarding remote expose events on fully visible
  windows are disabled. This solves the refresh problems encoun-
  tered when covering the nested session with a window from the
  local X server.

- Reusing NX_AGENT_SIGNATURE atom to detect nested operation.
  Atom is created internally to the agent server at startup,
  before any atom on the real display.

- Fixed construction of caption used for dialog boxes spawn by
  agent. The previous algorithm failed to identify the correct
  string in parameter -name passed on the command line.

nxagent-1.3.1-22

- Ensured that state of keyboard modifiers is initialized with
  values from the real X server when the first key stroke is
  pressed by the user.

- Fixed the X_SetInputFocus errors generated at session startup.

- Rootless mode. Ensured that remote expose events are always
  reported by the remote proxy. This is a temporary fix looking
  forward for better handling of visibility events.

nxagent-1.3.1-21

- Saved a GetWindowAttributes and a GetGeometry in the function
  drawing the splash screen.

- Better handling of splash at startup. Removed the flickering on
  Windows without recurring to another atom. This is achieved by
  optimizing drawing and delaying mapping of the main windows.

- Modified the magic values activating rootless mode to 100x100.

- Removed modifications introduced in 1.3.1-20.

nxagent-1.3.1-20

- Working on eliminating the splash screen flickering on Windows
  and Darwin. Checked if the NX_SPLASH atom has been created by
  the NX X server. If this is the case, we let the NX X server
  show the splash screen on our behalf.

nxagent-1.3.1-19

- Improved the initialization phase by removing a GetProperty, an
  InternAtom and two GetInputFocus round-trips.

- Added appropriate masking of the state bits reported by the
  XkbStateNotifyMask event.

- Added a simple mechanism during the itialization phase to trace
  the use of X server replies.

nxagent-1.3.1-18

- Made some order in functions loading the NX icon.

- Removed some more zombie files from agent distribution. Now only
  the files imported from DIX and MI have name prepended with NX.

nxagent-1.3.1-17

- Moved names and values of intern atoms created by agent in their
  specific header and source.

- We temporarily force rootless mode if user provides a geometry
  of 801x601. This is intended to simplify testing. Note that if
  rootless is selected, we'll anyway disregard any geometry set
  by the user, assuming the geometry of the real display.

nxagent-1.3.1-16

- We are checking now whether NX_IDENTITY intern atom is created
  before NX_SPLASH. We want NX X servers to show the splash on our
  behalf, so if NX_SPLASH is already interned, than we just skip
  the splash procedure.

nxagent-1.3.1-15

- Rootless mode. Fixed a segfault handling ConfigureNotify events
  on top-level windows.

- Moved handling of ClientMessages coming from proxy in a separate
  function.

nxagent-1.3.1-14

- Rewritten the code dealing with key modifier changes. Now we
  use XKB events instead of synchronous XkbGetIndicatorState()
  calls.

- Moved activation of keyboard and pointer events to Events.c.

- Removed pointer motion optimizations as a better logic, taking
  in account the selected link speed, is already implemented in
  proxy.

nxagent-1.3.1-13

- Renamed the -reconnect option as -persistent.

- Rootless mode. Agent's root windows are not mapped at startup.

- Removed the zombie file glyphcurs.c from agent distribution.

nxagent-1.3.1-12

- Corrected a typo in the new CopyArea code in GCOps.c where:

  if (srcx > nxagentWidth)  srcx = nxagentWidth;
  if (srcy > nxagentHeight) srcx = nxagentHeight;

  had to be:

  if (srcx > nxagentWidth)  srcx = nxagentWidth;
  if (srcy > nxagentHeight) srcy = nxagentHeight;

- Added handling of the fullscreen command line parameter to the
  options repository.

- Added agent geometry parameters to the options repository.

nxagent-1.3.1-11

- Rootless mode. Added handling of configuration events reported
  for the top-level windows.

- Rootless mode. Children of the root window get the event mask
  selected when the window is created. This makes the keyboard
  work at least with xterm and other simple clients. There are
  still problems with the pointer events.

- Created new Splash.h and Splash.c sources file to contain the
  few splash screen procedures that were previously sparsed in
  multiple files.

- Added traces in all the window creation procedures and in the
  initialization routines called at startup.

- Renamed some source files to make simpler to identify what is
  imported from DIX and what actually pertains to agent.

nxagent-1.3.1-10

- Added the missing RestackWindow screen operation. This solves
  problems of incorrect stacking order observed in menus when
  using the drop shadow feature in the latest KDE versions.

nxagent-1.3.1-9

- The new standard for checking previous inclusion of headers is
  by verifying definition of _Filename_H_ where Filename is the
  base name of the file, for example __Options_H__ in the case
  of "Options.h". This is intended to be a step in reducing the
  number of defines in code prefixed with NXAGENT. 

- Updated NX copyright to year 2004. Placed copyright statement
  regarding NXAGENT and NX modifications to the Xnest software
  at the beginning of the file. Checked again if credit is given
  to all the existing copyright owners.

nxagent-1.3.1-8

- Added a new Options repository to store the values currently
  dispersed all over around. The new macros nxagentOption(option)
  and nxagentChangeOption(option, value) should be used from now
  on to access the important values affecting agent's operations.

- General cleanup of code. Removed the remaining references to
  the Xnest legacy code.

nxagent-1.3.1-7

- Some steps forward toward rootless agent. Now all the top level
  windows are correctly created. Drawing to the real screen seems
  to work without problems. It is still not possible to get events
  in the event loop and the remote WM is interfering with the WM
  on the local display.

- More cleanup of code. Some changes to parts added since 1.3.1-5.

nxagent-1.3.1-6

- A drawable with 0 bpp can somehow arrive to the fb layer. The
  problem needs to be better investigated. In the meanwhile a
  quick check is added to correctly identify the ill condition.

- Small fix to allow Num/Caps lock synchronization also on the
  windows platform. This is still to be considered beta quality.

- New options -slow and -fast added to agent. When "fast mode" is
  not set, agent will query the remote X server to get real content
  of drawables. When fast mode is enabled, agent will save the
  round-trip by just clearing the drawable to its background. The
  default mode is "slow", thus agent will always query the remote
  server. When "fast mode" is explicitly set or when NX transport
  is detected and the link is one of MODEM, ISDN and ADSL, agent
  will default to "fast mode". This behaviour can be overridden by
  system administrators by setting the key AGENT_EXTRA_OPTIONS_X
  to "-slow" in node configuration.

nxagent-1.3.1-5

- Created framework for rootless agent. Added a -rootless option.

- Slowly going toward a better organization of nxagent internals.
  Renamed some files and moved things around. Changed some comments
  in Screen.c to be more explainatory.

nxagent-1.3.1-4

- Changed default keyboard model to "pc102" (was "pc101") to correct
  problems with "<" and ">" keys on the German keyboards and, poten-
  tially on other layouts.

- Added new parameter -kbtype to handle both geometry and layout in
  a single form, for example pc102/pl. Parameter -keyboard is still
  supported for backward compatibility.

- Synchronization of Num and Caps lock status is now done comparing
  the real keyboard and the internal state at the time nxagent gets
  the focus. If state doesn't match, a fake keyboard event is sent.

nxagent-1.3.1-3

- Fixed a further problem on CopyArea between windows and pixmaps.

nxagent-1.3.1-2

- Implemented CopyArea on framebuffer when copying from windows to
  pixmaps. Added the -slow command line switch to let nxagent get
  the real content of the window from the X server. This requires
  an expensive round-trip so it is disabled by default.

nxagent-1.3.1-1

- Opened the 1.3.1 branch.

nxagent-1.3.0-32

- Fixed a bug on 16 bpp displays using render extension. Now only
  images which are used by render pictures and which have depth 32
  are created with a different visual color mask. This saves a big
  amount of SetUnpackColormap requests.

nxagent-1.3.0-31

- Fixed a bug in nxagentComposite routine. The macro nxgentPicturePriv
  was used without checking for a null pointer argument.

nxagent-1.3.0-30

- Limitations on bandwidth introduced whenever the agent's window
  is covered are now disabled by default. They can be enabled by
  specifying the -limit option on the command line. The -nolimit
  option is left for compatibility with the previous versions.
  This handy feature caused complaints in the past from users who
  instruct window managers to not move the window having focus on
  top of the stacking order.

nxagent-1.3.0-29

- Removed the warnings issued at compile time.

nxagent-1.3.0-28

- Replaced the corrupted file nxagent.xpm with the original version.

nxagent-1.3.0-27

- Hopefully fixed all the remained memory leaks. Most problems were
  due to agent's render extension not freeing resources on X server.

- Added support for big-endian X server display on render extension.
  Glyphs are reformatted according with the destination order.

- Added per client information for SetUnpackGeometry, now the unpack
  routines should have the correct information for the color mask at
  the end of the split process.


nxagent-1.3.0-26

- Changed the message printed in the log when leaving the dispatch
  loop from 'Error' to 'Info'.

- Moved initialization of _NXFlushSize to nxcompext in order to set
  value at the time NXGetControlParameters() is called.

nxagent-1.3.0-25

- Content of selection is now acquired using a single round-trip.
  If content exceeds 262144 bytes, it is truncated at that size.
  This works in most situations, at least with text, that, by the
  way, is the only target supported at the moment. An improvement
  would be to modify the state machine in a way that the remaining
  data part is got using a second round-trip. This is not difficult
  to do and can be considered for future releases.

- In handling of clipborad we had to disable check on multiple
  convert selection requests from the same client. There is a bug
  in the algorithm that prevents the counter to be reset at the
  appropriate time. This is to be investigated.

nxagent-1.3.0-24

- Added asynchronous handling of GetProperty requests and replies
  using the NXCollectProperty and NXGetCollectedProperty requests
  and the NXCollectPropertyNotify event in NXclipboard.c and in
  Event.c. Implementation is not complete yet and can sometimes
  cause X clients to misbehave.

- Function xnestBitBlitHelper() now always returns NullRegion.
  Handling of graphical expose events should be rewritten so that
  regions are always generated internally to nxagent. Returning a
  null region without checking our event queue, anyway, saves a
  flush of the display buffer and doesn't seem to affect the
  functionalities.

- This version comprises modifications to Events.c, GCOps.c, 
  NXClipboard.c, NXwindow.c and Window.c where I found XSync() 
  messages (or code used to just send XSync() messages) outside 
  any #ifdef ..._DEBUG.

nxagent-1.3.0-16

- A dialog is showed at startup if proxy was not able to load a
  persistent cache.

- Reflected changes introduced in NXGetControlParameters() to add
  more detailed information about the compression settings.

- Fixed a potential bug with the name of the agent's display at the
  time a dialog had to be showed. String was allocated with only 6
  characters. This could lead to dialogs not being showed using
  display ports greater than 9999.

- NX.h is now included by NXControl.h. Removed #include directives
  from other files.
