aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent/Screen.c
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* library clean-up: Don't build libNX_Xrandr anymore. Use system's libXrandr ↵Mike Gabriel2015-05-201-1/+1
| | | | shared library.
* Set WM_CLASS to X2GoAgent/NXAgent (300_nxagent_set-wm-class.full.patch).Oleksandr Shneyder2015-02-101-0/+36
| | | | | | | | | | | | | | Depending on the binary name of the agent either NXAgent or X2GoAgent is set as WM_Class. This is needed for some window managers (like the one shipped with Maemo) The original WM_CLASS patch has been taken from the FreeNX patch series, author unknown. The nxagent/x2goagent has been done by the X2Go Project, author see below.
* Create Windows and fix drawing issues on Big Endian 64bit systems ↵Mihai Moldovan2015-02-101-1/+4
| | | | | | | | | | | | | | | | | | | (057_nx-X11_sanitize-eventmasks.full.patch). Multiple endiannes issues were setting incorrect event masks when creating and drawing X11 windows. This time, a smaller integer has been casted to a bigger one and passed to some function actually setting its value. This meant, that garbage from stack was attached to the smaller integer value, putting unknown memory into the lower bytes of the bigger integer. Fix this by creating a big, initialized temporary variable, let the function do its magic on that one and pass the value back to the smaller variable--and cross your fingers the smaller variable can hold it without overrunning. (The last bit is a design issue we can't really fix and has been around even before this patch.)
* Revert "release 3.5.0.19"Mike Gabriel2013-03-281-36/+0
| | | | This reverts commit e77bf36d9afbc7e56522574b06217d57c11dd095.
* release 3.5.0.19Mike Gabriel2013-03-281-0/+36
|
* Imported nxagent-3.5.0-9.tar.gznxagentMike Gabriel2012-05-221-0/+3
| | | | | | | | Summary: Imported nxagent-3.5.0-9.tar.gz Keywords: Imported nxagent-3.5.0-9.tar.gz into Git repository
* Imported nxagent-3.5.0-7.tar.gznxagent/3.5.0-7Mike Gabriel2011-12-281-20/+61
| | | | | | | | Summary: Imported nxagent-3.5.0-7.tar.gz Keywords: Imported nxagent-3.5.0-7.tar.gz into Git repository
* Imported nxagent-3.5.0-5.tar.gznxagent/3.5.0-5Reinhard Tartler2011-10-101-88/+142
| | | | | | | | Summary: Imported nxagent-3.5.0-5.tar.gz Keywords: Imported nxagent-3.5.0-5.tar.gz into Git repository
* Imported nxagent-3.5.0-2.tar.gznxagent/3.5.0-2Reinhard Tartler2011-10-101-4/+191
| | | | | | | | Summary: Imported nxagent-3.5.0-2.tar.gz Keywords: Imported nxagent-3.5.0-2.tar.gz into Git repository
* Imported nxagent-3.4.0-9.tar.gznxagent/3.4.0-9Reinhard Tartler2011-10-101-51/+0
| | | | | | | | Summary: Imported nxagent-3.4.0-9.tar.gz Keywords: Imported nxagent-3.4.0-9.tar.gz into Git repository
* Imported nxagent-3.4.0-8.tar.gznxagent/3.4.0-8Reinhard Tartler2011-10-101-220/+14
| | | | | | | | Summary: Imported nxagent-3.4.0-8.tar.gz Keywords: Imported nxagent-3.4.0-8.tar.gz into Git repository
* Imported nxagent-3.4.0-5.tar.gznxagent/3.4.0-5Reinhard Tartler2011-10-101-1/+1
| | | | | | | | Summary: Imported nxagent-3.4.0-5.tar.gz Keywords: Imported nxagent-3.4.0-5.tar.gz into Git repository
* Imported nxagent-3.4.0-3.tar.gznxagent/3.4.0-3Reinhard Tartler2011-10-101-30/+100
| | | | | | | | Summary: Imported nxagent-3.4.0-3.tar.gz Keywords: Imported nxagent-3.4.0-3.tar.gz into Git repository