* Source/win32/WIN32Server.m: Only show taskbar buttons for windows

which satisfy both:

- style mask isn't NSBorderlessWindowMask
- style mask don't have NSUtilityWindowMask set

Should fix bug 30911

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31212 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
ericwa 2010-08-30 22:00:09 +00:00
parent 86f1a1e68a
commit 7921074f23
2 changed files with 40 additions and 8 deletions

View file

@ -1,3 +1,13 @@
2010-08-30 Eric Wasylishen <ewasylishen@gmail.com>
* Source/win32/WIN32Server.m: Only show taskbar buttons for windows
which satisfy both:
- style mask isn't NSBorderlessWindowMask
- style mask don't have NSUtilityWindowMask set
Should fix bug 30911
2010-08-29 Eric Wasylishen <ewasylishen@gmail.com>
* Source/win32/w32_activate.m: Call -[NSApp deactivate] in response

View file

@ -479,16 +479,38 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg,
if ((style & NSUtilityWindowMask) == NSUtilityWindowMask)
{
estyle = WS_EX_TOOLWINDOW;
// WS_EX_TOOLWINDOW gives windows a thinner frame, like NSUtilityWindowMask
estyle |= WS_EX_TOOLWINDOW;
}
else
if ([self usesNativeTaskbar])
{
//FIXME: This looks like a hack
if ([self usesNativeTaskbar])
estyle = WS_EX_APPWINDOW;
else
estyle = WS_EX_TOOLWINDOW;
}
// We will put all bordered windows except utility windows in the
// taskbar. Utility windows don't need to be in the taskbar since
// they are in the floating window level, so always visible.
if (style == NSBorderlessWindowMask)
{
// WS_EX_TOOLWINDOW also prevents windows from appearing in the taskbar.
estyle |= WS_EX_TOOLWINDOW;
}
else if ((style & NSUtilityWindowMask) == 0)
{
// WS_EX_APPWINDOW requests that the window appear in the taskbar
estyle |= WS_EX_APPWINDOW;
}
}
else /* (NO == [self usesNativeTaskbar]) */
{
// Prevent all windows from appearing in the taskbar. As an undesired
// side effect this will give all windows with frames thin "tool window"
// frames. We could also get rid of the taskbar buttons by creating
// a hidden window, and setting it as the parent of all other windows,
// but that would be more complicated to manage.
// See http://msdn.microsoft.com/en-us/library/bb776822(v=VS.85).aspx#Managing_Taskbar_But
estyle |= WS_EX_TOOLWINDOW;
}
return estyle;
}