From 4a1481152706aac10efc31aa9ab22eeef0020a81 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 8 Sep 2011 22:27:41 +0200 Subject: [PATCH] wineconsole: Avoid reentering WINECON_GrabChanges. --- programs/wineconsole/winecon_private.h | 1 + programs/wineconsole/wineconsole.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/programs/wineconsole/winecon_private.h b/programs/wineconsole/winecon_private.h index 951b45a2a42..1daf581fca0 100644 --- a/programs/wineconsole/winecon_private.h +++ b/programs/wineconsole/winecon_private.h @@ -61,6 +61,7 @@ struct inner_data { HWND hWnd; /* handle of 'user' window or NULL for 'curses' */ INT nCmdShow; /* argument of WinMain */ BOOL in_set_config; /* to handle re-entrant calls to WINECON_SetConfig */ + BOOL in_grab_changes;/* to handle re-entrant calls to WINECON_GrabChanges */ BOOL dying; /* to TRUE when we've been notified by server that child has died */ int (*fnMainLoop)(struct inner_data* data); diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c index 56be619c107..70c7a83d3e6 100644 --- a/programs/wineconsole/wineconsole.c +++ b/programs/wineconsole/wineconsole.c @@ -205,6 +205,8 @@ void WINECON_GrabChanges(struct inner_data* data) int i, num, ev_found; HANDLE h; + if (data->in_grab_changes) return; + SERVER_START_REQ( get_console_renderer_events ) { wine_server_set_reply( req, evts, sizeof(evts) ); @@ -258,6 +260,7 @@ void WINECON_GrabChanges(struct inner_data* data) ev_found = i; } + data->in_grab_changes = TRUE; for (i = 0; i < num; i++) { switch (evts[i].event) @@ -355,6 +358,7 @@ void WINECON_GrabChanges(struct inner_data* data) WINE_FIXME("Unknown event type (%d)\n", evts[i].event); } } + data->in_grab_changes = FALSE; } /******************************************************************