Commit Graph

54 Commits

Author SHA1 Message Date
Jeremy Huddleston 1fb501ad15 XQuartz: Don't crash if CG increases our display resolution
miPaintWindow would cause fbFill() to overwrite pScreen's pixmap which was
sized for the old resolution.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-05-22 11:17:59 -07:00
Jeremy Huddleston 60af79e35e XQuartz: RandR: Don't crash if X11 is launched while there are no attached displays
If CG reports no displays when launching, we could crash in RandR.  Instead, just
provide a fake 800x600 display until we are notified about displays being attached.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-05-22 11:17:59 -07:00
Jeremy Huddleston 1596ea72d6 XQuartz: Use a lighter spinlock instead of a pthread_mutex_t in QuartzScreenSaver
Currently, we only end up here through a call to QuartzShowFullscreen, and
this is always on the same thread.  Future changes (such as further
incorporating libdispatch) may allow this to change, but contention will
remain minimal since the call is infrequent and it is short held.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Daniel A. Steffen <dsteffen@apple.com>
2011-04-25 18:57:02 -07:00
Dave Airlie eb9266c717 consolidate SetRootClip (v2)
each DDX has its own copy, I've taken the darwin one,
though I'm not sure why it needs the pOldClip piece that nobody
else has and the commit msg is like an "Updates from magic land"
type message.

This removes the main uses of pWin->winSize from the DDXen.

v2: drop old clip like ajax suggests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2011-03-28 10:06:32 +10:00
Jeremy Huddleston 13578b852b XQuartz: RandR: Capture the display when switching modes with RandR
This will prevent native windows from resizing as we change resolutions.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-02-27 15:46:22 -08:00
Jeremy Huddleston effaf9459c XQuartz: Use the default signal handler
This allows better interaction with CrashTracer

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-01-23 22:39:44 -08:00
Jeremy Huddleston 418bb57a39 XQuartz: Call RRScreenSizeNotify after handling externally-generated XP_EVENT_DISPLAY_CHANGED
We get an XP_EVENT_DISPLAY_CHANGED event when our display configuration is
changed.  If this change was caused by hotplugging a monitor or Mac Display
Preferences changes by the user, we need to call RRScreenSizeNotify in order
to ensure new connections get the correct screen size.

http://xquartz.macosforge.org/trac/ticket/460

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-01-23 22:39:14 -08:00
Jeremy Huddleston 883039e07b XQuartz: Just NSBeep() for XBell()
The CoreAudio path uses deprecated API and has reported crashes that
aren't worth fixing (4e8bf12b13 fixed
one and introduced another).  NSBeep() does the job just fine.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-12-08 13:57:19 -08:00
Jeremy Huddleston ca431371a2 XQuartz: Disable the Mac OS X screensaver when in full screen mode
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-12-03 16:23:04 -08:00
Jeremy Huddleston c45bea0c04 XQuartz: RandR: Refactor legacy mode-switching to be better integrated with RandR
Adds three new functions
void QuartzRandRSetFakeRootless (void);
void QuartzRandRSetFakeFullscreen (void);
void QuartzRandRToggleFullscreen (void);

The first two are identical to requesting the fake modes from a RandR client
The third responds to cmd-alt-a to leave fullscreen or RandR.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-09-28 10:09:11 -07:00
Jeremy Huddleston 229323a19b XQuartz: RandR: Don't change the rootless preference when changing RandR mode
Also renames a bunch of other variables for better consistency.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-09-28 09:50:35 -07:00
Jan Hauffa 629c3f473b XQuartz: RandR: Remove FAKE_RANDR code.
Signed-off-by: Jan Hauffa <hauffa@in.tum.de>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-09-28 09:50:34 -07:00
Jan Hauffa 2d411472c2 XQuartz: RandR: Implement basic RandR functionality.
Querying and changing of resolution and refresh rate is supported,
rotation is not implemented yet.

