[Xquartz-dev] Expose restacking
Ben Byer
bbyer at apple.com
Sun Dec 2 07:07:06 PST 2007
On Nov 30, 2007, at 2:41 PM, Nathaniel Gray wrote:
> I just ran the following test after instrumenting the
> kXDarwinWindowState event (quartz.c, line 460ish):
>
> Starting from Terminal.app without X11 running:
> $ xterm &
> $ xterm &
> Then I used Expose to restack the xterms. Note that focus never
> went to X11.app
> $ killall X11
>
> Then I tried again, but this time I didn't do anything with Expose:
> $ xterm &
> $ xterm &
> $ killall X11
>
> The log output was identical for both tests. So we're not getting
> that event on Expose window restacking.
Interesting.
And we're not getting a WindowMoved notification, right? If you look
in /usr/include/Xplugin.h, here are the different kinds of events we
can get from Xplugin:
/* Event types generated by the plugin. */
enum xp_event_type_enum {
/* The global display configuration changed somehow. */
XP_EVENT_DISPLAY_CHANGED = 1 << 0,
/* A window changed state. Argument is xp_window_state_event */
XP_EVENT_WINDOW_STATE_CHANGED = 1 << 1,
/* An async request encountered an error. Argument is of type
xp_async_error_event */
XP_EVENT_ASYNC_ERROR = 1 << 2,
/* Sent when a surface is destroyed as a side effect of destroying
a window. Arg is of type xp_surface_id. */
XP_EVENT_SURFACE_DESTROYED = 1 << 3,
/* Sent when any GL contexts pointing at the given surface need to
call xp_update_gl_context () to refresh their state (because the
window moved or was resized. Arg is of type xp_surface_id. */
XP_EVENT_SURFACE_CHANGED = 1 << 4,
/* Sent when a window has been moved. Arg is of type
xp_window_id. */
XP_EVENT_WINDOW_MOVED = 1 << 5,
};
/* Possible window states. */
enum xp_window_state_enum {
/* The window is not in the global list of possibly-visible
windows. */
XP_WINDOW_STATE_OFFSCREEN = 1 << 0,
/* Parts of the window may be obscured by other windows. */
XP_WINDOW_STATE_OBSCURED = 1 << 1,
};
Point being, if Expose is moving windows around on us and we're not
getting told via this mechanism, I need to ask for the Xplugin
interface to be fixed.
--
Ben Byer
CoreOS / BSD Technology Group, XDarwin maintainer
More information about the Xquartz-dev
mailing list