Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-fonts
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
Aleksandr Isakov
wine-fonts
Commits
a8063e8b
Commit
a8063e8b
authored
Nov 08, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winex11: Handle GravityNotify events for non-toplevel windows.
parent
9bce7fcb
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
3 deletions
+32
-3
event.c
dlls/winex11.drv/event.c
+31
-2
window.c
dlls/winex11.drv/window.c
+1
-1
No files found.
dlls/winex11.drv/event.c
View file @
a8063e8b
...
...
@@ -95,6 +95,7 @@ static void X11DRV_ReparentNotify( HWND hwnd, XEvent *event );
static
void
X11DRV_ConfigureNotify
(
HWND
hwnd
,
XEvent
*
event
);
static
void
X11DRV_PropertyNotify
(
HWND
hwnd
,
XEvent
*
event
);
static
void
X11DRV_ClientMessage
(
HWND
hwnd
,
XEvent
*
event
);
static
void
X11DRV_GravityNotify
(
HWND
hwnd
,
XEvent
*
event
);
struct
event_handler
{
...
...
@@ -129,7 +130,7 @@ static struct event_handler handlers[MAX_EVENT_HANDLERS] =
{
ReparentNotify
,
X11DRV_ReparentNotify
},
{
ConfigureNotify
,
X11DRV_ConfigureNotify
},
/* ConfigureRequest */
/* GravityNotify */
{
GravityNotify
,
X11DRV_GravityNotify
},
/* ResizeRequest */
/* CirculateNotify */
/* CirculateRequest */
...
...
@@ -142,7 +143,7 @@ static struct event_handler handlers[MAX_EVENT_HANDLERS] =
{
MappingNotify
,
X11DRV_MappingNotify
},
};
static
int
nb_event_handlers
=
19
;
/* change this if you add handlers above */
static
int
nb_event_handlers
=
20
;
/* change this if you add handlers above */
/* return the name of an X event */
...
...
@@ -963,6 +964,34 @@ void X11DRV_ConfigureNotify( HWND hwnd, XEvent *xev )
}
/**********************************************************************
* X11DRV_GravityNotify
*/
static
void
X11DRV_GravityNotify
(
HWND
hwnd
,
XEvent
*
xev
)
{
XGravityEvent
*
event
=
&
xev
->
xgravity
;
struct
x11drv_win_data
*
data
=
X11DRV_get_win_data
(
hwnd
);
RECT
rect
;
if
(
!
data
)
return
;
rect
.
left
=
event
->
x
;
rect
.
top
=
event
->
y
;
rect
.
right
=
rect
.
left
+
data
->
whole_rect
.
right
-
data
->
whole_rect
.
left
;
rect
.
bottom
=
rect
.
top
+
data
->
whole_rect
.
bottom
-
data
->
whole_rect
.
top
;
TRACE
(
"win %p/%lx new X rect %d,%d,%dx%d (event %d,%d)
\n
"
,
hwnd
,
data
->
whole_window
,
rect
.
left
,
rect
.
top
,
rect
.
right
-
rect
.
left
,
rect
.
bottom
-
rect
.
top
,
event
->
x
,
event
->
y
);
X11DRV_X_to_window_rect
(
data
,
&
rect
);
if
(
data
->
window_rect
.
left
!=
rect
.
left
||
data
->
window_rect
.
top
!=
rect
.
top
)
SetWindowPos
(
hwnd
,
0
,
rect
.
left
,
rect
.
top
,
0
,
0
,
SWP_NOSIZE
|
SWP_NOZORDER
|
SWP_NOACTIVATE
|
SWP_NOCOPYBITS
);
}
/***********************************************************************
* get_window_wm_state
*/
...
...
dlls/winex11.drv/window.c
View file @
a8063e8b
...
...
@@ -2371,7 +2371,7 @@ void CDECL X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags
if
(
thread_data
->
current_event
&&
thread_data
->
current_event
->
xany
.
window
==
data
->
whole_window
)
event_type
=
thread_data
->
current_event
->
type
;
if
(
event_type
!=
ConfigureNotify
&&
event_type
!=
PropertyNotify
)
if
(
event_type
!=
ConfigureNotify
&&
event_type
!=
PropertyNotify
&&
event_type
!=
GravityNotify
)
event_type
=
0
;
/* ignore other events */
if
(
data
->
mapped
)
...
...
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