summaryrefslogtreecommitdiff
path: root/miext/rootless
AgeCommit message (Collapse)AuthorFilesLines
2010-08-12XQuartz: Make application switching work better for the no-spaces caseJeremy Huddleston2-5/+11
We still have the issue with not raising the frontmost window for the case when spaces is enabled, and the AppleSpacesSwitchOnActivate preference is disabled. Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-08-10rootless: fix uninitialized private key assert in non-rootless modes in Cygwin/XJon TURNEY1-0/+3
IsFramedWindow() is called from miPaintWindow() if the server has been built with ROOTLESS defined, irrespective of if RootlessInit() has ever been called, or not. Add a check to IsFramedWindow() to check if rootlessWindowPrivateKey has been registered (as a proxy for checking if the rootless extension has been initialized) so we don't go on to try to use that key, triggering an assert. This bug exposes what appears to be a difference in opinion about the rootless extension between XQuartz and XWin. XQuartz always initializes the rootless extension, whereas XWin offers several modes of operation, and the rootless extension is only used for one of them That probably means that the all code under compile time guard for ROOTLESS should be carefully checked that it doesn't also need to be under a run-time guard (I've reviewed the other ROOTLESS blocks in dix/events.c and dix/window.c and they look ok -- keithp) Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-07-19rootless: Adjust the frame size of the native root window in ↵Jan Hauffa1-0/+7
RootlessResizeWindow If the native root window isn't resized as well, we will likely crash the next time we draw to the root. On OS X, this can be seen by: 1) Put the display preferences in the menu bar and set X11's preferences so you can access the menu bar in fullscreen mode 2) Set the resolution of your screen lower than normal. 3) Start X11 in fullscreen mode. The root window will cover the screen as expected. 4) Use the menu bar to increase the resolution of the display. The root window will now cover the old area and not the full screen, but 'xwininfo -root' will report the full width. 5) Run 'xsetroot -solid red', and we have the crash you mention above. Leaving/entering fullscreen after #4 will fix the problem. This is because the WINREC is erased when we leave fullscreen mode and it is recreated upon re-entry: RootlessUpdateRooted(FALSE) RootlessDisableRoot(screenInfo.screens[0]) RootlessDestroyFrame (pRoot, winRec); RootlessUpdateRooted(TRUE) RootlessEnableRoot(screenInfo.screens[0]) RootlessEnsureFrame(screenInfo.screens[0]->pRoot) creates a new WINREC... Signed-off-by: Jan Hauffa <hauffa@in.tum.de> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> Acked-By: Jon TURNEY <jon.turney@dronecode.org.uk> Tested-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-06-10Remove unnecessary parentheses around return values in functionsMikhail Gusarov1-1/+1
This patch was generated by the following Perl code: perl -i -pe 's/([^_])return\s*\(\s*([^(]+?)\s*\)s*;(\s+(\n))?/$1return $2;$4/g;' Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net> Reviewed-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-06-05Clean up after removal of screen parameters from region macros.Jamey Sharp3-28/+13
Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Keith Packard <keithp@keithp.com>
2010-06-05Change the devPrivates API to require dixRegisterPrivateKeyKeith Packard2-15/+22
This patch only changes the API, not the implementation of the devPrivates infrastructure. This will permit a new devPrivates implementation to be layed into the server without requiring simultaneous changes in every devPrivates user. Signed-off-by: Keith Packard <keithp@keithp.com> Tested-by: Tiago Vignatti <tiago.vignatti@nokia.com>
2010-06-05Rename region macros to eliminate screen argumentKeith Packard4-106/+106
This is a combination of 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 tree: $ 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. The hand-done changes involve removing functions from dix/region.c that duplicate inline functions in include/regionstr.h, along with their declarations in regionstr.h, mi.h and mispans.h. Reviewed-by: Jamey Sharp <jamey@minilop.net> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-06-05rootless: Fix SetShape regressionJeremy Huddleston2-3/+3
This fixes a regression in miext/rootless from 643cb6e87c10ab554c03ada81930001a8ebcc909 Found-by: tinderbox Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Pierre-Loup A. Griffais <pgriffais@nvidia.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-06-03Move each screen's x/y origin into ScreenRec.Jamey Sharp1-4/+4
Many references to the dixScreenOrigins array already had the corresponding screen pointer handy, which meant they usually looked like "dixScreenOrigins[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 declared the dixScreenOrigins array, I figure allocating a screen private for these values is overkill. 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)
2010-06-03Move each screen's root-window pointer into ScreenRec.Jamey Sharp4-11/+15
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)
2010-05-13Replace X-allocation functions with their C89 counterpartsMikhail Gusarov2-11/+11
The only remaining X-functions used in server are XNF*, the rest is converted to plain alloc/calloc/realloc/free/strdup. X* functions are still exported from server and x* macros are still defined in header file, so both ABI and API are not affected by this change. Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-02rootless: Remove an unneeded commentJeremy Huddleston1-4/+0
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-04-19unifdef -B -DRENDER to always include RENDER codeKeith Packard2-10/+0
This patch was created with: git ls-files '*.[ch]' | while read f; do unifdef -B -DRENDER -o $f $f; done Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-17os: Prevent core dump from being truncated.Rami Ylimaki1-1/+1
The problem fixed by this patch can be reproduced on Linux with the following steps. - Access NULL pointer intentionally in ProcessOtherEvent on key press. - Instead of saving core dump to a file, write it into a pipe. echo "|/usr/sbin/my-core-dumper" > /proc/sys/kernel/core_pattern - Dump the core by pressing a key. While the core is being dumped into the pipe, the smart schedule timer will cause a pending SIGALRM. Linux kernel stops writing data to the pipe when there are pending signals. This causes the core dump to be truncated. On my system I'm expecting a 6 MB dump but the size will be 60 kB instead. The problem is solved if we block the SIGALRM caused by expired smart schedule timer. I haven't been able to reproduce this problem in the following cases. - Save core dump to a file instead of a pipe. - kill -SEGV `pidof Xorg` - Press a key to dump core while gdb is attached to Xorg. - Give option -dumbSched to Xorg. Also note that the fix works only when NoTrapSignals has the default value FALSE. The problem can still be reproduced if error signals aren't trapped. In addition to pending SIGALRM, there is a similar problem with pending SIGIO from the keyboard driver during core dump. Signed-off-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-08Miscellaneous compilation warning fixesJeremy Huddleston1-1/+1
main.c:134: warning: no previous prototype for 'dix_main' rootlessScreen.c: In function 'RootlessMarkOverlappedWindows': rootlessScreen.c:434: warning: function declaration isn't a prototype backtrace.c:51: warning: format '%lx' expects type 'long unsigned int', but argument 5 has type 'int' backtrace.c:54: warning: format '%lx' expects type 'long unsigned int', but argument 5 has type 'int' set.c: In function 'RecordSetMemoryRequirements': set.c:413: warning: old-style function definition set.c: In function 'RecordCreateSet': set.c:425: warning: old-style function definition stub.c: In function ‘main’: stub.c:236: warning: ISO C90 forbids mixed declarations and code Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
2009-10-13Rootless: src drawable window can now be NULLJeremy Huddleston1-2/+2
Fix a possible crash when pSrc->pDrawable is NULL. Signed-off-by: Colin Harrison <colin.harrison@virgin.net> Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org> Signed-off-by: Keith Packard <keithp@keithp.com>
2009-10-13Rootless: Abstract some of the Xplugin specific stuff which has crept into ↵Jeremy Huddleston5-68/+26
rootlessWindow.c The rootless extension now directly calls some Xplugin functions, and relies on types defined in Xplugin.h, which isn't very abstracted :-) This patch is a start at abstracting some of the Xplugin specific stuff which has crept into rootlessWindow.c. This has been done in a pretty mindless fashion, without much thought as to if the additions to the generic rootless interface are the correct ones There is some confusion as to if RootlesscolormapCallback() returns a Bool or xp_error_enum value (not so abstact), but I have no way of checking, of finding out if Xplugin actually checks the result :-) Based on patches from Colin Harrison, Jon Turney and Yaakov Selkowitz Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org> Signed-off-by: Keith Packard <keithp@keithp.com>
2009-09-27Rootless: Correct border rendering on parent-relative windowsJeremy Huddleston1-0/+26
Resurected code from the punted RootlessPaintBackground/Border and added it conditionally to miPaintWindow (cherry picked from commit cf2e3312cff3f341e9edba8c321a4ca7ffd8748e)
2009-06-06Rootless: Use serverClient instead of NullClientJeremy Huddleston1-1/+1
This seems to stop the crash when moving windows. (cherry picked from commit fcd857c8e295ac7a2b0e58d49dc71251ed9d1266)
2009-06-06Rootless: Despite its name, we still want to allow rootless to mess with the ↵Jeremy Huddleston1-53/+0
root window This fixes the bug whereby we weren't drawing the contents of the root window since RootlessPaintWindowBackground got nuked. (cherry picked from commit bb0e208787739fbed2a0c8d1af6b6504319fdf88)
2009-06-03s/MIN/min/, s/MAX/max/ (#2968)Adam Jackson3-16/+11
2009-05-29Rootless: Use miPaintWindow since PaintWindowBackground is deadJeremy Huddleston1-2/+1
(cherry picked from commit 4975c087257b52189a5c21d93d121f183e60e4c8)
2009-04-10XQuartz: Update window levels when changing rootless stateJeremy Huddleston2-0/+2
(cherry picked from commit 1359ded5bfc14a80fb998b01a54ecacb96c4ff88)
2009-04-10XQuartz: Properly set the window level for the root windowJeremy Huddleston1-8/+0
(cherry picked from commit bdf9286d1cbfeaaf8eaf03d28091e91ee587ee25)
2009-01-22Remove a bunch of useless casts.Adam Jackson1-1/+1
We've had void * for twenty years now people let's try to act like we know how it works.
2008-12-21XQuartz: Get rid of white rectangle bugJeremy Huddleston1-2/+5
(cherry picked from commit 3269959033ed0c675a3a906666454df34086896a)
2008-12-21rootless: Make expose_1 staticJeremy Huddleston1-1/+1
(cherry picked from commit 60c8d2697036a125ca5381df8e2eaedabad4d242)
2008-10-31Rootless: LP64 related casting fixes from Bob MurphyJeremy Huddleston2-4/+6
(cherry picked from commit 40441c4e31167932721a79d7ca572caaa1d36e72)
2008-10-31Rootless: Force initialization of static variable before use.Jeremy Huddleston1-8/+1
(cherry picked from commit cece29317269385aa7a0d3047e6f90e6a17d01eb)
2008-10-23miext/rootless: Silence some warnings by using proper C prototypes.Jeremy Huddleston2-38/+65
(cherry picked from commit 050e46e09efcc7e6f090fa4a749e9076c972b760)
2008-10-23miext/rootless: Fix the usage of DeleteProperty so that this builds again.George Peter Staplin1-7/+17
(cherry picked from commit 3de250e28a9a86bcae4464a15c2025805877ce1e)
2008-10-23Rootless: Properly typed expose_1Jeremy Huddleston1-2/+1
(cherry picked from commit 78e874fe17174ac8f61586573edaf7f16ece7b21)
2008-10-08XQuartz: Some motion made towards supporting fullscreen.Jeremy Huddleston3-1/+156
(cherry picked from commit 99be3d68b64059caada739a373e5e01844c776e0)
2008-09-12XQuartz: 256 color supportJeremy Huddleston2-1/+3
(cherry picked from commit 8dd6d5c825d457f26b41b79d02d57ed4a5ecf1f5)
2008-09-12XQuartz: Remove decls of crashtracer strings that we don't use anymore in hereJeremy Huddleston1-7/+0
(cherry picked from commit 4a653c6bfd270f2960a8c7e726e7628cfc3c9051)
2008-09-12XQuartz: Fixed a crash in RootlessNativeWindowMovedJeremy Huddleston1-23/+2
(cherry picked from commit a16048cec08e173ce42a78a77704f5fdfcb4480f)
2008-08-29XQuartz: Added debugging output to the crash log to help track down two ↵Jeremy Huddleston1-2/+31
crashes, since people don't often report their system.log spew. (cherry picked from commit aaf0f71db197526b6b866cc1b39fbdfe051879ef)
2008-08-28Prepare for array-index based devPrivates.Tomas Carnecky1-4/+8
TODO: static indices can be made just an int; some indices can be combined.
2008-07-24Shape extension is built-in and mandatory.Adam Jackson5-20/+0
2008-05-05Rootless: mi doesn't let us resize root, so we need to do it ourselves...Jeremy Huddleston1-25/+46
(cherry picked from commit c1ec36e28cff857664090cc8792db1ae93b783fa)
2008-04-21Make rootless use dixLookupClient rather than deprecated LookupClient.Jeremy Huddleston1-25/+31
(cherry picked from commit 582b5b01f9697b66489ea906a2ecb8bfc5915571)
2008-04-21Nuke a call to deprecated LookupClient, and hopefully prevent aBen Byer1-5/+1
null-pointer dereference, too! (cherry picked from commit 3d28e9f953709914e18807bc74c241333671cb30)
2008-04-19Rootless: Kill off rlAccelJeremy Huddleston11-1540/+0
2008-04-18random flailingBen Byer1-1/+1
(cherry picked from commit 7fb9b2dc615a3bd1a3c087438af7a8b88265cfaa)
2008-04-16XQuartz: Don't enable rootless accelerated functionality... crashy...Jeremy Huddleston3-10/+5
(cherry picked from commit cdb4c291d8c10c3a9ea59d8e79275a30d2ea82b4)
2008-04-08XQuartz: Fix issue where clicking on an X11 window might send that event to ↵Jeremy Huddleston2-9/+9
an X11 window in another space. (cherry picked from commit df21312c8b0e9ef0c809bfc57cdf64f27db0d8a7) (cherry picked from commit 2d4194a8d124e7a9c7cd1b83635ba6957aa4ae1c)
2008-03-21Rootless: Removed safeAlphaXXXX() in favor of using fb/pixmanJeremy Huddleston4-261/+1
(cherry picked from commit f03202ad15457c98be7ca78cc59bac88cf5f1966)
2008-02-29dix: Modify callers of property and selection API to use new interfaces.Eamon Walsh1-2/+2
2008-01-28Rootless: RootlessEnsureFrame: Added check for !IsRootJeremy Huddleston1-1/+1
This was causing an issue with Apple-DRI and was reported here: http://trac.macosforge.org/projects/xquartz/ticket/51 (cherry picked from commit 116800279d2ec783c63f43d3902627edde6a4cff)
2007-12-29Rootless: Fix lvalue error from devPrivates changeColin Harrison1-1/+4
Instead of trying to use an invalid expression as an lvalue, use the function call instead.