Signed-off-by: Jan Hauffa <hauffa@in.tum.de>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-09-28 09:50:34 -07:00
Jeremy Huddleston ee7fd8fc58 XQuartz: UpdateScreen at the end of SetRootless
This will ensure that pRoot is unlocked after the miPaintWindow

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-08-12 20:26:36 -10:00
Jan Hauffa b2b9c458a4 XQuartz: Remove some dead code.
Signed-off-by: Jan Hauffa <hauffa@in.tum.de>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-07-13 08:27:36 -07:00
Keith Packard faeebead7b Change the devPrivates API to require dixRegisterPrivateKey
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-05 19:23:03 -07:00
Jamey Sharp a83cff9f4d Move each screen's x/y origin into ScreenRec.
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-03 14:03:23 -07:00
Jamey Sharp e7fae9ecc4 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)
2010-06-03 14:03:23 -07:00
Oliver McFadden a4fbc0feda scrnintstr.h: removed unused PaintWindow function pointers.
Please note this patch breaks the ABI.

Signed-off-by: Oliver McFadden <oliver.mcfadden@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-05-14 08:27:10 +03:00
Mikhail Gusarov 3f3ff971ec Replace X-allocation functions with their C89 counterparts
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-13 00:22:37 +07:00
Jeremy Huddleston 840d12c7a6 XQuartz: Add a defaults option to toggle Alt / Mode_switch
See option_sends_alt in Xquartz(1)

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Kevin Van Vechten <kvv@apple.com>
2010-04-11 16:30:19 -07:00
Jeremy Huddleston 28a5f14b40 XQuartz: Re-query dixScreenOrigins as the value could've changed.
Fix a regression in 9c9c3a85b0

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Acked-by: Adam Jackson <ajax@redhat.com>
2010-03-29 09:37:19 -07:00
Jeremy Huddleston ed31d50b5f XQuartz: Constrain the pointer to the updated display bounds on display reconfigure.
http://xquartz.macosforge.org/trac/ticket/346
2010-03-21 21:56:39 -07:00
Jeremy Huddleston 9c9c3a85b0 XQuartz: Minor cleanup
Move RandRInit to where it will need to be (not yet implemented)

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-03-21 21:56:39 -07:00
Jeremy Huddleston 67a51cd9ef XQuartz: Fix a bunch of compilation warnings about style
(cherry picked from commit 54000bdcbca52a2de31f7c1a1147de6d8e9dbbb8)
2009-09-27 23:31:35 -07:00
Jeremy Huddleston 226b1033b4 XQuartz: Transition from xEvent based mieq to InternalEvent
(cherry picked from commit a3dbde2de87ee4f577748a8c447501a3ea462559)
2009-09-27 23:31:07 -07:00
Jeremy Huddleston 07c935b72f XQuartz: Use applewmproto 1.4 updated headers.
(cherry picked from commit 203df06c0eb2dcd5adfa788a1ba9569650c15f9c)
2009-08-25 20:16:47 -07:00
Jeremy Huddleston 2429daa7e6 XQuartz: Default to forcing the dialog box before quitting.
This will show the quit dialog for users of other WMs.
(cherry picked from commit 639ee0c913f892776fee40bcfb856e0d7c2c7db5)
(cherry picked from commit 09432fa5b1cc8e9a30fb8aa4f8dfcd08c4a91e30)
2009-06-06 22:23:46 -07:00
Jeremy Huddleston 8d5dcfe215 XQuartz: Properly set the menu bar and hotkey state when changing rootless mode.
Currently no code path exhibits the broken behavior since we only toggle into rootless if we don't have the root.
(cherry picked from commit 970f100ca3c5fc0662ae7658d49d118fbd9de943)
2009-04-10 00:47:03 -07:00
Jeremy Huddleston 9531b96470 XQuartz: DefineInitialRootWindow is gone 2009-02-22 00:41:52 -08:00
Jeremy Huddleston ae8dc47fd9 XQuartz: Reposition windows when we enter fullscreen to ensure our root window
(cherry picked from commit 7617d3659b5481ef85aecc1f936e7dd2662bdfbd)
2008-12-28 22:17:16 -08:00
Jeremy Huddleston f0cdccd1e2 XQuartz: Update our "screens" when we toggle rootless rather than when we toggle fullscreen
This old behavior was used as a workaround for the menubar behavior in the older server,
but we handle it better now and need to update our screens when we toggle the rootless
state instead.
(cherry picked from commit 508aa95bc2cd3fdc3dff448ec090919bf807d153)
2008-12-21 21:35:46 -08:00
Jeremy Huddleston ecd55bc859 XQuartz: displayScreenBounds uses quartzEnableRootless rather than !quartzHasRoot
(cherry picked from commit c883a78ef0c2e7e29437881db85d3815a89ab874)
2008-10-31 15:50:06 -07:00
Jeremy Huddleston 2a9613980f XQuartz: More fullscreen fixes
Start in rooted mode when enabled
  Make the hotkey cmd-alt-a behave
