You've already forked lazarus-ccr
NiceGrid: Fix crash in gtk3 due to loading cursors. Introduce TNiceGridState to avoid defining the grid state by means of the current cursor.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8870 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -42,7 +42,7 @@
|
|||||||
<Filename Value="basic_demo.lpr"/>
|
<Filename Value="basic_demo.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<CursorPos X="47" Y="15"/>
|
<CursorPos X="47" Y="15"/>
|
||||||
<UsageCount Value="31"/>
|
<UsageCount Value="35"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
@ -69,7 +69,7 @@
|
|||||||
<EditorIndex Value="5"/>
|
<EditorIndex Value="5"/>
|
||||||
<TopLine Value="2446"/>
|
<TopLine Value="2446"/>
|
||||||
<CursorPos X="15" Y="2463"/>
|
<CursorPos X="15" Y="2463"/>
|
||||||
<UsageCount Value="12"/>
|
<UsageCount Value="14"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit3>
|
</Unit3>
|
||||||
<Unit4>
|
<Unit4>
|
||||||
@ -101,9 +101,9 @@
|
|||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<UnitName Value="Main"/>
|
<UnitName Value="Main"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="1"/>
|
||||||
<TopLine Value="18"/>
|
<TopLine Value="121"/>
|
||||||
<CursorPos X="7" Y="35"/>
|
<CursorPos X="3" Y="126"/>
|
||||||
<UsageCount Value="29"/>
|
<UsageCount Value="33"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<LoadedDesigner Value="True"/>
|
<LoadedDesigner Value="True"/>
|
||||||
</Unit7>
|
</Unit7>
|
||||||
@ -112,9 +112,9 @@
|
|||||||
<UnitName Value="NiceGrid"/>
|
<UnitName Value="NiceGrid"/>
|
||||||
<IsVisibleTab Value="True"/>
|
<IsVisibleTab Value="True"/>
|
||||||
<EditorIndex Value="3"/>
|
<EditorIndex Value="3"/>
|
||||||
<TopLine Value="307"/>
|
<TopLine Value="551"/>
|
||||||
<CursorPos X="52" Y="323"/>
|
<CursorPos X="14" Y="573"/>
|
||||||
<UsageCount Value="12"/>
|
<UsageCount Value="14"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit8>
|
</Unit8>
|
||||||
<Unit9>
|
<Unit9>
|
||||||
@ -122,7 +122,7 @@
|
|||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="2"/>
|
||||||
<TopLine Value="740"/>
|
<TopLine Value="740"/>
|
||||||
<CursorPos Y="771"/>
|
<CursorPos Y="771"/>
|
||||||
<UsageCount Value="12"/>
|
<UsageCount Value="14"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit9>
|
</Unit9>
|
||||||
<Unit10>
|
<Unit10>
|
||||||
@ -130,7 +130,7 @@
|
|||||||
<EditorIndex Value="7"/>
|
<EditorIndex Value="7"/>
|
||||||
<TopLine Value="287"/>
|
<TopLine Value="287"/>
|
||||||
<CursorPos X="10" Y="305"/>
|
<CursorPos X="10" Y="305"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="12"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit10>
|
</Unit10>
|
||||||
<Unit11>
|
<Unit11>
|
||||||
@ -139,7 +139,7 @@
|
|||||||
<EditorIndex Value="6"/>
|
<EditorIndex Value="6"/>
|
||||||
<TopLine Value="1202"/>
|
<TopLine Value="1202"/>
|
||||||
<CursorPos X="3" Y="1220"/>
|
<CursorPos X="3" Y="1220"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="12"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit11>
|
</Unit11>
|
||||||
<Unit12>
|
<Unit12>
|
||||||
@ -148,7 +148,7 @@
|
|||||||
<EditorIndex Value="4"/>
|
<EditorIndex Value="4"/>
|
||||||
<TopLine Value="46"/>
|
<TopLine Value="46"/>
|
||||||
<CursorPos X="14" Y="64"/>
|
<CursorPos X="14" Y="64"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="12"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit12>
|
</Unit12>
|
||||||
<Unit13>
|
<Unit13>
|
||||||
@ -157,130 +157,130 @@
|
|||||||
<EditorIndex Value="8"/>
|
<EditorIndex Value="8"/>
|
||||||
<TopLine Value="317"/>
|
<TopLine Value="317"/>
|
||||||
<CursorPos X="10" Y="335"/>
|
<CursorPos X="10" Y="335"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="12"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit13>
|
</Unit13>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="30" HistoryIndex="28">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="701" Column="11" TopLine="678"/>
|
<Caret Line="522" Column="35" TopLine="504"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="..\common\main.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="35" Column="7" TopLine="18"/>
|
<Caret Line="3698" Column="3" TopLine="3680"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="..\..\..\source\nicegridreg.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="63" Column="9" TopLine="48"/>
|
<Caret Line="3708" Column="58" TopLine="3691"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="..\..\..\source\nicegridreg.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="64" Column="14" TopLine="46"/>
|
<Caret Line="3681" Column="36" TopLine="3663"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="519" Column="43" TopLine="501"/>
|
<Caret Line="290" Column="30" TopLine="274"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="3711" Column="57" TopLine="3693"/>
|
<Caret Line="1300" Column="57" TopLine="1283"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="3684" Column="36" TopLine="3666"/>
|
<Caret Line="1251" Column="57" TopLine="1226"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="290" Column="30" TopLine="274"/>
|
<Caret Line="1232" Column="59" TopLine="1213"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="1505" Column="21" TopLine="1483"/>
|
<Caret Line="1212" Column="59" TopLine="1194"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="1306" Column="74" TopLine="1292"/>
|
<Caret Line="1156" Column="16" TopLine="1144"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="2786" Column="13" TopLine="2745"/>
|
<Caret Line="699" Column="11" TopLine="677"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="2696" Column="30" TopLine="2683"/>
|
<Caret Line="323" Column="52" TopLine="307"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\common\main.pas"/>
|
||||||
<Caret Line="353" Column="15" TopLine="336"/>
|
<Caret Line="35" Column="7" TopLine="17"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="..\..\..\source\NiceGrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="415" Column="13" TopLine="412"/>
|
<Caret Line="415" Column="25" TopLine="396"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="642" Column="50" TopLine="625"/>
|
<Caret Line="643" Column="36" TopLine="625"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="563" Column="28" TopLine="534"/>
|
<Caret Line="640" Column="8" TopLine="630"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="3708" Column="29" TopLine="3680"/>
|
<Caret Line="557" Column="88" TopLine="536"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\common\main.pas"/>
|
||||||
<Caret Line="522" Column="35" TopLine="504"/>
|
<Caret Line="35" Column="35" TopLine="18"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\common\main.pas"/>
|
||||||
<Caret Line="3698" Column="3" TopLine="3680"/>
|
<Caret Line="126" Column="3" TopLine="121"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="3708" Column="58" TopLine="3691"/>
|
<Caret Line="290" Column="30" TopLine="274"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="3681" Column="36" TopLine="3663"/>
|
<Caret Line="3175" Column="15" TopLine="3171"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="290" Column="30" TopLine="274"/>
|
<Caret Line="522" Column="35" TopLine="504"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="1300" Column="57" TopLine="1283"/>
|
<Caret Line="4180" Column="16" TopLine="4178"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="1251" Column="57" TopLine="1226"/>
|
<Caret Line="523" Column="33" TopLine="505"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="1232" Column="59" TopLine="1213"/>
|
<Caret Line="4191" Column="36" TopLine="4188"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="1212" Column="59" TopLine="1194"/>
|
<Caret Line="575" Column="5" TopLine="551"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="1156" Column="16" TopLine="1144"/>
|
<Caret Line="523" Column="46" TopLine="505"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="699" Column="11" TopLine="677"/>
|
<Caret Line="519" Column="43" TopLine="501"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="323" Column="15" TopLine="307"/>
|
<Caret Line="4203" Column="16" TopLine="4201"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="C:\Lazarus\lazarus-main_fpc3.2.2\lcl\controls.pp"/>
|
<Filename Value="..\..\..\source\nicegrid.pas"/>
|
||||||
<Caret Line="2463" Column="15" TopLine="2446"/>
|
<Caret Line="4195" Column="3" TopLine="4177"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
|
@ -554,7 +554,7 @@ const
|
|||||||
|
|
||||||
CursorArray: array [TGridHitTest] of TCursor =
|
CursorArray: array [TGridHitTest] of TCursor =
|
||||||
//(gtNone, gtLeftTop, gtLeft, gtTop, gtCell, gtColSizing, gtSmallBox);
|
//(gtNone, gtLeftTop, gtLeft, gtTop, gtCell, gtColSizing, gtSmallBox);
|
||||||
{$IFDEF LCLGtk3}
|
{$IFDEF LCLGtk3} // Issue with loading cursors in GTK3 --> use predefined cursors.
|
||||||
(crDefault, crSizeSE, crSizeE, crSizeS, crHandPoint, crHSplit, crCross);
|
(crDefault, crSizeSE, crSizeE, crSizeS, crHandPoint, crHSplit, crCross);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
(crDefault, crLeftTop, crRight, crDown, crPlus, crHSplit, crSmallCross);
|
(crDefault, crLeftTop, crRight, crDown, crPlus, crHSplit, crSmallCross);
|
||||||
@ -565,6 +565,15 @@ const
|
|||||||
|
|
||||||
MergeID = -2;
|
MergeID = -2;
|
||||||
|
|
||||||
|
{$HINTS OFF}
|
||||||
|
procedure Unused(const A1); overload;
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Unused(const A1, A2); overload;
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
{$HINTS ON}
|
||||||
|
|
||||||
{ TNiceGrid }
|
{ TNiceGrid }
|
||||||
|
|
||||||
@ -638,13 +647,8 @@ begin
|
|||||||
SmallBoxPos := 0;
|
SmallBoxPos := 0;
|
||||||
SizingCol := -1;
|
SizingCol := -1;
|
||||||
SizingColX := -1;
|
SizingColX := -1;
|
||||||
{$IFDEF LCLGtk3}
|
|
||||||
Screen.Cursors[crPlus] := Screen.Cursors[crHandPoint];
|
{$IFNDEF LCLGtk3} // Issue with loading cursors in GTK3.
|
||||||
Screen.Cursors[crSmallCross] := Screen.Cursors[crCross];
|
|
||||||
Screen.Cursors[crRight] := Screen.Cursors[crSizeE];
|
|
||||||
Screen.Cursors[crDown] := Screen.Cursors[crSizeS];
|
|
||||||
Screen.Cursors[crLeftTop] := Screen.Cursors[crSizeSE];
|
|
||||||
{$ELSE}
|
|
||||||
Screen.Cursors[crPlus] := LoadCursor(hinstance, 'CR_PLUS');
|
Screen.Cursors[crPlus] := LoadCursor(hinstance, 'CR_PLUS');
|
||||||
Screen.Cursors[crSmallCross] := LoadCursor(hInstance, 'CR_CROSS');
|
Screen.Cursors[crSmallCross] := LoadCursor(hInstance, 'CR_CROSS');
|
||||||
Screen.Cursors[crRight] := LoadCursor(hinstance, 'CR_RIGHT');
|
Screen.Cursors[crRight] := LoadCursor(hinstance, 'CR_RIGHT');
|
||||||
@ -3172,6 +3176,7 @@ end;
|
|||||||
|
|
||||||
procedure TNiceGrid.WMSetFocus(var Msg: {$IFDEF FPC}TLMSetFocus{$ELSE}TWMSetFocus{$ENDIF});
|
procedure TNiceGrid.WMSetFocus(var Msg: {$IFDEF FPC}TLMSetFocus{$ELSE}TWMSetFocus{$ENDIF});
|
||||||
begin
|
begin
|
||||||
|
Unused(Msg);
|
||||||
CreateCaret(Handle, 0, 1, FDefRowHeight - 2);
|
CreateCaret(Handle, 0, 1, FDefRowHeight - 2);
|
||||||
CaretVisible := False;
|
CaretVisible := False;
|
||||||
InvalidateCells;
|
InvalidateCells;
|
||||||
@ -4176,6 +4181,7 @@ end;
|
|||||||
|
|
||||||
procedure TNiceGridSync.SetScrollBar(AKind, AMax, APos, AMask: Integer);
|
procedure TNiceGridSync.SetScrollBar(AKind, AMax, APos, AMask: Integer);
|
||||||
begin
|
begin
|
||||||
|
Unused(AMax);
|
||||||
if (AKind = SB_VERT) and Assigned(FGrid) then
|
if (AKind = SB_VERT) and Assigned(FGrid) then
|
||||||
begin
|
begin
|
||||||
if ((AMask and SIF_POS) <> 0)
|
if ((AMask and SIF_POS) <> 0)
|
||||||
@ -4186,6 +4192,7 @@ end;
|
|||||||
procedure TNiceGridSync.ShowHideScrollBar(HorzVisible,
|
procedure TNiceGridSync.ShowHideScrollBar(HorzVisible,
|
||||||
VertVisible: Boolean);
|
VertVisible: Boolean);
|
||||||
begin
|
begin
|
||||||
|
Unused(HorzVisible, VertVisible);
|
||||||
ShowScrollBar(Handle, SB_HORZ, True);
|
ShowScrollBar(Handle, SB_HORZ, True);
|
||||||
ShowScrollBar(Handle, SB_VERT, False);
|
ShowScrollBar(Handle, SB_VERT, False);
|
||||||
EnableScrollBar(Handle, SB_HORZ, 3{ESB_DISABLE_BOTH});
|
EnableScrollBar(Handle, SB_HORZ, 3{ESB_DISABLE_BOTH});
|
||||||
@ -4193,6 +4200,7 @@ end;
|
|||||||
|
|
||||||
procedure TNiceGridSync.SyncColRow(Sender: TObject; ACol, ARow: Integer);
|
procedure TNiceGridSync.SyncColRow(Sender: TObject; ACol, ARow: Integer);
|
||||||
begin
|
begin
|
||||||
|
Unused(ACol);
|
||||||
if Assigned(FGrid)
|
if Assigned(FGrid)
|
||||||
then FGrid.Row := ARow;
|
then FGrid.Row := ARow;
|
||||||
end;
|
end;
|
||||||
|
Reference in New Issue
Block a user