Skip to content
Snippets Groups Projects
Commit 15d4b2ab authored by Ken Thomases's avatar Ken Thomases Committed by Alexandre Julliard
Browse files

winemac: Translate presence in Windows task bar to participation in Exposé and window cycling.

parent b6544d19
No related branches found
No related tags found
No related merge requests found
...@@ -156,6 +156,7 @@ - (void) setWindowFeatures:(const struct macdrv_window_features*)wf ...@@ -156,6 +156,7 @@ - (void) setWindowFeatures:(const struct macdrv_window_features*)wf
- (void) setMacDrvState:(const struct macdrv_window_state*)state - (void) setMacDrvState:(const struct macdrv_window_state*)state
{ {
NSInteger level; NSInteger level;
NSWindowCollectionBehavior behavior;
self.disabled = state->disabled; self.disabled = state->disabled;
self.noActivate = state->no_activate; self.noActivate = state->no_activate;
...@@ -164,6 +165,17 @@ - (void) setMacDrvState:(const struct macdrv_window_state*)state ...@@ -164,6 +165,17 @@ - (void) setMacDrvState:(const struct macdrv_window_state*)state
level = state->floating ? NSFloatingWindowLevel : NSNormalWindowLevel; level = state->floating ? NSFloatingWindowLevel : NSNormalWindowLevel;
if (level != [self level]) if (level != [self level])
[self setLevel:level]; [self setLevel:level];
behavior = NSWindowCollectionBehaviorDefault;
if (state->excluded_by_expose)
behavior |= NSWindowCollectionBehaviorTransient;
else
behavior |= NSWindowCollectionBehaviorManaged;
if (state->excluded_by_cycle)
behavior |= NSWindowCollectionBehaviorIgnoresCycle;
else
behavior |= NSWindowCollectionBehaviorParticipatesInCycle;
[self setCollectionBehavior:behavior];
} }
/* Returns whether or not the window was ordered in, which depends on if /* Returns whether or not the window was ordered in, which depends on if
......
...@@ -129,6 +129,8 @@ ...@@ -129,6 +129,8 @@
unsigned int disabled:1; unsigned int disabled:1;
unsigned int no_activate:1; unsigned int no_activate:1;
unsigned int floating:1; unsigned int floating:1;
unsigned int excluded_by_expose:1;
unsigned int excluded_by_cycle:1;
}; };
extern macdrv_window macdrv_create_cocoa_window(const struct macdrv_window_features* wf, extern macdrv_window macdrv_create_cocoa_window(const struct macdrv_window_features* wf,
......
...@@ -104,6 +104,9 @@ static void get_cocoa_window_state(struct macdrv_win_data *data, ...@@ -104,6 +104,9 @@ static void get_cocoa_window_state(struct macdrv_win_data *data,
state->disabled = (style & WS_DISABLED) != 0; state->disabled = (style & WS_DISABLED) != 0;
state->no_activate = !can_activate_window(data->hwnd); state->no_activate = !can_activate_window(data->hwnd);
state->floating = (ex_style & WS_EX_TOPMOST) != 0; state->floating = (ex_style & WS_EX_TOPMOST) != 0;
state->excluded_by_expose = state->excluded_by_cycle =
!(ex_style & WS_EX_APPWINDOW) &&
(GetWindow(data->hwnd, GW_OWNER) || (ex_style & (WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE)));
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment