Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
8a5f5782
Commit
8a5f5782
authored
May 01, 2008
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winex11: Ignore the specified owner if it's a zero-size window.
Go back to not mapping zero-size windows.
parent
617e5162
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
2 deletions
+18
-2
window.c
dlls/winex11.drv/window.c
+18
-2
No files found.
dlls/winex11.drv/window.c
View file @
8a5f5782
...
...
@@ -127,6 +127,9 @@ static BOOL is_window_managed( HWND hwnd, UINT swp_flags, const RECT *window_rec
*/
static
BOOL
is_window_rect_mapped
(
const
RECT
*
rect
)
{
/* don't map if rect is empty */
if
(
IsRectEmpty
(
rect
))
return
FALSE
;
/* don't map if rect is off-screen */
if
(
rect
->
left
>=
virtual_screen_rect
.
right
||
rect
->
top
>=
virtual_screen_rect
.
bottom
||
...
...
@@ -153,6 +156,19 @@ static inline BOOL is_window_resizable( struct x11drv_win_data *data, DWORD styl
/***********************************************************************
* get_window_owner
*/
static
HWND
get_window_owner
(
HWND
hwnd
)
{
RECT
rect
;
HWND
owner
=
GetWindow
(
hwnd
,
GW_OWNER
);
/* ignore the zero-size owners used by Delphi apps */
if
(
owner
&&
GetWindowRect
(
owner
,
&
rect
)
&&
IsRectEmpty
(
&
rect
))
owner
=
0
;
return
owner
;
}
/***********************************************************************
* get_mwm_decorations
*/
static
unsigned
long
get_mwm_decorations
(
struct
x11drv_win_data
*
data
,
...
...
@@ -869,7 +885,7 @@ static void set_wm_hints( Display *display, struct x11drv_win_data *data )
{
style
=
GetWindowLongW
(
data
->
hwnd
,
GWL_STYLE
);
ex_style
=
GetWindowLongW
(
data
->
hwnd
,
GWL_EXSTYLE
);
owner
=
GetWindow
(
data
->
hwnd
,
GW_OWNER
);
owner
=
get_window_owner
(
data
->
hwnd
);
}
/* transient for hint */
...
...
@@ -964,7 +980,7 @@ void update_net_wm_states( Display *display, struct x11drv_win_data *data )
new_state
|=
(
1
<<
NET_WM_STATE_ABOVE
);
if
(
ex_style
&
WS_EX_TOOLWINDOW
)
new_state
|=
(
1
<<
NET_WM_STATE_SKIP_TASKBAR
)
|
(
1
<<
NET_WM_STATE_SKIP_PAGER
);
if
(
!
(
ex_style
&
WS_EX_APPWINDOW
)
&&
GetWindow
(
data
->
hwnd
,
GW_OWNER
))
if
(
!
(
ex_style
&
WS_EX_APPWINDOW
)
&&
get_window_owner
(
data
->
hwnd
))
new_state
|=
(
1
<<
NET_WM_STATE_SKIP_TASKBAR
);
if
(
!
data
->
mapped
)
/* set the _NET_WM_STATE atom directly */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment