mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-26 11:44:16 +08:00
Call SyncUpdate in ReleaseDC instead of EndPaint
This commit is contained in:
@@ -5744,11 +5744,8 @@ HDC GUIAPI BeginPaint (HWND hWnd)
|
|||||||
return hdc;
|
return hdc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Since 5.0.0
|
|
||||||
Call SyncUpdateDC only in EndPaint can eliminate flickers effectively. */
|
|
||||||
void GUIAPI EndPaint (HWND hWnd, HDC hdc)
|
void GUIAPI EndPaint (HWND hWnd, HDC hdc)
|
||||||
{
|
{
|
||||||
BOOL synced = FALSE;
|
|
||||||
PMAINWIN pWin;
|
PMAINWIN pWin;
|
||||||
|
|
||||||
MG_CHECK (MG_IS_NORMAL_WINDOW(hWnd));
|
MG_CHECK (MG_IS_NORMAL_WINDOW(hWnd));
|
||||||
@@ -5762,8 +5759,6 @@ void GUIAPI EndPaint (HWND hWnd, HDC hdc)
|
|||||||
__mg_update_secondary_dc (pWin, hdc, real_dc,
|
__mg_update_secondary_dc (pWin, hdc, real_dc,
|
||||||
&pWin->pMainWin->update_rc, HT_CLIENT);
|
&pWin->pMainWin->update_rc, HT_CLIENT);
|
||||||
ReleaseDC (real_dc);
|
ReleaseDC (real_dc);
|
||||||
SyncUpdateDC (real_dc);
|
|
||||||
synced = TRUE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5793,9 +5788,6 @@ void GUIAPI EndPaint (HWND hWnd, HDC hdc)
|
|||||||
ShowCaretEx (hWnd, FALSE);
|
ShowCaretEx (hWnd, FALSE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!synced)
|
|
||||||
SyncUpdateDC (hdc);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL RegisterWindowClass (PWNDCLASS pWndClass)
|
BOOL RegisterWindowClass (PWNDCLASS pWndClass)
|
||||||
|
|||||||
+5
-7
@@ -2289,13 +2289,11 @@ void GUIAPI ReleaseDC (HDC hDC)
|
|||||||
|
|
||||||
pdc = dc_HDC2PDC(hDC);
|
pdc = dc_HDC2PDC(hDC);
|
||||||
|
|
||||||
/* Call SyncUpdateDC at the end of EndPaint to elimiate flickers.
|
/* Only call SyncUpdateDC when releasing a DC.
|
||||||
if (pdc->bIsClient) {
|
This will emilinate flickers effectively. */
|
||||||
LOCK (&__mg_gdilock);
|
LOCK (&__mg_gdilock);
|
||||||
GAL_SyncUpdate (pdc->surface);
|
GAL_SyncUpdate (pdc->surface);
|
||||||
UNLOCK (&__mg_gdilock);
|
UNLOCK (&__mg_gdilock);
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
pWin = (PMAINWIN)(pdc->hwnd);
|
pWin = (PMAINWIN)(pdc->hwnd);
|
||||||
if (pWin && pWin->privCDC == hDC) {
|
if (pWin && pWin->privCDC == hDC) {
|
||||||
|
|||||||
Reference in New Issue
Block a user