winex11: Implement FlashWindowEx.

Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jactry Zeng 2015-10-13 13:52:37 +08:00 committed by Alexandre Julliard
parent b007a98e1a
commit c2dc6f3ef2
4 changed files with 32 additions and 0 deletions

View File

@ -2767,3 +2767,32 @@ failed:
release_win_data( data );
return -1;
}
void CDECL X11DRV_FlashWindowEx( PFLASHWINFO pfinfo )
{
struct x11drv_win_data *data = get_win_data( pfinfo->hwnd );
XEvent xev;
if (!data)
return;
if (data->mapped)
{
xev.type = ClientMessage;
xev.xclient.window = data->whole_window;
xev.xclient.message_type = x11drv_atom( _NET_WM_STATE );
xev.xclient.serial = 0;
xev.xclient.display = data->display;
xev.xclient.send_event = True;
xev.xclient.format = 32;
xev.xclient.data.l[0] = pfinfo->dwFlags ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE;
xev.xclient.data.l[1] = x11drv_atom( _NET_WM_STATE_DEMANDS_ATTENTION );
xev.xclient.data.l[2] = 0;
xev.xclient.data.l[3] = 1;
xev.xclient.data.l[4] = 0;
XSendEvent( data->display, DefaultRootWindow( data->display ), False,
SubstructureNotifyMask, &xev );
}
release_win_data( data );
}

View File

@ -30,6 +30,7 @@
@ cdecl EmptyClipboard() X11DRV_EmptyClipboard
@ cdecl EndClipboardUpdate() X11DRV_EndClipboardUpdate
@ cdecl EnumClipboardFormats(long) X11DRV_EnumClipboardFormats
@ cdecl FlashWindowEx(ptr) X11DRV_FlashWindowEx
@ cdecl GetClipboardData(long) X11DRV_GetClipboardData
@ cdecl GetDC(long long long ptr ptr long) X11DRV_GetDC
@ cdecl IsClipboardFormatAvailable(long) X11DRV_IsClipboardFormatAvailable

View File

@ -421,6 +421,7 @@ enum x11drv_atoms
XATOM__NET_WM_PING,
XATOM__NET_WM_STATE,
XATOM__NET_WM_STATE_ABOVE,
XATOM__NET_WM_STATE_DEMANDS_ATTENTION,
XATOM__NET_WM_STATE_FULLSCREEN,
XATOM__NET_WM_STATE_MAXIMIZED_HORZ,
XATOM__NET_WM_STATE_MAXIMIZED_VERT,

View File

@ -138,6 +138,7 @@ static const char * const atom_names[NB_XATOMS - FIRST_XATOM] =
"_NET_WM_PING",
"_NET_WM_STATE",
"_NET_WM_STATE_ABOVE",
"_NET_WM_STATE_DEMANDS_ATTENTION",
"_NET_WM_STATE_FULLSCREEN",
"_NET_WM_STATE_MAXIMIZED_HORZ",
"_NET_WM_STATE_MAXIMIZED_VERT",