aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent/Screen.c
Commit message (Collapse)AuthorAgeFilesLines
* hw/nxagent/Screen.c: Settle down with 96 DPI as the default resolution, if ↵Simon Matter2018-03-011-1/+1
| | | | | | nothing better can be detected. Fixes ArcticaProject/nx-libs#668.
* nxagent: Auto-detect client-side DPI at session startup.Simon Matter2018-02-271-3/+39
|
* hw/nxagent/: Use <function>(void) rather than <function>().Mike Gabriel2018-02-261-2/+2
|
* Screen.c: Fix wrong function names in TEST outputUlrich Sibiller2018-02-051-1/+1
|
* hw/nxagent/Screen.c: Additionally check for noRRXineramaExtension set to ↵Mike Gabriel2018-01-161-1/+1
| | | | | | FALSE before using the nxagentAdjustRandRXinerama() function and providing a Xinerama-like user experience. Fixes ArcticaProject/nx-libs#634.
* Screen.c: string handling improvementsUlrich Sibiller2018-01-071-16/+10
|
* nx-X11/programs/Xserver/hw/nxagent/Screen.c: re-enable normal error/warning ↵Mihai Moldovan2017-12-241-2/+2
| | | | | | output. Was dropped erroneously in cec31e2f06b29b332ee78cfefeefa7bfa136be75.
* nx-X11/programs/Xserver/hw/nxagent/Screen.c: update screen size after ↵Mihai Moldovan2017-12-241-0/+7
| | | | | | | modifying CRTC modes. This should get rid of the infamous "800x600 screen size" issue reproduced in X2Go whole display setups.
* always notify on size changesUlrich Sibiller2017-12-131-7/+1
| | | | this ensures that randr updates its private structures
* re-implement pre-xinerama behaviourUlrich Sibiller2017-12-131-20/+105
| | | | | If -rrxinerama was specified xrandr handling was broken. Adding/using a custom resolution via xrandr was not working anymore.
* simply free() callsUlrich Sibiller2017-11-211-35/+11
| | | | free() can handle NULL so there's no need to check this ourselves
* Report Xlib-side window IDs to session.log in machine readable form. This ↵Mike Gabriel2017-07-051-4/+14
| | | | feature can be enabled by the cmdline options -reportwids and -reportprivatewids.
* hw/nxagent/Pixmap.c et al.: Propagate usage_hint through ↵Mike Gabriel2017-04-101-1/+1
| | | | nxagentCreatePixmap, as well.
* xserver: remove index from CloseScreen (API/ABI breakage)Dave Airlie2017-04-101-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* nxagent: Use SetNotifyFd to receive events.Mike Gabriel2017-03-171-1/+1
| | | | | | | | | | | | | Inspired by X.org commit: commit 55c2e1a3aa587c58a74066724e11e30b3df267b8 Author: Keith Packard <keithp@keithp.com> Date: Mon Dec 7 15:11:33 2015 -0800 xnest: Use SetNotifyFd to receive events Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
* Screen.c: clean up superfluous whitespaceUlrich Sibiller2017-02-081-4/+3
|
* Screen.c: Ensure that an output is unused before destroying itUlrich Sibiller2017-02-081-14/+28
| | | | Fixes ArcticaProject/nx-libs#293
* Screen.c: more debug output formatting improvementsUlrich Sibiller2016-12-071-8/+8
|
* Screen.c: fix uninitalized variableUlrich Sibiller2016-12-071-0/+1
|
* Screen.c: fix compile warnings in DEBUG modeUlrich Sibiller2016-12-071-5/+5
|
* Screen.c: fix formattingUlrich Sibiller2016-12-071-9/+9
|
* Screen.c: improve debugging outputUlrich Sibiller2016-12-071-7/+29
|
* slightly improve rrxinerama debug outputUlrich Sibiller2016-12-031-12/+12
|
* Fix compilation warningsUlrich Sibiller2016-12-031-7/+7
|
* nxcompext: Move code into Xserver subtree, as nxcompext requires Xserver ↵Mike Gabriel2016-11-151-1/+1
| | | | | | includes at build time. Fixes ArcticaProject/nx-libs#276.
* Fix FTBFS with gcc 4.4Ulrich Sibiller2016-10-011-2/+0
| | | | | | | This fixes ArcticaProject/nx-libs#204. However, this fix does not address the root of the problem, it simply avoids it. We could run into it again... See bugreport for an explanation.
* Per-file copyright notices: Update copyright information in file headers ↵Mike Gabriel2016-07-061-7/+15
| | | | that NoMachine placed there own copyright statement in.
* nx-X11/programs/Xserver: Drop {X,x}alloc() macros, use malloc() instead.Mike Gabriel2016-07-021-16/+16
|
* nx-X11/programs/Xserver: Drop {X,x}free() macros, use free() instead.Mike Gabriel2016-07-021-19/+19
| | | | Fixes ArcticaProject/nx-libs#105
* Screen.c: fix RRGetInfo callUlrich Sibiller2016-06-251-1/+1
|
* Xinerama: undef debug/test flagsUlrich Sibiller2016-06-251-4/+4
|
* Backport RANDR proto version 1.5 to nx-X11's Xserver.Mike Gabriel2016-06-211-1/+1
| | | | | Backported to X.org's /xorg/xserver Git hash level: a6b6e8ba026acedef6336b17adf06aebddd5f22f.
* Move each screen's root-window pointer into ScreenRec.Mike Gabriel2016-06-211-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | Backported from X.org: commit e7fae9ecc42ab5e73b89117722dbf4117d928f9a Author: Jamey Sharp <jamey@minilop.net> Date: Sat May 22 00:26:28 2010 -0700 Move each screen's root-window pointer into ScreenRec. Many references to the WindowTable array already had the corresponding screen pointer handy, which meant they usually looked like "WindowTable[pScreen->myNum]". Adding a field to ScreenRec instead of keeping this information in a parallel array simplifies those expressions, and eliminates a MAXSCREENS-sized array. Since dix uses this data, a screen private entry isn't appropriate. xf86-video-dummy currently uses WindowTable, so it needs to be updated to reflect this change. Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Tiago Vignatti <tiago.vignatti@nokia.com> Tested-by: Tiago Vignatti <tiago.vignatti@nokia.com> (i686 GNU/Linux) Backport to nx-libs: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* Properly enable/disable Xinerama support in nxagent via cmdline options ↵Mike Gabriel2016-06-211-5/+0
| | | | | | | | | | | | | | | | | | | provider in Xserver/os/utils.c. * Xinerama defaults to enabled, using RRXineramaExtension (i.e. cmdline option: +rrxinerama). * Cmdline option -rrxinerama disables Xinerama support entirely. * Cmdline option +xinerama switches from RRXineramaExtension to PanoramiXExtension. * Cmdline option -xinerama is actually non-functional (i.e. the default). * If the nx/nx option "xinerama" is handed over to nxagent, then Xinerama is only switched on if that given option enables it (value: 1) _and_ if either of the Xinerama extensions (PanoramiX or RRXinerama) has been initialized (via cmdline options above). Fixes ArcticaProject/nx-libs#117. Fixes ArcticaProject/nx-libs#134 (makes flawed PR#134 obsolete).
* nx-X11/programs/Xserver: Include nxcomp{,ext,shad} headers like one would do ↵Mike Gabriel2016-06-131-2/+2
| | | | with system-wide shared libraries.
* hw/nxagent/Screen.c: Cast proper types before handing values over to fprintf().Mike Gabriel2016-05-021-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amends the following compiler warnings: ``` Screen.c: In function ‘nxagentCreateIconWindow’: Screen.c:394:15: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentIconWindow); ^ Screen.c: In function ‘nxagentSetScreenSaverTime’: Screen.c:456:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘CARD32’ [-Wformat=] ScreenSaverTime, ScreenSaverInterval); ^ Screen.c:456:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘CARD32’ [-Wformat=] Screen.c:476:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘CARD32’ [-Wformat=] ScreenSaverTime, ScreenSaverInterval); ^ Screen.c:476:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘CARD32’ [-Wformat=] Screen.c: In function ‘nxagentOpenScreen’: Screen.c:1234:19: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘VisualID’ [-Wformat=] visuals[numVisuals].vid); ^ Screen.c:1274:23: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘VisualID’ [-Wformat=] depths[depthIndex].depth); ^ Screen.c:1282:17: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘VisualID’ [-Wformat=] defaultVisualIndex, visuals[defaultVisualIndex].vid); ^ Screen.c:1319:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘VisualID’ [-Wformat=] rootDepth, defaultVisual); ^ Screen.c:1336:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘VisualID’ [-Wformat=] rootDepth, defaultVisual); ^ Screen.c:1348:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘VisualID’ [-Wformat=] rootDepth, defaultVisual); ^ Screen.c:1357:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘VisualID’ [-Wformat=] rootDepth, defaultVisual); ^ Screen.c:1723:21: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentDefaultWindows[pScreen->myNum]); ^ Screen.c:1763:19: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentDefaultWindows[pScreen->myNum]); ^ Screen.c:1775:17: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentDefaultWindows[pScreen->myNum]); ^ Screen.c:1790:17: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Window’ [-Wformat=] nxagentDefaultWindows[pScreen->myNum]); ^ Screen.c: In function ‘nxagentShadowAdaptDepth’: Screen.c:3189:14: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat=] pVisual -> red_mask, pVisual -> green_mask, pVisual -> blue_mask); ^ Screen.c:3189:14: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘long unsigned int’ [-Wformat=] Screen.c:3189:14: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘long unsigned int’ [-Wformat=] Screen.c:3198:15: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat=] redMask, greenMask, blueMask); ^ Screen.c:3198:15: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘long unsigned int’ [-Wformat=] Screen.c:3198:15: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘long unsigned int’ [-Wformat=] ```
* hw/nxagent/Screen.c: Drop various unused variables.Mike Gabriel2016-05-021-10/+1
| | | | | | | | | | | | | | | | | | | | | | | Amends the following compiler warnings: ``` Screen.c: In function ‘nxagentReconnectScreen’: Screen.c:3547:7: warning: variable ‘flexibility’ set but not used [-Wunused-but-set-variable] int flexibility; ^ Screen.c: In function ‘nxagentAdjustRandRXinerama’: Screen.c:3746:12: warning: unused variable ‘j’ [-Wunused-variable] int i, j; ^ Screen.c: In function ‘nxagentSaveAreas’: Screen.c:4116:15: warning: variable ‘pDrawable’ set but not used [-Wunused-but-set-variable] DrawablePtr pDrawable; ^ Screen.c: In function ‘nxagentRestoreAreas’: Screen.c:4236:15: warning: variable ‘pDrawable’ set but not used [-Wunused-but-set-variable] DrawablePtr pDrawable; ^ ```
* hw/nxagent/Screen.h: Provide prototype for nxagentAdjustRandRXinerama(). ↵Mike Gabriel2016-05-021-0/+1
| | | | | | | | | | | | Avoid implicit-declaration compiler warning. Amends the following compiler warning: ``` Screen.c:3716:5: warning: implicit declaration of function ‘nxagentAdjustRandRXinerama’ [-Wimplicit-function-declaration] nxagentAdjustRandRXinerama(pScreen); ^ ```
* hw/nxagent/Screen.c: Correctly use already defined MIN/MAX macros.Mike Gabriel2016-05-021-4/+0
| | | | | | | | | | | | | | | | | | Use MIN(A,B) macro as defined in Utils.h. Add MAX(A,B) macro in Utils.h, as well. Don't have another set of MIN/MAX macro definitions in Screen.c. Amends the following compiler warnings: ``` Screen.c:3600:0: warning: "MIN" redefined #define MIN(a,b) ((a) < (b)) ? (a) : (b); ^ In file included from Screen.c:78:0: Utils.h:36:0: note: this is the location of the previous definition #define MIN(A, B) ( (A) < (B) ? (A) : (B) ) ^ ```
* Rename region macros to eliminate screen argumentMike Gabriel2016-05-021-59/+59
| | | | | | | | | | | | | | | | | | | | | This is a huge mechanical patch and a few small fixups required to finish the job. They were reviewed separately, but because the server does not build without both pieces, I've merged them together at this time. The mechanical changes were performed by running the included 'fix-region' script over the whole nx-X11/programs/Xserver tree: $ cd nx-X11/programs/Xserver && ( git ls-files | grep -v '^fix-' | xargs ./fix-region; ) And then, the white space errors in the resulting patch were fixed using the provided fix-patch-whitespace script. $ sh ./fix-patch-whitespace Thanks to Jamey Sharp for the mighty fine sed-generating sed script. v1: Keith Packard <keithp@keithp.com> (X.Org xserver commit: 2dc138922b7588515d5f2447e4b9dcdc0bef15e0) v2: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> (apply fix-region script to nx-libs)
* Xinerama: do not cut off at outer edgesUlrich Sibiller2015-12-301-2/+76
| | | | | | | | | | | | | | | | | | | | | This fixes the problem Mike Gabriel describes like this: - Launch a session on a system with a single monitor. Enable Xinerama for this session. - Open a desktop session in that session window (e.g. MATE or XFCE). - Move the NX/MATE-or-XFCE session window around on that one monitor. Bump at the borders, so that the session window moves into the invisible parts around your monitor. What you see is that the MATE-or-XFCE window manager will become really busy with resizing the windows and panels in the NX session, because moving the window over the physical borders of the display will trigger resize events. This is non-intuitive, I think. Same with multi-monitors on the outside edges of the physical Xorg RandR setup.
* Provide support for re-enabling Xinerama on session resumptions.Mike Gabriel2015-12-301-2/+4
| | | | | | | | | | | | | | By design, when resuming a session, Xinerama can only be re-enabled by NX option parsing. Thus, this change introduces a "xinerama" NX option that can be loaded via an options file into NX agent when resuming a session. The new xinerame NX session option also allows switching on Xinerama at session startup via an option file. When implementing the new NX Xinerama support into clients (like TheQVD, X2Go Client, etc., this new xinerama NX option should be used for activating Xinerama in the NX / QVD / X2Go session.
* Screen.c: Rename NX_USE_MODE_PREFIX to NXAGENT_RANDR_MODE_PREFIX, fix ↵Mike Gabriel2015-12-301-3/+2
| | | | unclosed comment.
* Screen.c: restructure xinerama code, much shorter nowUlrich Sibiller2015-12-301-64/+40
|
* Screen.c: Fix freeing of unsued modesUlrich Sibiller2015-12-301-9/+28
|
* Screen.c: improve comments and DEBUG outputUlrich Sibiller2015-12-301-24/+59
|
* Reimplement xinerama via randr in nxagent (not libNX_Xinerama). (Fixes ↵Ulrich Sibiller2015-12-301-67/+361
| | | | | | | | | ArcticaProject/nx-libs#23). No more xinerama faking, just use existing xrandr extension and initalize it properly. Xinerama then works automatically. Fixes ArcticaProject/nx-libs#23
* library clean-up: Don't build libNX_Xinerama anymore. Use system's ↵Mike Gabriel2015-12-301-0/+4
| | | | | | | | | | libXinerama shared library. (Fixes ArcticaProject/nx-libs#49). This commit goes along with a patch from Ulrich Sibiller who managed to move the Xinerama awareness for NX sessions into the Xserver code. This makes Xinerama support for NX in libNX_Xinerama.so obsolete. Fixes ArcticaProject/nx-libs#49
* Clear header file namespace separation (<X11/...> vs. <nx-X11/...>).Mike Gabriel2015-12-281-2/+2
| | | | | | | | | | | | | | | | | | | | In the process of building nxagent against more and more system-wide installed X.org libraries, we come to the limit of including structs from this (bundled nx-X11) and that (system-wide X.Org) library. This commit introduces a clear namespace separation of headers provided by nx-X11 and headers provided by X.Org. This approach is only temporary as we want to drop all nx-X11 bundled libraries from nx-libs. However, for a while we need to make this separation clear and also ship some reduced fake X.Org headers that avoid pulling in libX* and libNX_X* symbols at the same time. This patch has been tested on Debian jessie and unstable and requires no overall testing on various distros and distro versions, as we finally will drop all libNX_X* libraries and build against X.org's client libs. For now, this hack eases our development / cleanup process.
* Replace 'pointer' type with 'void *'Keith Packard2015-12-281-11/+11
| | | | | | | | | | This lets us stop using the 'pointer' typedef in Xdefs.h as 'pointer' is used throughout the X server for other things, and having duplicate names generates compiler warnings. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Eric Anholt <eric@anholt.net> Rebased against NX: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>