aboutsummaryrefslogtreecommitdiff
path: root/nx-X11
Commit message (Collapse)AuthorAgeFilesLines
* Clipboard.c: implement target cachingUlrich Sibiller2021-06-201-0/+118
| | | | | | | | | | | | | | | | | | | | | | Some applications (e.g. Chrome, Firefox) send multiple TARGETS requests when they want to paste a selection (reason currently unknown). If such an application runs in an NX session and the current clipboard owner is on the real X server this triggers many (superflous) roundtrips. By caching the first answer to those requests and answering subsequent requests from the cache we can eliminate all this communication. The implemention resulted from attempting to fix ArcticaProject/nx-libs/issues/#969 (solution 1a) but it turned out that the speedup this brings does not help in reducing the number of requests by firefox. It must be a bug in the firefox code. Nevertheless I kept the code as it should speed up the whole pasting process considerably while reducing communication over the wire. This also eliminates a memory leak in the target forwarding code which was unnoticed before.
* Clipboard.c: fix indentationUlrich Sibiller2021-06-201-4/+4
|
* Clipboard.c: correctly pass back failure to real X serverUlrich Sibiller2021-06-201-22/+46
|
* Clipboard.c: fix: return after denying requestUlrich Sibiller2021-06-201-0/+1
|
* Clipboard.c: remove obsolete FIXME commentUlrich Sibiller2021-06-201-5/+0
|
* Clipboard.c: once again improved DEBUG outputUlrich Sibiller2021-06-201-13/+34
| | | | | | | | Also reduce number of certain DEBUG lines: These PropertyEvents tend to appear quite often and most of the times they have nothing to do with the clipboard. So instead of printing them everytime we turn that around and print something only if it is a clipboard related event..
* Clipboard.c: fix: remove wrong optimizationUlrich Sibiller2021-06-201-14/+4
| | | | | | | | | | In the "none" case we must ensure the clipboard data is reset. This "optimization" skipped the reset part which made the code think it is waiting for an answer. Which (of course) never arrived. So any further request was rejected... Also reduce debugging output for the "none" case because resetClientSelectionStage will print it anyway.
* Clipboard.c: use NullClient instead of NULL where appropriateUlrich Sibiller2021-06-201-2/+2
|
* Events.c: use index instead of iUlrich Sibiller2021-06-201-7/+7
| | | | we do that everywhere when handling clipboard stuff
* Clipboard.c: fix transfer from agent to X serverUlrich Sibiller2021-06-201-1/+6
| | | | The code took the wrong path because of an insufficent check
* Clipboard.c: fix some whitepace, comments and FIXMEsUlrich Sibiller2021-06-201-5/+4
|
* Clipboard: init variableUlrich Sibiller2021-06-201-1/+6
|
* Clipboard.c: print separator when receiving events/requests in debug modeUlrich Sibiller2021-06-201-5/+5
| | | | This helps reading the debug output a lot!
* Clipboard.c: another round of debug improvementsUlrich Sibiller2021-06-201-19/+33
|
* Clipboard.c: replace loop by helperUlrich Sibiller2021-06-201-13/+1
|
* Clipboard.c: disable TEXT and COMPOUND_TEXTUlrich Sibiller2021-06-201-12/+77
| | | | They are ancient and their use is discouraged by ICCCM
* nxagent: add option -textclipboardUlrich Sibiller2021-06-205-7/+261
| | | | textclipboard=<bool> in the options file
* Clipboard.c: extend commentsUlrich Sibiller2021-06-201-3/+8
|
* Clipboard.c: add TARGET_SIZESUlrich Sibiller2021-06-203-2/+29
|
* Clipboard.c: add FIXMEsUlrich Sibiller2021-06-201-0/+4
|
* Clipboard.c: add some more selection atomsUlrich Sibiller2021-06-203-15/+145
| | | | | we currently do not support them but as they require a special treatment we need to know them and report an error if they appear.
* Clipboard.c: target forwarding (Part 2/2)Ulrich Sibiller2021-06-201-110/+98
| | | | | | Internal clients asking for the available targets for a selection will no longer get a predefined list but a the list of targets from the owning client on the real X server.
* Clipboard.c: target forwarding (Part 1/2)Ulrich Sibiller2021-06-201-180/+118
| | | | | | Clients on the real X server requesting the available targets for a selection will no longer get a predefined list but a the list of targets from the owning internal client.
* Clipboard.c: fix: use XlibWindow instead of WindowUlrich Sibiller2021-06-201-17/+17
|
* Clipboard.c: fix type in status outputUlrich Sibiller2021-06-201-2/+2
|
* Clipboard.c: avoid superflous atom conversionUlrich Sibiller2021-06-201-6/+4
|
* Atoms.c: ensure to always return a valid string...Ulrich Sibiller2021-06-202-53/+52
| | | | | | ... by providing NameFor(Int|Rem)Atom() macros This way we do not have to validate it at various other places.
* Clipboard.c: make use of the new helpers from Atoms.cUlrich Sibiller2021-06-201-113/+50
| | | | | This saves us from having to create intermediate strings and Xfreeing them again. Which can easily be forgotten, producing memleaks.
* Atoms.c: add helper to easily print Atom names in debuggingUlrich Sibiller2021-06-202-2/+62
|
* Clipboard.c: compact clipboard status outputUlrich Sibiller2021-06-201-45/+48
| | | | require less lines
* Clipboard.c: fix comment position and init array pointerUlrich Sibiller2021-06-201-2/+3
|
* Clipboard.c: drop clientCLIPBOARDUlrich Sibiller2021-06-201-14/+14
| | | | read the value from the intSelAtoms array instead
* Clipboard.c: move selection Atoms into separate arraysUlrich Sibiller2021-06-201-39/+49
| | | | | They really only change on startup and reconnect. Also with this change we now only have internal Atoms in the LastSelectionOwner array.
* Clipboard.c: rephrase FIXMEUlrich Sibiller2021-06-201-5/+11
|
* Clipboard.c: restructure request accumulation codeUlrich Sibiller2021-06-201-17/+22
|
* Clipboard.c: use for loops everywhere.Ulrich Sibiller2021-06-201-10/+13
|
* Clipboard.c: fix memleaks in DEBUG modeUlrich Sibiller2021-06-201-5/+15
|
* Clipboard.c: split if clauseUlrich Sibiller2021-06-201-3/+21
| | | | this allows better error messages
* Clipboard.c: remove superflous index determinationUlrich Sibiller2021-06-201-88/+84
| | | | we already have it at that stage
* Clipboard.c: always print SelectionCallBackKind in debug outputUlrich Sibiller2021-06-201-12/+26
|
* Clipboard.c: mark self-initiated eventUlrich Sibiller2021-06-201-0/+5
|
* Clipboard.c: rename function to better reflect meaningUlrich Sibiller2021-06-203-20/+15
| | | | Also improve Debug output.
* Clipboard.c: have lastServer* per selectionUlrich Sibiller2021-06-201-73/+110
| | | | This will help in PRIMARY content appearing in CLIPBOARD and vice versa.
* Clipboard.c: fix nxagentConvertSelectionUlrich Sibiller2021-06-201-22/+24
| | | | | | | - debug output was not printed at the beginning but later and was therefore missing sometimes - add comments/FIXMEs - re-enable failure notification for second call
* Clipboard.c: improve debug/test messagesUlrich Sibiller2021-06-201-4/+5
|
* Clipboard.c: simplify nxagentHandleSelectionRequestFromXServerUlrich Sibiller2021-06-201-120/+107
| | | | | | - remove redundant calls to nxagentFindLastSelectionOwnerIndex which reduce indentation level - scope improvements
* Clipboard.c: use index everywhereUlrich Sibiller2021-06-201-88/+87
|
* Clipboard.c: introduce translateLocalToRemote* helpersUlrich Sibiller2021-06-201-108/+90
| | | | | This also unifies target handling to never use TEXT or COMPOUND_TEXT (despite announcing it)
* Clipboard.c: rename selection fields to {int,rem}SelectionUlrich Sibiller2021-06-201-52/+88
| | | | This helps in avoiding storing the wrong value in a field.
* Clipboard.c: reformat for better readabilityUlrich Sibiller2021-06-201-23/+23
|