Ticket #2 (closed usability: fixed)

Opened 3 years ago

Last modified 6 months ago

Spaces does not work with X11

Reported by: jeremyhu@… Owned by: bbyer@…
Priority: Expected Milestone: 2.2.0
Component: xserver Version: 2.1.0 (xserver-1.3)
Keywords: Cc: clinstid@…

Description (last modified by jeremyhu@…) (diff)

This is the most likely cause of the expose / spaces / focus bugs See  http://lists.apple.com/archives/X11-users/2007/Nov/msg00312.html

Change History

Changed 3 years ago by jeremyhu@…

  • owner changed from jeremyhu@… to bbyer@…

Changed 3 years ago by jeremyhu@…

  • version set to 2.1 (X11R7.2 - xserver-1.3)
  • description modified (diff)

Changed 3 years ago by jeremyhu@…

  • milestone changed from 2.1 (X11R7.2 - xserver-1.3) to 2.1.1 (X11R7.2 - xserver-1.3)

Changed 3 years ago by bbyer@…

  • status changed from new to assigned
  • priority changed from critical to major

Just to be clear -- between when I wrote that email and now, I believe we've fixed all of the Quartz window event bugs I mentioned, *except* the one where you can re-order windows in Expose mode. I'm still trying to find out what event we should be receiving that lets us know that we need to change the stacking; I'll talk to the libXplugin team.

Changed 3 years ago by anders.blomdell@…

It also seems like there is a strict ordering between all X11 windows, even when they are in different Spaces, this makes Spaces switch desktop when clicking in a window that is obscured by a window in another desktop. This can easily be seen by having two xterms slightly offseted on different desktops, and observe the focus behaviour.

Changed 3 years ago by bbyer@…

I'm told that if a window is clicked in Expose mode to bring it to the front, we'll receive an XP_WINDOW_STATE event.

/* 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,

};

Presumably, we'll receive a state of zero (not offscreen, not obscured). Would always raising that window to the top of the stack result in correct behavior, or are there other cases this doesn't fit?

Changed 3 years ago by anders.blomdell@…

AFAICT that should take care of clicking behaviour, but the weird focus behavior (windows in other spaces affects focus and cursor) is not affected (I think).

Changed 3 years ago by jeremyhu@…

  • cc clinstid@… added

Changed 3 years ago by jeremyhu@…

  • priority changed from major to critical

Changed 3 years ago by jeremyhu@…

Well, if we should be getting XP_EVENT_WINDOW_STATE_CHANGED on expose window changes, we're not. I just verified it with DEBUG_LOG, and the only time I'm ever seeing XP_EVENT_WINDOW_STATE_CHANGED is on show/hide (including spaces "F8")... plus it seems like that is how it should be, right?

If X11 is the foreground applicaiton, Expose works for selection the first window made by X11. If you select any other X11 window, hit F9, then choose the first X11 window, focus switches correctly. Doing this shows the following in the debug log:

quartz.c:QuartzProcessEvent:501 kXDarwinBringAllToFront darwinEvents.c:ProcessInputEvents:535 kxDarwinUpdateModifiers(0, 0, (empty))

when you try focusing on another window via expose, focus remains on the current window, and you just see: darwinEvents.c:ProcessInputEvents:535 kxDarwinUpdateModifiers(0, 0, (empty))

FTR, I'm almost positive that the kXDarwinBringAllToFront is a biproduct of it working, not the cause of it working.

Additionally, QuartzProcessEvent isn't getting the kXDarwinActivate event when switching in from another application via expose like it is when switching normally.

Changed 3 years ago by jeremyhu@…

  • milestone set to 2.1.4

Changed 2 years ago by jeremyhu@…

  • summary changed from X11 window events don't sync with Quartz to Spaces does not work with X11

The exposé issue is fixed in 2.2.0. Renaming this bug to just focus on the spaces issue.

Changed 2 years ago by jeremyhu@…

  • status changed from assigned to closed
  • resolution set to fixed

Fixed in 2.2.0_rc3

Note: See TracTickets for help on using tickets.