win32: Record the native event mask in use

This commit is contained in:
Alexander Larsson 2011-10-19 21:36:41 +02:00
parent 915e9d57f9
commit 73c527aef0
2 changed files with 14 additions and 4 deletions

View File

@ -571,7 +571,7 @@ _gdk_win32_display_create_window_impl (GdkDisplay *display,
if (!title || !*title)
title = "";
window->event_mask = GDK_STRUCTURE_MASK | event_mask;
impl->native_event_mask = GDK_STRUCTURE_MASK | event_mask;
if (attributes_mask & GDK_WA_TYPE_HINT)
gdk_window_set_type_hint (window, attributes->type_hint);
@ -2028,21 +2028,29 @@ _gdk_windowing_window_at_device_position (GdkDisplay *display,
static GdkEventMask
gdk_win32_window_get_events (GdkWindow *window)
{
GdkWindowImplWin32 *impl;
if (GDK_WINDOW_DESTROYED (window))
return 0;
return window->event_mask;
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
return impl->native_event_mask;
}
static void
gdk_win32_window_set_events (GdkWindow *window,
GdkEventMask event_mask)
GdkEventMask event_mask)
{
GdkWindowImplWin32 *impl;
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
/* gdk_window_new() always sets the GDK_STRUCTURE_MASK, so better
* set it here, too. Not that I know or remember why it is
* necessary, will have to test some day.
*/
window->event_mask = GDK_STRUCTURE_MASK | event_mask;
impl->native_event_mask = GDK_STRUCTURE_MASK | event_mask;
}
static void

View File

@ -65,6 +65,8 @@ struct _GdkWindowImplWin32
gint hint_flags;
GdkGeometry hints;
GdkEventMask native_event_mask;
GdkWindowTypeHint type_hint;
gboolean extension_events_selected;