aboutsummaryrefslogtreecommitdiff
path: root/nx-X11
Commit message (Collapse)AuthorAgeFilesLines
* nxagent: rework Bool handlingUlrich Sibiller2019-02-1130-255/+261
| | | | drop "== False", "== 0", "== True" and "== 0" for nxagentOptions and Traps
* Screen.c: code optimization for rootless modeUlrich Sibiller2019-02-111-4/+6
| | | | | In rootless mode skip processing user geometry stuff since the values will we overwritten later anyway.
* Screen.c: simplify and fix handling of rootless modeUlrich Sibiller2019-02-111-23/+17
| | | | Fixes: ArcticaProject/nx-libs#765
* rrdispatch.c: remove obsolete ifdefUlrich Sibiller2019-02-111-4/+0
|
* release 3.5.99.183.5.99.18Mike Gabriel2019-01-311-1/+1
|
* Screen.c: fix handling of fullscreen startupUlrich Sibiller2019-01-141-5/+5
| | | | | | | | | If nxagent is started in fullscreen mode take care the saved size (that is applied on exit of the fullscreen mode) will be configured correctly. Also respect a user provided -geometry option (had been ignored here previously). Fixes ArcticaProject/nx-libs#449
* Screen.c: fix size calculation in rootless modeUlrich Sibiller2019-01-141-2/+16
| | | | | | | There's no need to reduce the size to 75% in rootless mode. We always want to have the full size then. Fixes ArcticaProject/nx-libs#757 (Part 2/2)
* Screen.c: improve readability of size calculationsUlrich Sibiller2019-01-141-65/+57
| | | | | | ... by using some short named variables and the min() macro. No change in behaviour.
* Screen.c: move identical line out of both parts of an if clauseUlrich Sibiller2019-01-141-3/+2
|
* Extensions.c: Cleanup nxagentRandRInitSizes()Ulrich Sibiller2019-01-141-44/+33
|
* Extensions.c: fix first resolution being ignoredUlrich Sibiller2019-01-141-3/+3
| | | | | | Minor fix: The loop always started at index 3, comparing against the value at index 2. So the resolution at index 1 (320x240) was never taken into account for anything.
* Set default screen size to the whole screen in rootless modeUlrich Sibiller2019-01-141-2/+2
| | | | | | | This solves weird window (menu) placement and drawing behaviour on right/lowest 25% of the screen. Fixes ArcticaProject/nx-libs#757 (Part 1/2)
* Window.c: move WM_STATE handling to separate functionUlrich Sibiller2019-01-141-17/+19
|
* XlibInt: check for XlibError before accessing other dpy fieldsUlrich Sibiller2018-12-221-0/+10
| | | | | | This fixes an assertion being triggered on reconnect: assertion=assertion@entry=0x7f2f0bba6510 "(dpy->flags & XlibDisplayPrivSync) != 0", file=file@entry=0x7f2f0bba62fc "XlibInt.c", line=line@entry=895,
* XlibInt.c: fix wrong debug messageUlrich Sibiller2018-12-221-1/+1
|
* nxagent.1 man page: Grammar fix.Mike Gabriel2018-12-191-1/+1
|
* nxagent: bypass X2go's keyboard configuration hackUlrich Sibiller2018-12-193-32/+92
| | | | | | | | | | | | If X2go runs in auto keyboard mode it will pass keyboard=null/null to the agent and set the keyboard afterwards with setxkbmap. This patch lets nxagent handle that situation internally (null/null will be interpreted as clone) and disables X2go's mechanism (by creating a dir that effectively blocks it; see x2gosetkeyboard) This is only activated if the agent is run as "x2goagent". Fixes ArcticaProject/nx-libs#368
* Keyboard.c: add static keyword where appropriateUlrich Sibiller2018-12-191-5/+5
|
* nxagent: simplify keycode conversion setupUlrich Sibiller2018-12-193-16/+7
|
* nxagent: store remote keyboard in global variablesUlrich Sibiller2018-12-193-111/+106
| | | | This avoids some roundtrips.
* nxagent: add additional keyboard config option rmlvoUlrich Sibiller2018-12-192-7/+38
| | | | Add possibility to pass more than model and layout via the keyboard parameter.
* nxagent: add keyboard=clone configuration optionUlrich Sibiller2018-12-193-9/+44
| | | | | | | | | | | | | | | | Specifying -keyboard clone (or keyboard=clone in options) will clone XKB keyboard from the remote x server. This way many keyboard problems will hopefully never return... Should be the default but is not (yet) for compatibility reasons. Fixes ArcticaProject/nx-libs#373 (except the "do autoconf if no keyboard is provided" feature.) References: ArcticaProject/nx-libs#240 ArcticaProject/nx-libs#368
* Reconnect.c: restore old keyboard value if no new one is givenUlrich Sibiller2018-12-191-0/+11
| | | | | | | It may not fully fix the issue mentioned below but it does for the -keyboard commandline option at least. Fixes ArcticaProject/nx-libs#741
* Keyboard.c: remove non-fitting commentUlrich Sibiller2018-12-191-6/+0
| | | | Describes a check we are not doing here anymore...
* nxagent: fix references to default rules in manpageUlrich Sibiller2018-12-191-2/+2
| | | | we have changed that to base some time ago.
* Keyboard.c: improve creation of keyboard config fileUlrich Sibiller2018-12-191-16/+28
| | | | | | | | It will now create better working config files. References: ArcticaProject/nx-libs#239 ArcticaProject/nx-libs#368
* Keyboard.c: reformat nxagentKeycodeConversionSetupUlrich Sibiller2018-12-191-19/+18
|
* Keyboard.c: use 'variant' all over the placeUlrich Sibiller2018-12-191-4/+4
| | | | avoid mix of 'variant' and 'variants'
* Keyboard.c: rename variables to better reflect their meaningUlrich Sibiller2018-12-191-25/+25
|
* Keyboard.c: refactor keycode conversionUlrich Sibiller2018-12-191-38/+56
| | | | we'll need the remote xkb in KeyboardProc in future so let's move it up.
* Keyboard.c: move keyboard file creation to extra functionUlrich Sibiller2018-12-191-51/+57
|
* manpage: reformat some linesUlrich Sibiller2018-12-191-4/+4
|
* manpage: add -nameUlrich Sibiller2018-12-191-0/+5
| | | | (partially) fixes ArcticaProject/nx-libs#666
* manpage: add/extend -dpi/-autodpiUlrich Sibiller2018-12-191-4/+17
| | | | (partially) fixes ArcticaProject/nx-libs#666
* manpage: add -geometryUlrich Sibiller2018-12-191-0/+19
| | | | (partially) fixes ArcticaProject/nx-libs#666
* manpage: add -depthUlrich Sibiller2018-12-191-0/+9
| | | | (partially) fixes ArcticaProject/nx-libs#666
* manpage: add -classUlrich Sibiller2018-12-191-0/+32
| | | | (partially) fixes ArcticaProject/nx-libs#666
* manpage: add -fullUlrich Sibiller2018-12-191-0/+11
| | | | (partially) fixes ArcticaProject/nx-libs#666
* manpage: add -syncUlrich Sibiller2018-12-191-0/+6
| | | | (partially) fixes ArcticaProject/nx-libs#666
* fb: fix fast-path blt detectionUlrich Sibiller2018-12-191-27/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport of this commit: commit a2880699e8f1f576e1a48ebf25e8982463323f84 Author: Keith Packard <keithp@keithp.com> Date: Tue Mar 25 08:21:16 2014 -0700 fb: fix fast-path blt detection The width parameter is used to disable the blit fast-path (memcpy) when source and destination rows overlap in memory. This check was added in [0]. Unfortunately, the calculation to determine if source and destination lines overlapped was incorrect: (1) it converts width from pixels to bytes, but width is actually in bits, not pixels. (2) it adds this byte offset to dst/srcLine, which implicitly converts the offset from bytes to sizeof(FbBits). Fix both of these by converting addresses to byte pointers and width to bytes and doing comparisons on the resulting byte address. For example: A 32-bpp 1366 pixel-wide row will have width = 1366 * 32 = 43712 bits bpp = 32 (bpp >> 3) = 4 width * (bpp >> 3) = 174848 FbBits (FbBits *)width => 699392 bytes So, "careful" was true if the destination line was within 699392 bytes, instead of just within its 1366 * 4 = 5464 byte row. This bug causes us to take the slow path for large non-overlapping rows that are "close" in memory. As a data point, XGetImage(1366x768) on my ARM chromebook was taking ~140 ms, but with this fixed, it now takes about 60 ms. XGetImage() -> exaGetImage() -> fbGetImage -> fbBlt() [0] commit e32cc0b4c85c78cd8743a6e1680dcc79054b57ce Author: Adam Jackson <ajax@redhat.com> Date: Thu Apr 21 16:37:11 2011 -0400 fb: Fix memcpy abuse The memcpy fast path implicitly assumes that the copy walks left-to-right. That's not something memcpy guarantees, and newer glibc on some processors will indeed break that assumption. Since we walk a line at a time, check the source and destination against the width of the blit to determine whether we can be sloppy enough to allow memcpy. (Having done this, we can remove the check for !reverse as well.) v3: Convert to byte units This first checks to make sure the blt is byte aligned, converts all of the data to byte units and then compares for byte address range overlap between source and dest. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
* fb: Fix memcpy abuseUlrich Sibiller2018-12-191-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes ArcticaProject/nx-libs#750 Backport of this commit: commit e32cc0b4c85c78cd8743a6e1680dcc79054b57ce Author: Adam Jackson <ajax@redhat.com> Date: Thu Apr 21 16:37:11 2011 -0400 fb: Fix memcpy abuse The memcpy fast path implicitly assumes that the copy walks left-to-right. That's not something memcpy guarantees, and newer glibc on some processors will indeed break that assumption. Since we walk a line at a time, check the source and destination against the width of the blit to determine whether we can be sloppy enough to allow memcpy. (Having done this, we can remove the check for !reverse as well.) On an Intel Core i7-2630QM with an NVIDIA GeForce GTX 460M running in NoAccel, the broken code and various fixes for -copywinwin{10,100,500} gives (edited to fit in 80 columns): 1: Disable the fastpath entirely 2: Replace memcpy with memmove 3: This fix 4: The code before this fix 1 2 3 4 Operation ------ --------------- --------------- --------------- ------------ 258000 269000 ( 1.04) 544000 ( 2.11) 552000 ( 2.14) Copy 10x10 21300 23000 ( 1.08) 43700 ( 2.05) 47100 ( 2.21) Copy 100x100 960 962 ( 1.00) 1990 ( 2.09) 1990 ( 2.07) Copy 500x500 So it's a modest performance hit, but correctness demands it, and it's probably worth keeping the 2x speedup from having the fast path in the first place. Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
* Fix uninitialized bytesUlrich Sibiller2018-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | Fixes this valgrind finding ==16977== Warning: invalid file descriptor -1 in syscall close() ==16977== Conditional jump or move depends on uninitialised value(s) ==16977== at 0x544B6B: XkbSendNewKeyboardNotify (xkbEvents.c:62) ==16977== by 0x540481: ProcXkbGetKbdByName (xkb.c:5330) ==16977== by 0x4341C5: Dispatch (NXdispatch.c:482) ==16977== by 0x40EB02: main (main.c:353) ==16977== Uninitialised value was created by a heap allocation ==16977== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==16977== by 0x431BD7: NextAvailableClient (dispatch.c:3719) ==16977== by 0x47B297: AllocNewConnection (connection.c:821) ==16977== by 0x47B297: EstablishNewConnections (connection.c:910) ==16977== by 0x463DFE: ProcessWorkQueue (dixutils.c:541) ==16977== by 0x47635E: WaitForSomething (WaitFor.c:213) ==16977== by 0x434089: Dispatch (NXdispatch.c:360) ==16977== by 0x40EB02: main (main.c:353)
* xkb: Initialize pad bytes sent in replies of geometry requests.Ulrich Sibiller2018-12-181-3/+9
| | | | | | | | | | | | | | | | | | Backport of commit dc9ce695a69ca0787f58f8d160212a7a41acb703 Author: Rami Ylimäki <rami.ylimaki@vincit.fi> Date: Wed Mar 9 15:45:40 2011 +0200 xkb: Initialize pad bytes sent in replies of geometry requests. Valgrind complains about uninitialized data being written to clients. Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi> Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Fix crash due to uninitialized VModMap fields.Ulrich Sibiller2018-12-171-2/+4
| | | | | | | | | | | | | | | | | | | | | | Backport of commit 81b3b0cce088866dc3cda099d7c8d6655849fd43 Author: Tomas Janousek <tomi@nomi.cz> Date: Wed May 20 15:03:01 2009 +0200 Bug #6428, #16458, #21464: Fix crash due to uninitialized VModMap fields. In ProcXkbGetKbdByName, mrep.firstVModMapKey, .nVModMapKeys and .totalVModMapKeys were not initialized, contained random values and caused accesses to unallocated and later modified memory, causing XkbSizeVirtualModMap and XkbWriteVirtualModMap to see different number of nonzero values, resulting in writes past the end of an array in XkbSendMap. This patch initializes those values sensibly and reverts commits 5c0a2088 and 6dd4fc46, which have been plain non-sense. Signed-off-by: Tomas Janousek <tomi@nomi.cz> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* release 3.5.99.173.5.99.17Mike Gabriel2018-11-201-1/+1
|
* nx-X11/config/cf/nxcompile.def: Rephrase header comment slightly.Mike Gabriel2018-11-111-1/+1
|
* imake: adapt output to automake output as seen in lib/srcUlrich Sibiller2018-11-111-1/+1
|
* imake: also silence makedependUlrich Sibiller2018-11-111-4/+9
|
* silence imake compilationUlrich Sibiller2018-11-112-1/+26
| | | | | Suppress printing the rm and the cc call for every file. Only print the compiler call in case of error.
* Makefile: Rework handling auto-determined values for imakeUlrich Sibiller2018-11-101-0/+2
| | | | | create a new def file nxconfig.def and be fine. The settings in that file will be respected by all subsequent imake calls anywhere in the tree.