aboutsummaryrefslogtreecommitdiff
path: root/nx-X11
Commit message (Collapse)AuthorAgeFilesLines
* damage: Don't rewrite Text ops to GlyphBlt opsUlrich Sibiller2019-11-012-226/+19
| | | | | | | | | | | | | | | | | | | | | | | | | This backport of a 2013 Xorg fix changes miext/damage.c so that the text functions (damageText, damage{Poly,Image}Text{8,16}) finally are very similar to the changes that NX introduced in 2007 with nxagent-3.0.0-28. Fun fact: the original freedesktop bug mentioned below is from 2005 and the fix came in 2013... Next commit will be the complete drop of NXdamage.c. commit 0f3f8e4295d4c05f33b93e0ffd2f6f8cd5759bf7 Author: Adam Jackson <ajax@redhat.com> Date: Wed Aug 21 11:13:11 2013 -0400 damage: Don't rewrite Text ops to GlyphBlt ops There's no particularly good reason to, and it breaks Xnest. Bugzilla: http://bugs.freedesktop.org/2454 Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
* NXdamage.x fix wrong backportUlrich Sibiller2019-11-011-4/+12
| | | | | | | | | f0ba303d48439e0ebb572d56db972995388ac865 errornously added the "else" which had been explicitly removed in NX 3.0.0-28 with this comment: - Changed damage's GCOps functions drawing text. This was needed be- cause the original functions didn't call agent GCOps if the drawable was registered for damage events.
* NXevents.c: add some explanations from the original changelogUlrich Sibiller2019-11-011-0/+32
|
* NXevents.c: use XYToWindow from dixUlrich Sibiller2019-11-012-53/+20
| | | | add a callback to determine the starting window.
* NXevents.c: call upstream ProcAllocEvents()Ulrich Sibiller2019-11-012-53/+24
| | | | | Our version only adds some commented code, so it is not really necessary. But it is cleaner to handle it that way.
* NXEvents.c: mark NX specific codeUlrich Sibiller2019-11-011-1/+4
|
* NXevents.c: call upstream DefineInitialRootWindow()Ulrich Sibiller2019-11-012-36/+5
|
* NXevents.c: call upstream version of ProcSendEvent()Ulrich Sibiller2019-11-012-84/+7
|
* NXevents.c: call upstream versions of (De)ActivatePointerGrab()Ulrich Sibiller2019-11-012-48/+15
|
* Xau files: adapt code to match upstream libXau 1.0.9Ulrich Sibiller2019-11-014-51/+56
|
* AuRead.c: remove redundant null check on calling free()Ulrich Sibiller2019-11-011-9/+9
| | | | | | | | | | | | | | | | Backport of this commit: commit 7ba7085b4f01f3cd72008712a5333ea3f0edfd88 Author: walter harms <wharms@bfs.de> Date: Sat Oct 28 19:14:22 2017 +0200 AuRead.c: remove redundant null check on calling free() this removes simply unneeded code from XauReadAuth Signed-off-by: Walter Harms <wharms@bfs.de> Reviewed-by: Daniel Martin <consume.noise@gmail.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* AuRead.c: whitespace cleanupUlrich Sibiller2019-11-011-30/+30
|
* Xau: mark NX changesUlrich Sibiller2019-11-011-0/+15
| | | | | | | | libXau is integrated into libNX_X11, but the differences to libXau original code where not explicitly marked. This path adds some ifdefs and also restores the original code. Attributes to ArcticaProject/nx-libs#850
* Merge branch 'uli42-pr/fix_rebuild' into 3.6.xMihai Moldovan2019-10-191-1/+1
|\ | | | | | | Attributes GH PR #845: https://github.com/ArcticaProject/nx-libs/pull/845
| * 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.
* | Screen.c: cleanup code a bitUlrich Sibiller2019-10-101-16/+14
| |
* | Screen.c: fix a memleakUlrich Sibiller2019-10-101-5/+2
| | | | | | | | | | | | | | Remove some code that is no longer needed because the code requiring it has been removed some time ago (commit 643e13bf3de6704f634d60342b738e0002f057b9). Fixes a small memleak that turned up after switching to fullscreen once.
* | Fix segfault in argument parsingUlrich Sibiller2019-10-031-0/+3
| | | | | | | | | | | | | | | | Using arguments that need a parameter without providing one would lead a segfault due to calling strcmp() will NULL. Triggered by running "nxagent -ac :1 -options nx/nx,fullscreen" or similar, Fixes ArcticaProject/nx-libs#847
* | Clipboard.c: rename nxagentNotifySelection to ↵Ulrich Sibiller2019-09-293-6/+7
| | | | | | | | | | | | nxagentHandleSelectionNotifyFromXServer Use a more descriptive name.
* | Clipboard.c: fix nested clipboard handlingUlrich Sibiller2019-09-291-1/+8
| | | | | | | | Fixes ArcticaProject/nx-libs#632
* | Clipboard.c: add some more FIXMEsUlrich Sibiller2019-09-291-0/+20
| |
* | Clipboard.c: drop old commented codeUlrich Sibiller2019-09-291-16/+0
| |
* | Clipboard.c: fix: translate target on transferUlrich Sibiller2019-09-291-0/+23
| |
* | Clipboard.c: flush the display during transfer phaseUlrich Sibiller2019-09-291-0/+6
| | | | | | | | This avoids delays, timeouts and missing copy/paste actions.
* | Clipboard.c: remove superflous returnUlrich Sibiller2019-09-291-2/+0
| |
* | Clipboard.c: drop unneeded return codeUlrich Sibiller2019-09-291-8/+10
| |
* | Clipboard.c: add loads of commentsUlrich Sibiller2019-09-291-32/+195
| |
* | Clipboard.c: rework debug printsUlrich Sibiller2019-09-291-57/+167
| | | | | | | | add new debug output, extend existing, drop meaningless
* | Clipboard.c: translate internal to external atomUlrich Sibiller2019-09-293-5/+22
| | | | | | | | | | | | | | | | serverClientCutProperty is the external equivalent of the internal clientCutProperty. We need it on the server side, too, because we use the property on the serverWindow on the real X server. We could (mis)use serverCutProperty here but this might introduce race conditions when both sides request selections simultaneously.
* | Clipboard.c: remove unneccessary returnUlrich Sibiller2019-09-291-2/+0
| |
* | Clipboard.c: whitespace fixesUlrich Sibiller2019-09-291-14/+14
| |
* | Clipboard.c: improve readability by using an if clauseUlrich Sibiller2019-09-291-2/+3
| |
* | Clipboard.c: introduce nxagentInitSelectionOwnerUlrich Sibiller2019-09-291-11/+11
| |
* | Clipboard.c: scope improvementsUlrich Sibiller2019-09-291-11/+8
| |
* | Clipboard.c: Refactor nxagentCollectPropertyEventUlrich Sibiller2019-09-291-83/+77
| |
* | Clipboard.c: cleanup in nxagentRequestSelectionUlrich Sibiller2019-09-291-16/+13
| |
* | Clipboard.c: use designated initializers where appropriateUlrich Sibiller2019-09-291-41/+24
| |
* | Clipboard.c: factor out nxagentReplyRequestSelectionUlrich Sibiller2019-09-291-27/+38
| |
* | Clipboard.c: TIMESTAMP is a special server targetUlrich Sibiller2019-09-291-0/+7
| | | | | | | | | | This is not a functional change, it only helps in clearer debugging output.
* | Clipboard.c: introduce macros CLINDEX and WINDOWIDUlrich Sibiller2019-09-291-22/+24
| |
* | Clipboard.c: simplify nxagentGetClipboardWindowUlrich Sibiller2019-09-291-12/+3
| | | | | | | | | | | | | | The second parameter was always NULL, so remove it. Also remove some debugging output which distracts while debugging as the function is called from ProcChangeProperty for _every_ property, also non-clipboard related ones.
* | Clipboard.c: drop serverCLIPBOARDUlrich Sibiller2019-09-291-5/+1
| | | | | | | | we reference lastSelectionOwner[nxagentClipboardSelection].selection everywhere.
* | Clipboard.c: clientAccum is only used for debugging, add DEBUG ifdefsUlrich Sibiller2019-09-291-5/+7
| |
* | Clipboard.c: rename some variablesUlrich Sibiller2019-09-291-10/+10
| | | | | | | | | | | | | | nxagentClipboardAtom -> serverCLIPBOARD nxagentTimestampAtom -> serverTIMESTAMP This is to match the names of the other server atom variables.
* | Clipboard.c: introduce nxagentFind*Index functionsUlrich Sibiller2019-09-294-50/+33
| | | | | | | | | | At some places we were using NumCurrentSelections. We replace that by nxagentMaxSelections because they always have the identical value.
* | Clipboard.c: introduce nxagent{Clear,Store}SelectionOwnerUlrich Sibiller2019-09-291-13/+22
| |
* | Clipboard.c: Fix: report timestamps as XA_INTEGERUlrich Sibiller2019-09-291-2/+2
| | | | | | | | Just as everyone else does. ICCCM is not really clear about this.
* | Clipboard.c: improve TARGETS request handlingUlrich Sibiller2019-09-291-11/+10
| |
* | Clipboard.c: merge endTransfer and nxagentSendSelectionNotifyUlrich Sibiller2019-09-291-25/+12
| | | | | | | | endTransfer is the only caller
* | Clipboard.c: introduce SendSelectionNotifyEventToClient helperUlrich Sibiller2019-09-291-62/+32
| |