Fixed divide by zero if the application has run out of GDI handles and is trying to show an error dialog

Sam Lantinga 2015-09-14 11:15:25 -07:00
parent 4295a6fe47
commit 08ce12c4e3
1 changed files with 6 additions and 3 deletions

View File

@ -297,9 +297,12 @@ static WIN_DialogData *CreateDialogData(int w, int h, const char *caption)
/* Font size - convert to logical font size for dialog parameter. */
{
HDC ScreenDC = GetDC(0);
WordToPass = (WORD)(-72 * NCM.lfMessageFont.lfHeight / GetDeviceCaps(ScreenDC, LOGPIXELSY));
ReleaseDC(0, ScreenDC);
HDC ScreenDC = GetDC(NULL);
int LogicalPixelsY = GetDeviceCaps(ScreenDC, LOGPIXELSY);
if (!LogicalPixelsY) /* This can happen if the application runs out of GDI handles */
LogicalPixelsY = 72;
WordToPass = (WORD)(-72 * NCM.lfMessageFont.lfHeight / LogicalPixelsY);
ReleaseDC(NULL, ScreenDC);
}
if (!AddDialogData(dialog, &WordToPass, 2)) {