mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-18 09:29:35 +02:00
Merged revision(s) 64003 #32439437d4, 64070 #609f5046d8, 64130 #e405b8c6ac, 64142 #2a0df745f0, 64161 #62462e4388 from trunk:
LCL-GTK2: Prevent "critical" messages generated by TabControl Tabs. Issue #37924, patch from Anton Kavalenka. ........ IDE: Don't cut a dotted TargetFilename when adding an extension to it. Issue #34665. ........ LCL-GTK2: Fix drawing of text region in TListView and others. Issue #38062, patch from Joeny Ang. ........ LCL: Do not call TTreeView.OnCollapsing and OnCollapsed during clearing the items. Issue #38084. ........ TAChart: Fix some ZoomDragTool and DataPointCrosshairTool painting on other chart if shared between two charts. ........ git-svn-id: branches/fixes_2_0@64611 -
This commit is contained in:
parent
7c386df181
commit
561d01f2e6
components/tachart
ide
lcl
@ -686,6 +686,7 @@ begin
|
||||
i := FChart.ActiveToolIndex;
|
||||
if (i <> Index) and InRange(i, 0, Toolset.Tools.Count) then
|
||||
Toolset[i].Deactivate;
|
||||
FCurrentDrawer := nil;
|
||||
inherited;
|
||||
SetCursor;
|
||||
end;
|
||||
@ -2011,6 +2012,7 @@ end;
|
||||
|
||||
procedure TDataPointCrosshairTool.MouseDown(APoint: TPoint);
|
||||
begin
|
||||
FCurrentDrawer := nil;
|
||||
MouseMove(APoint);
|
||||
end;
|
||||
|
||||
|
@ -414,8 +414,10 @@ type
|
||||
FOtherDefines: TStrings; // list of user selectable defines for custom options
|
||||
FFPCMsgFile: TFPCMsgFilePoolItem;
|
||||
FCreateMakefileOnBuild: boolean;
|
||||
procedure AppendDefaultExt(var aFilename: string);
|
||||
function GetExecuteAfter: TCompilationToolOptions;
|
||||
function GetExecuteBefore: TCompilationToolOptions;
|
||||
procedure PrependDefaultType(var AFilename: string);
|
||||
procedure SetCreateMakefileOnBuild(AValue: boolean);
|
||||
protected
|
||||
function GetCompilerPath: String; override;
|
||||
@ -1940,66 +1942,51 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
TBaseCompilerOptions CreateTargetFilename
|
||||
------------------------------------------------------------------------------}
|
||||
function TBaseCompilerOptions.CreateTargetFilename: string;
|
||||
|
||||
procedure AppendDefaultExt(var aFilename: string);
|
||||
var
|
||||
Ext: String;
|
||||
begin
|
||||
if (ExtractFileName(aFilename)='') then exit;
|
||||
Ext:=GetTargetFileExt;
|
||||
if Ext<>'' then begin
|
||||
aFilename:=ChangeFileExt(aFilename,Ext);
|
||||
//debugln ( 'Filename is ',AFilename,' in AppendDefaultExt' );
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure PrependDefaultType(var AFilename: string);
|
||||
var
|
||||
Prefix: String;
|
||||
FileName: String;
|
||||
PathName: String;
|
||||
CurTargetOS: String;
|
||||
aSrcOS: String;
|
||||
begin
|
||||
//debugln ( 'Filename AFilename is ',AFilename, ' in PrependDefaultType' );
|
||||
if (ExtractFileName(AFilename)='')
|
||||
or (CompareText(copy(ExtractFileName(AFilename),1,3), 'lib') = 0) then exit;
|
||||
Prefix:=GetTargetFilePrefix;
|
||||
if Prefix<>'' then begin
|
||||
FileName := ExtractFileName(AFilename);
|
||||
PathName := ExtractFilePath(AFilename);
|
||||
//debugln ( 'Filename is ',FileName, ' in PrependDefaultType' );
|
||||
CurTargetOS:=TargetOS;
|
||||
if CurTargetOS='' then CurTargetOS:=GetCompiledTargetOS;
|
||||
aSrcOS:=GetDefaultSrcOSForTargetOS(CurTargetOS);
|
||||
if (CompareText(aSrcOS, 'unix') = 0)
|
||||
then begin
|
||||
AFilename:=PathName+Prefix+UTF8LowerCase(FileName);
|
||||
end else begin
|
||||
AFilename:=PathName+Prefix+FileName;
|
||||
end;
|
||||
//debugln ( 'AFilename is ',AFilename, ' in PrependDefaultType' );
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TBaseCompilerOptions.AppendDefaultExt(var aFilename: string);
|
||||
var
|
||||
UnitOutDir: String;
|
||||
OutFilename: String;
|
||||
Dir: String;
|
||||
Ext: String;
|
||||
begin
|
||||
if ExtractFileName(aFilename)='' then exit;
|
||||
Ext:=GetTargetFileExt;
|
||||
if (Ext<>'') and (CompareFileExt(aFilename,Ext)<>0) then
|
||||
aFilename:=aFilename+Ext;
|
||||
//DebugLn('Filename is ',AFilename,' in AppendDefaultExt');
|
||||
end;
|
||||
|
||||
procedure TBaseCompilerOptions.PrependDefaultType(var AFilename: string);
|
||||
var
|
||||
Prefix, FileName, PathName, CurTargetOS, aSrcOS: String;
|
||||
begin
|
||||
//DebugLn('Filename AFilename is ',AFilename, ' in PrependDefaultType');
|
||||
if (ExtractFileName(AFilename)='')
|
||||
or (CompareText(copy(ExtractFileName(AFilename),1,3), 'lib') = 0) then exit;
|
||||
Prefix:=GetTargetFilePrefix;
|
||||
if Prefix<>'' then
|
||||
begin
|
||||
FileName := ExtractFileName(AFilename);
|
||||
PathName := ExtractFilePath(AFilename);
|
||||
//debugln ( 'Filename is ',FileName, ' in PrependDefaultType' );
|
||||
CurTargetOS:=TargetOS;
|
||||
if CurTargetOS='' then CurTargetOS:=GetCompiledTargetOS;
|
||||
aSrcOS:=GetDefaultSrcOSForTargetOS(CurTargetOS);
|
||||
if CompareText(aSrcOS, 'unix') = 0 then
|
||||
AFilename:=PathName+Prefix+UTF8LowerCase(FileName)
|
||||
else
|
||||
AFilename:=PathName+Prefix+FileName;
|
||||
//DebugLn('AFilename is ',AFilename, ' in PrependDefaultType');
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TBaseCompilerOptions.CreateTargetFilename: string;
|
||||
var
|
||||
UnitOutDir, OutFilename, Dir: String;
|
||||
begin
|
||||
Result:=TargetFilename;
|
||||
if Assigned(ParsedOpts.OnLocalSubstitute) then
|
||||
begin
|
||||
Result:=ParsedOpts.OnLocalSubstitute(Result,false);
|
||||
end else begin
|
||||
Result:=ParsedOpts.OnLocalSubstitute(Result,false)
|
||||
else
|
||||
Result:=ParseString(ParsedOpts,Result,false);
|
||||
end;
|
||||
if (Result<>'') and FilenameIsAbsolute(Result) then begin
|
||||
// fully specified target filename
|
||||
end else if Result<>'' then begin
|
||||
|
@ -2828,8 +2828,8 @@ type
|
||||
nsVisible, // = Node.Visible
|
||||
nsBound // bound to a tree, e.g. has Parent or is top lvl node
|
||||
);
|
||||
|
||||
TNodeStates = set of TNodeState;
|
||||
|
||||
TNodeAttachMode = (
|
||||
naAdd, // add as last sibling of Destination
|
||||
naAddFirst, // add as first sibling of Destination
|
||||
@ -2970,7 +2970,7 @@ type
|
||||
function CompareCount(CompareMe: Integer): Boolean;
|
||||
function DoCanExpand(ExpandIt: Boolean): Boolean;
|
||||
procedure DoExpand(ExpandIt: Boolean);
|
||||
procedure ExpandItem(ExpandIt: Boolean; Recurse: Boolean);
|
||||
procedure ExpandItem(ExpandIt, Recurse: Boolean);
|
||||
function GetAbsoluteIndex: Integer;
|
||||
function GetDeleting: Boolean;
|
||||
function GetHasChildren: Boolean;
|
||||
|
@ -694,7 +694,6 @@ end;
|
||||
|
||||
procedure TTreeNode.ExpandItem(ExpandIt: Boolean; Recurse: Boolean);
|
||||
var
|
||||
//Flag: Integer;
|
||||
ANode: TTreeNode;
|
||||
begin
|
||||
if Recurse then begin
|
||||
@ -1272,7 +1271,8 @@ end;
|
||||
|
||||
procedure TTreeNode.Unbind;
|
||||
// unbind from parent and neighbor siblings, but not from owner
|
||||
var OldIndex, i: integer;
|
||||
var
|
||||
OldIndex, i: integer;
|
||||
HigherNode: TTreeNode;
|
||||
TheTreeView: TCustomTreeView;
|
||||
begin
|
||||
@ -1332,8 +1332,13 @@ begin
|
||||
ReAllocMem(FParent.FItems,SizeOf(Pointer)*FParent.FCapacity);
|
||||
end;
|
||||
if FParent.Count=0 then begin
|
||||
FParent.Expanded:=false;
|
||||
FParent.HasChildren:=false;
|
||||
TheTreeView.BeginUpdate;
|
||||
try
|
||||
FParent.Expanded:=false;
|
||||
FParent.HasChildren:=false;
|
||||
finally
|
||||
TheTreeView.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
FParent:=nil;
|
||||
end;
|
||||
@ -5447,7 +5452,8 @@ end;
|
||||
|
||||
procedure TCustomTreeView.GetImageIndex(Node: TTreeNode);
|
||||
begin
|
||||
if Assigned(FOnGetImageIndex) then FOnGetImageIndex(Self, Node);
|
||||
if Assigned(FOnGetImageIndex) then
|
||||
FOnGetImageIndex(Self, Node);
|
||||
end;
|
||||
|
||||
procedure TCustomTreeView.GetSelectedIndex(Node: TTreeNode);
|
||||
@ -5458,7 +5464,8 @@ end;
|
||||
function TCustomTreeView.CanChange(Node: TTreeNode): Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
if Assigned(Node) and Assigned(FOnChanging) then FOnChanging(Self, Node, Result);
|
||||
if Assigned(Node) and Assigned(FOnChanging) then
|
||||
FOnChanging(Self, Node, Result);
|
||||
end;
|
||||
|
||||
procedure TCustomTreeView.Change(Node: TTreeNode);
|
||||
@ -5472,39 +5479,44 @@ begin
|
||||
if Assigned(FOnDeletion) then FOnDeletion(Self, Node);
|
||||
end;
|
||||
|
||||
procedure TCustomTreeView.Expand(Node: TTreeNode);
|
||||
begin
|
||||
UpdateScrollbars;
|
||||
if Assigned(FOnExpanded) then FOnExpanded(Self, Node);
|
||||
end;
|
||||
|
||||
function TCustomTreeView.ExpandSignSizeIsStored: Boolean;
|
||||
begin
|
||||
Result := FExpandSignSize >= 0;
|
||||
end;
|
||||
|
||||
procedure TCustomTreeView.Expand(Node: TTreeNode);
|
||||
begin
|
||||
UpdateScrollbars;
|
||||
if Assigned(FOnExpanded) and not (tvsUpdating in FStates) then
|
||||
FOnExpanded(Self, Node);
|
||||
end;
|
||||
|
||||
function TCustomTreeView.CanExpand(Node: TTreeNode): Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
if Assigned(FOnExpanding) then FOnExpanding(Self, Node, Result);
|
||||
if Assigned(FOnExpanding) and not (tvsUpdating in FStates) then
|
||||
FOnExpanding(Self, Node, Result);
|
||||
end;
|
||||
|
||||
procedure TCustomTreeView.Collapse(Node: TTreeNode);
|
||||
begin
|
||||
UpdateScrollbars;
|
||||
if Assigned(FOnCollapsed) then FOnCollapsed(Self, Node);
|
||||
if Assigned(FOnCollapsed) and not (tvsUpdating in FStates) then
|
||||
FOnCollapsed(Self, Node);
|
||||
end;
|
||||
|
||||
function TCustomTreeView.CanCollapse(Node: TTreeNode): Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
if Assigned(FOnCollapsing) then FOnCollapsing(Self, Node, Result);
|
||||
if Assigned(FOnCollapsing) and not (tvsUpdating in FStates) then
|
||||
FOnCollapsing(Self, Node, Result);
|
||||
end;
|
||||
|
||||
function TCustomTreeView.CanEdit(Node: TTreeNode): Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
if Assigned(FOnEditing) then FOnEditing(Self, Node, Result);
|
||||
if Assigned(FOnEditing) then
|
||||
FOnEditing(Self, Node, Result);
|
||||
end;
|
||||
|
||||
procedure TCustomTreeView.EndEditing(Cancel: boolean);
|
||||
|
@ -4112,11 +4112,13 @@ function GetControlWindow(Widget: Pointer) : PGDKWindow;
|
||||
begin
|
||||
if Widget <> nil then
|
||||
begin
|
||||
gtk_widget_realize(Widget); // associate with window
|
||||
If not GTKWidgetIsA(PGTKWidget(Widget), GTK_Layout_Get_Type) then
|
||||
Result := PGTKWidget(Widget)^.Window
|
||||
else
|
||||
begin
|
||||
gtk_widget_realize(Widget); // associate with window
|
||||
Result := PGtkLayout(Widget)^.bin_window;
|
||||
end;
|
||||
if (Result=nil) and (GTK_WIDGET_NO_WINDOW(Widget)) then
|
||||
Result:=gtk_widget_get_parent_window(Widget);
|
||||
end else
|
||||
|
@ -3753,7 +3753,7 @@ begin
|
||||
Clip:=CreateEmptyRegion
|
||||
else begin
|
||||
GDK_Window_Get_Size(Drawable, @X, @Y);
|
||||
Clip := CreateRectRGN(0, 0, X, Y);
|
||||
Clip := CreateRectRGN(-Offset.X, -Offset.Y, X - Offset.X, Y - Offset.Y);
|
||||
end;
|
||||
// create target clip
|
||||
Tmp := CreateEmptyRegion;
|
||||
|
Loading…
Reference in New Issue
Block a user