From 9592ee63e92945743c0b83b2fa99d08fd89a4bc9 Mon Sep 17 00:00:00 2001 From: juha Date: Tue, 14 Jul 2020 18:43:54 +0000 Subject: [PATCH] LCL-GTK3: Prevent access violation when showing hint window. git-svn-id: trunk@63559 - --- lcl/interfaces/gtk3/gtk3winapi.inc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lcl/interfaces/gtk3/gtk3winapi.inc b/lcl/interfaces/gtk3/gtk3winapi.inc index c1beee0ae0..213c745856 100644 --- a/lcl/interfaces/gtk3/gtk3winapi.inc +++ b/lcl/interfaces/gtk3/gtk3winapi.inc @@ -1476,7 +1476,7 @@ begin //TODO: APen.setDashPattern end; - APen.Color := lplb.lbColor; + APen.Color := TColor(lplb.lbColor); // ColorToRGB() ? APen.LogPen.lopnColor := lplb.lbColor; APen.LogPen.lopnStyle := (dwPenStyle and PS_STYLE_MASK) or (dwPenStyle and PS_JOIN_MASK) or (dwPenStyle and PS_ENDCAP_MASK); APen.LogPen.lopnWidth.X := dwWidth; @@ -1485,8 +1485,7 @@ begin Result := HPen(APen); end; -function TGtk3WidgetSet.ExtSelectClipRGN(dc: hdc; rgn: hrgn; Mode: Longint - ): Integer; +function TGtk3WidgetSet.ExtSelectClipRGN(dc: hdc; rgn: hrgn; Mode: Longint): Integer; var GtkDC: TGtk3DeviceContext absolute DC; ARect: TGdkRectangle; @@ -3933,10 +3932,14 @@ end; function TGtk3WidgetSet.SetWindowRgn(hWnd: HWND; hRgn: HRGN; bRedraw: Boolean ): longint; +var + PCR: Pcairo_region_t; begin - gtk_widget_shape_combine_region ( - TGtk3Widget(hWnd).Widget, - TGtk3Region(hRgn).Handle); + if hRgn = 0 then + PCR := nil + else + PCR := TGtk3Region(hRgn).Handle; + gtk_widget_shape_combine_region(TGtk3Widget(hWnd).Widget, PCR); if bRedraw then TGtk3Widget(hWnd).Widget^.realize; Result:=1;