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 54000bdcbc)
2009-09-27 23:31:35 -07:00
Jeremy Huddleston
226b1033b4 XQuartz: Transition from xEvent based mieq to InternalEvent
(cherry picked from commit a3dbde2de8)
2009-09-27 23:31:07 -07:00
Jeremy Huddleston
07c935b72f XQuartz: Use applewmproto 1.4 updated headers.
(cherry picked from commit 203df06c0e)
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 639ee0c913)
(cherry picked from commit 09432fa5b1)
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 970f100ca3)
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 7617d3659b)
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 508aa95bc2)
2008-12-21 21:35:46 -08:00
Jeremy Huddleston
ecd55bc859 XQuartz: displayScreenBounds uses quartzEnableRootless rather than !quartzHasRoot
(cherry picked from commit c883a78ef0)
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 22a54e4617)
2008-10-21 09:34:49 -07:00
Jeremy Huddleston
d13c3cbd43 XQuartz: Some motion made towards supporting fullscreen.
(cherry picked from commit 99be3d68b6)
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 c861fe00e1)
2008-04-26 19:21:05 -07:00
Jeremy Huddleston
76381092e8 XQuartz: Make sure QuartzAudioInit() gets run.
(cherry picked from commit bb3d034675)
(cherry picked from commit 824b31c7f8)
2008-04-23 02:22:28 -07:00
Jeremy Huddleston
5183fea6d3 XQuartz: Handled sanitization of namespace better
(cherry picked from commit 8cb23d6721)
2008-04-18 20:07:55 -07:00
Jeremy Huddleston
0d61f6fca1 XQuartz: Fixed some missing prototypes
(cherry picked from commit 95056afc56)
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 df21312c8b)
(cherry picked from commit 2d4194a8d1)
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 bee2b377ef)
2008-04-02 17:48:01 -07:00
Ben Byer
c1be4e3379 shovelling code around ...
(cherry picked from commit 2143182ba4)
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 4aedba5aa7)
2008-04-02 17:47:57 -07:00
Ben Byer
89f1d880e8 nuke DarwinEventQueue
(cherry picked from commit 1e0ec02202)
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 9831324998)
2008-03-21 19:37:42 -07:00
Jeremy Huddleston
f3042a63be XQuartz: Handle Pseudorami init in miinitext
(cherry picked from commit a585c94fed)
2007-12-21 01:24:43 -08:00