diff --git a/lcl/extctrls.pp b/lcl/extctrls.pp index 60cb9b4e84..4adc5a3839 100644 --- a/lcl/extctrls.pp +++ b/lcl/extctrls.pp @@ -69,7 +69,9 @@ type function DialogChar(var Message: TLMKey): boolean; override; procedure DoHide; dynamic; procedure DoShow; dynamic; + {$IFDEF EnableSizePatch} procedure DoSendBoundsToInterface; override; + {$ENDIF} public constructor Create(TheOwner: TComponent); override; procedure AdjustClientRect(var ARect: TRect); override; diff --git a/lcl/include/custompage.inc b/lcl/include/custompage.inc index 8d3b689154..2d425ec626 100644 --- a/lcl/include/custompage.inc +++ b/lcl/include/custompage.inc @@ -200,10 +200,12 @@ begin FOnShow(Self); end; +{$IFDEF EnableSizePatch} procedure TCustomPage.DoSendBoundsToInterface; begin // a page is only sized by the interface end; +{$ENDIF} function TCustomPage.IsControlVisible: Boolean; begin diff --git a/lcl/interfaces/gtk/gtkcallback.inc b/lcl/interfaces/gtk/gtkcallback.inc index df527d8663..8231502bdd 100644 --- a/lcl/interfaces/gtk/gtkcallback.inc +++ b/lcl/interfaces/gtk/gtkcallback.inc @@ -1161,6 +1161,14 @@ begin end else SizeMsg.SizeType:=SIZENORMAL; + + // don't bother the LCL if nothing changed + case SizeMsg.SizeType of + SIZENORMAL: if TheForm.WindowState=wsNormal then exit; + SIZEICONIC: if TheForm.WindowState=wsMinimized then exit; + SIZEFULLSCREEN: if TheForm.WindowState=wsMaximized then exit; + end; + with SizeMsg do begin Result := 0;