summaryrefslogtreecommitdiff
path: root/randr
AgeCommit message (Collapse)AuthorFilesLines
2007-11-20Revert "registry: Register RANDR extension protocol names."Eamon Walsh1-68/+0
This reverts commit c827db57e4d9ca14c82b099dcfc9b7a0c0b5ba0a. Moving all the names into dix/registry.c
2007-11-20Revert "registry: Register XINERAMA extension protocol names."Eamon Walsh1-21/+5
This reverts commit b9f5ab98c8dea36dcce1ad15fd2e059a77e77c39. Moving all the names into dix/registry.c
2007-11-19Merge branch 'master' into XACE-SELINUXEamon Walsh2-1/+3
Conflicts: hw/xnest/Pixmap.c include/dix.h
2007-11-18Bug #12531: RRModesForScreen can fail to allocate.Jernej Azarija1-0/+2
2007-11-15Allocate RRCrtcRecs with calloc.Adam Jackson1-1/+1
2007-11-14Merge branch 'master' into XACE-SELINUXEamon Walsh1-1/+2
Conflicts: Xext/xace.c Xext/xace.h
2007-11-12Only clear crtc of output if it is the one we're actually working on.Matthias Hopf1-1/+2
Upon recreation of the RandR internal data structures in RRCrtcNotify() the crtc of an output could be NULLed if the crtc was shared (cloned) between two outputs and one of them got another crtc assigned.
2007-11-05Merge branch 'master' into XACE-SELINUXEamon Walsh1-2/+2
Conflicts: dix/dispatch.c dix/property.c hw/xfree86/common/xf86VidMode.c include/xkbsrv.h render/glyph.c xkb/xkbActions.c
2007-11-05RandR: Remove usage of allocaDaniel Stone1-2/+2
Replace with heap allocations.
2007-10-15registry: Add some missing #include's.Eamon Walsh3-0/+3
2007-10-15registry: Register RANDR extension protocol names.Eamon Walsh1-0/+68
2007-10-15registry: Register XINERAMA extension protocol names.Eamon Walsh1-5/+21
2007-10-11dix: Add a new "registry" mechanism for registering string names of things.Eamon Walsh3-8/+2
Supports protocol requests, events, and errors, and resource names. Modify XRES extension to use it.
2007-09-19Merge branch 'master' into XACE-SELINUXEamon Walsh3-11/+15
Conflicts: afb/afbpntwin.c afb/afbscrinit.c afb/afbwindow.c cfb/cfb.h cfb/cfballpriv.c cfb/cfbscrinit.c cfb/cfbwindow.c configure.ac fb/wfbrename.h hw/xfree86/xf4bpp/ppcIO.c hw/xfree86/xf4bpp/ppcPntWin.c hw/xfree86/xf4bpp/ppcWindow.c hw/xfree86/xf8_32bpp/cfbscrinit.c mfb/mfb.h mfb/mfbpntwin.c mfb/mfbscrinit.c mfb/mfbwindow.c mi/miexpose.c Note: conflicts caused by devPrivates rework vs. paintwindow changes.
2007-09-15Initialize output->pendingProperties.Tilman Sauerbeck1-0/+1
2007-08-31[RANDR] Don't mark Xinerama as active if no crtcs are enabled. (bug #11504).Adam Jackson1-7/+7
Clients expect any Xinerama-enabled screen to report at least one monitor, but with RandR, there may not be any enabled crtcs. In this case, tell the client that Xinerama is not active.
2007-08-31[RANDR] Compare only milliseconds of config time. (Bug #6502)Marius Gedminas1-4/+7
The timestamp transferred in the X protocol is a 32-bit number of milliseconds. The timestamp stored in the server is a structure that contains two fields: months (!) and milliseconds. When the server passes the config timestamp to the client, it discards the months part and sends only the milliseconds part. When the server receives the config timestamp from the client, it tries to guess the "months" part by looking at the current time and then maybe adding or subtracting one. The guess is wrong after the server has been running long enough (several hours). I have added two ErrorF calls around the 'if' statement that returns RRSetConfigInvalidConfigTimestamp in randr/randr.c and my Xorg.0.log has this: randr request got good config time: 0:-2103495671 for the first few successful xrandr calls, and randr request failed with RRSetConfigInvalidConfigTime: client passed 1:-2103495671, server has 0:-2103495671 when it fails. The server has been running for 8 and a half hours. The obvious fix would be to ignore the months field and only compare the milliseconds.
2007-08-28devPrivates rework: since API is already broken, switch everythingEamon Walsh2-18/+8
over to new system. Need to update documentation and address some remaining vestiges of old system such as CursorRec structure, fb "offman" structure, and FontRec privates.
2007-08-08RRScanOldConfig cannot use RRFirstOutput before output is configured.Keith Packard1-1/+1
RRFirstOutput returns the first active output, which won't be set until after RRScanOldConfig is finished running. Instead, just use the first output (which is the only output present with an old driver, after all).
2007-08-07RRScanOldConfig wasn't getting crtcs set correctlyKeith Packard1-3/+4
The output crtc is set by RRCrtcNotify, which is called at the end of RRScanOldConfig. Several uses of output->crtc in this function were wrong.
2007-08-07Decrement mode count when removing RandR output mode.Keith Packard1-0/+1
Removing an output mode without decrementing the mode count scrambles the output mode array badly.
2007-07-31Fix a crash when rotating the screen.Aaron Plattner1-3/+6
Remember output->crtc before setting a NULL mode because RRCrtcNotify now sets output->crtc to NULL. Use the saved crtc to set the new mode.
2007-07-25Fix the output->crtc initialization in the old randr setupGustavo Pichorim Boiko1-0/+1
2007-07-23Set the crtc before the output change is notifiedGustavo Pichorim Boiko4-15/+2
Set the new randr crtc of the output before the output change notification is delivered to the clients. Remove RROutputSetCrtc as it is not really necessary. All we have to do is set the output's crtc on RRCrtcNotify
2007-07-14Screen size bounds check in ProcRRSetCrtcConfig not masking out reflections.Keith Packard1-1/+1
When checking how to validate the selected mode and position against the current screen size, the test against 90/270 rotation did not mask out reflection, so that when reflection was specified, the 90/270 test would never succeed. This caused incorrect bounds checking and would return an error to the user instead of rotating the screen.
2007-05-24Fix build of composite, dix, and randr when Xinerama is disabled.Luo Jie2-3/+10
2007-04-25Disable RANDR's fake Xinerama protocol when there's more than one screen.Adam Jackson1-0/+8
... in the protocol sense. Xinerama doesn't have any provision for more than one protocol screen each with its own geometry. Red Hat bug #231257.
2007-04-16RandR 1.2 spec says CRTC info contains screen-relative geometry.Keith Packard1-2/+4
Was reporting mode size instead of adjusting for rotation. (cherry picked from commit e2e7c47a528447e90cff6cf10d2ce457742ef48d)
2007-04-10Rotate screen size as needed from RandR 1.1 change requests.Keith Packard1-3/+10
Screen size must reflect rotated mode size when setting rotated mode using RandR 1.1 SetScreenConfig request. (cherry picked from commit efcec7dbd3c2736c7b421d29c4d37e231aa681d2)
2007-04-03Swap RRScreenChangeNotifyEvent dimensions when the screen has one crtc and ↵Aaron Plattner1-5/+13
it's rotated. RandR 1.1 clients expect the size fields in this event to be the unrotated dimensions of the screen. This behavior is "weird", but that's the way the old code worked so we need to be bug-compatible with it.
2007-03-24Make pending properties force mode set. And, remove AttachScreen calls.Keith Packard6-147/+138
Yes, two changes in one commit. Sorry 'bout that. The first change ensures that when pending property values have been changed, a mode set to the current mode will actually do something, rather than being identified as a no-op. In addition, the driver no longer needs to manage the migration of pending to current values, that is handled both within the xf86 mode setting code (to deal with non-RandR changes) as well as within the RandR extension itself. The second change eliminates the two-call Create/AttachScreen stuff that was done in a failed attempt to create RandR resources before the screen structures were allocated. Merging these back into the Create function is cleaner. (cherry picked from commit 57e87e0d006cbf1f5b175fe02eeb981f741d92f0) Conflicts: randr/randrstr.h randr/rrcrtc.c I think master and server-1.3-branch are more in sync now.
2007-03-23Incorrect extra memory copy in RRChangeOutputProperty.Keith Packard1-2/+0
Left over from previous version of the code, this memmove will break when the mode is not Replace. (cherry picked from commit 945aa0aa556429b50dea8e8ebc0008304b093eb7)
2007-03-23Fix Pending property API, adding RRPostPendingProperty.Keith Packard2-58/+98
Pending Properties take effect when the driver says they do, so provide an API to tell DIX when a property effect is made. Also, allow driver to reject property values in RRChangeOutputProperty. (cherry picked from commit 8eb288fbd69e2ffd02521d2c6a964c8180d08ec8)
2007-03-23Make sure RandR events are delivered from RRCrtcSet.Keith Packard1-43/+50
Some paths were skipping the event delivery stage. (cherry picked from commit 9ca7ba5d6012295a77ed773c656e786440da973d)
2007-03-23Clear allocated RandR screen private structure.Keith Packard1-1/+1
Use xcalloc instead of xalloc when allocating this structure to ensure consistent contents at startup. (cherry picked from commit 16f4c0c1750824f2e5a001cef82a4122a7a2beb0)
2007-03-17Correct ref counting of RRMode structuresKeith Packard2-1/+6
RRModes are referenced by the resource db, RROutput and RRCrtc structures. Ensure that the mode reference count is decremented each time a reference is lost from one of these sources. The missing destroys were in RRCrtcDestroyResource and RROutputDestroyResource, which only happen at server reset time, so modes would be unavailable in subsequent server generations.
2007-03-17Eliminate RRModeRec devPrivate field.Keith Packard1-1/+0
The xf86 mode setting code was mis-using this field to try and store a pointer to a DisplayModeRec, however, each output has its own copy of every DisplayModeRec leaving the one in in the RRModeRec devPrivate field pointing at a random DisplayModeRec. Instead of attempting to rectify this, eliminating the devPrivate entirely turned out to be very easy; the DDX code now accepts an arbitrary RRModeRec structure and set that to the hardware, converting it on the fly to a DisplayModeRec as needed. (cherry picked from commit 3506b9376c2b0db09bfff58d64e07af88a6e8195)
2007-03-17Add support for user-defined modelines in RandR.Keith Packard7-50/+350
The RandR protocol spec has several requests in support of user-defined modes, but the implementation was stubbed out inside the X server. Fill out the DIX portion and start on the xf86 DDX portion. It might be necessary to add more code to the DDX to insert the user-defined modes into the output mode list. (cherry picked from commit 63cc2a51ef87130c632a874672a8c9167f14314e) Conflicts: randr/randrstr.h Updated code to work in master with recent security API changes.
2007-03-15Set the RandR version returned, rather than just passing the proto's version.Eric Anholt1-2/+5
2007-03-05Bugzilla #7145: fix build with gcc 2.95Jens Granseuer3-3/+3
Bugzilla #7145: <http://bugs.freedesktop.org/show_bug.cgi?id=7145> Patch #8987: <http://bugs.freedesktop.org/attachment.cgi?id=8987>
2007-02-28Don't crash setting a NULL mode with a randr classic DDX. Also remember to ↵Aaron Plattner1-0/+9
update the screen size during modesets.
2007-02-28Return BadMatch if a client tries to clone non-cloneable outputs.Aaron Plattner1-0/+21
2007-02-17RRConfigureOutputProperty is a variable length request.Keith Packard1-1/+1
Replace REQUEST_SIZE_MATCH with REQUEST_AT_LEAST_SIZE
2007-02-15Report correct RandR 1.0 sizeID. Report correct subpixel order.Keith Packard1-29/+33
RandR 1.0 sizeID must be computed the same way every time, so when reporting it in the ScreenChangeNotify event, just construct the usual 1.0 data block and use that. subpixel geometry information can be computed by looking at the connected outputs and finding any with subpixel geometry and using one of those for the global screen subpixel geometry. This might be improved by reporting None if more than one screen has information and they conflict.
2007-02-01Fix the size expectations of xRRSetCrtcGamma.Eric Anholt1-1/+1
It was using REQUEST_SIZE_MATCH (client request length must equal request size) rather than REQUEST_AT_LEAST_SIZE (client request length must be at least big enough for request size), and this request has data following the request structure.
2007-01-24Warning fix for RRCrtcSetRotations().Eric Anholt1-0/+1
2007-01-24Make Xinearama screen information reflect CRTC rotation.Keith Packard4-28/+33
2007-01-18Account for CRTC rotation in the cursor containment code.Eric Anholt1-8/+42
2007-01-17Add a setter for randr_crtc->rotations.Eric Anholt2-0/+17
2007-01-16When changing a non-pending property, call the screen rrOutputSetProperty hook.Eric Anholt1-0/+8