w32_common: Don't use globals for TRACKMOUSEEVENT

It seems working on getch2 gave me some brain damage.
This commit is contained in:
Diogo Franco (Kovensky) 2013-07-25 14:47:49 -03:00
parent f0b1834d59
commit 24e50ee74e
2 changed files with 12 additions and 11 deletions

View File

@ -112,12 +112,6 @@ static int mod_state(struct vo *vo)
return res;
}
static BOOL tracking;
static TRACKMOUSEEVENT trackEvent = {
.cbSize = sizeof(TRACKMOUSEEVENT),
.dwFlags = TME_LEAVE,
};
static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
LPARAM lParam)
{
@ -234,12 +228,12 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
}
break;
case WM_MOUSELEAVE:
tracking = FALSE;
w32->tracking = FALSE;
mp_input_put_key(vo->input_ctx, MP_KEY_MOUSE_LEAVE);
break;
case WM_MOUSEMOVE:
if (!tracking)
tracking = TrackMouseEvent(&trackEvent);;
if (!w32->tracking)
w32->tracking = TrackMouseEvent(&w32->trackEvent);;
vo_mouse_movement(vo, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
break;
case WM_LBUTTONDOWN:
@ -644,8 +638,12 @@ int vo_w32_init(struct vo *vo)
return 0;
}
tracking = FALSE;
trackEvent.hwndTrack = w32->window;
w32->tracking = FALSE;
w32->trackEvent = (TRACKMOUSEEVENT){
.cbSize = sizeof(TRACKMOUSEEVENT),
.dwFlags = TME_LEAVE,
.hwndTrack = w32->window,
};
if (vo->opts->WinID >= 0)
EnableWindow(w32->window, 0);

View File

@ -49,6 +49,9 @@ struct vo_w32_state {
int event_flags;
int mon_cnt;
int mon_id;
BOOL tracking;
TRACKMOUSEEVENT trackEvent;
};
struct vo;