mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 02:59:17 +02:00
Gtk3: safe guard against duplicate signal assignment.
This commit is contained in:
parent
0fbd8536a5
commit
372fc3b29c
@ -503,6 +503,7 @@ type
|
|||||||
TGtk3ScrollableWin = class(TGtk3Container)
|
TGtk3ScrollableWin = class(TGtk3Container)
|
||||||
private
|
private
|
||||||
FBorderStyle: TBorderStyle;
|
FBorderStyle: TBorderStyle;
|
||||||
|
FHBarInitialized, FVBarInitialized: boolean;
|
||||||
function GetHScrollBarPolicy: TGtkPolicyType;
|
function GetHScrollBarPolicy: TGtkPolicyType;
|
||||||
function GetVScrollBarPolicy: TGtkPolicyType;
|
function GetVScrollBarPolicy: TGtkPolicyType;
|
||||||
procedure SetBorderStyle(AValue: TBorderStyle);
|
procedure SetBorderStyle(AValue: TBorderStyle);
|
||||||
@ -5685,14 +5686,22 @@ procedure TGtk3ScrollableWin.SetScrollBarsSignalHandlers(const
|
|||||||
AIsHorizontalScrollBar:boolean);
|
AIsHorizontalScrollBar:boolean);
|
||||||
begin
|
begin
|
||||||
{TODO: create real instances for scrollbars via TGtk3Widget.CreateFrom() ?}
|
{TODO: create real instances for scrollbars via TGtk3Widget.CreateFrom() ?}
|
||||||
|
if IsDesigning then
|
||||||
|
exit;
|
||||||
FBorderStyle := bsNone;
|
FBorderStyle := bsNone;
|
||||||
if AIsHorizontalScrollBar then
|
if AIsHorizontalScrollBar then
|
||||||
begin
|
begin
|
||||||
g_signal_connect_data(getHorizontalScrollbar, 'change-value',
|
if not FHBarInitialized then
|
||||||
TGCallback(@Gtk3RangeScrollCB), Self, nil, G_CONNECT_DEFAULT);
|
g_signal_connect_data(getHorizontalScrollbar, 'change-value',
|
||||||
|
TGCallback(@Gtk3RangeScrollCB), Self, nil, G_CONNECT_DEFAULT);
|
||||||
|
FHBarInitialized := True;
|
||||||
end else
|
end else
|
||||||
g_signal_connect_data(getVerticalScrollbar, 'change-value',
|
begin
|
||||||
TGCallback(@Gtk3RangeScrollCB), Self, nil, G_CONNECT_DEFAULT);
|
if not FVBarInitialized then
|
||||||
|
g_signal_connect_data(getVerticalScrollbar, 'change-value',
|
||||||
|
TGCallback(@Gtk3RangeScrollCB), Self, nil, G_CONNECT_DEFAULT);
|
||||||
|
FVBarInitialized := True;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{$IFDEF GTK3DEBUGSIZE}
|
{$IFDEF GTK3DEBUGSIZE}
|
||||||
|
Loading…
Reference in New Issue
Block a user