(cherry picked from commit 22a54e46176c9cbdfaaa59ef33a6ae6a9c4969ef)
2008-10-21 09:34:49 -07:00
Jeremy Huddleston d13c3cbd43 XQuartz: Some motion made towards supporting fullscreen.
(cherry picked from commit 99be3d68b64059caada739a373e5e01844c776e0)
2008-10-08 18:45:17 -07:00
Adam Jackson e6b1c1fada const cleanup 2008-10-03 17:51:19 -04:00
Tomas Carnecky ebea78cdba Prepare for array-index based devPrivates.
TODO: static indices can be made just an int; some indices
can be combined.
2008-08-28 18:05:40 -04:00
Adam Jackson 64ef7ed072 Centralize declaration of ConnectionInfo. 2008-08-20 13:14:34 -04:00
Jeremy Huddleston ef1c520537 XQuartz: Cleaned up startup and thread creation a tad.
(cherry picked from commit c861fe00e112b21ee0156d09a6cd5281642a1dcc)
2008-04-26 19:21:05 -07:00
Jeremy Huddleston 76381092e8 XQuartz: Make sure QuartzAudioInit() gets run.
(cherry picked from commit bb3d034675b70e22e78df5554cab0ec2a3d913d0)
(cherry picked from commit 824b31c7f8144a67a320442abd3d854e99d2bfe2)
2008-04-23 02:22:28 -07:00
Jeremy Huddleston 5183fea6d3 XQuartz: Handled sanitization of namespace better
(cherry picked from commit 8cb23d672177da919257c885804cecd18cf9af88)
2008-04-18 20:07:55 -07:00
Jeremy Huddleston 0d61f6fca1 XQuartz: Fixed some missing prototypes
(cherry picked from commit 95056afc562cfe58b116f5c36e4624018e79ff4a)
2008-04-17 13:21:13 -07:00
Jeremy Huddleston 3f51f493b6 XQuartz: Fix issue where clicking on an X11 window might send that event to an X11 window in another space.
(cherry picked from commit df21312c8b0e9ef0c809bfc57cdf64f27db0d8a7)
(cherry picked from commit 2d4194a8d124e7a9c7cd1b83635ba6957aa4ae1c)
2008-04-08 17:03:18 -07:00
Ben Byer e9e2d88436 moved and renamed QuartzMessageServerThread to
DarwinSendDDXEvent to make more clear what it actually does.
(cherry picked from commit bee2b377efc930e25017636e5112093a3a6549c7)
2008-04-02 17:48:01 -07:00
Ben Byer c1be4e3379 shovelling code around ...
(cherry picked from commit 2143182ba49195bbb2e9163ea6872fd68e7a4a85)
2008-04-02 17:47:59 -07:00
Ben Byer 985c631b2e just a bit of juggling headers around -- we're preparing
to call our Xquartz-specific event handlers directly
as mieqHandlers
(cherry picked from commit 4aedba5aa727e22316e8ca456f7218bea9ee0313)
2008-04-02 17:47:57 -07:00
Ben Byer 89f1d880e8 nuke DarwinEventQueue
(cherry picked from commit 1e0ec02202eeaffae480048b91bf02140ee29f8a)
2008-04-02 17:47:52 -07:00
Jeremy Huddleston b8ea9f2a25 XQuartz: Fixed names of enums to be more consistent
(cherry picked from commit c309a08806daf5d716a860c709e51eacad2c745a)
2008-03-28 17:03:20 -07:00
Jeremy Huddleston c49e112683 XQuartz: Initial framework for dealing with spaces on OS-X
(cherry picked from commit 9831324998f9d1f05ff944c58c5bf60dcae17355)
2008-03-21 19:37:42 -07:00
Jeremy Huddleston f3042a63be XQuartz: Handle Pseudorami init in miinitext
(cherry picked from commit a585c94fedd4ecbc87524703c01bb128fc2aa951)
2007-12-21 01:24:43 -08:00