fixed gtk critical on bring control back/front

git-svn-id: trunk@7886 -
This commit is contained in:
mattias 2005-10-02 11:40:41 +00:00
parent 0b40ab4bb7
commit c5d010ce1b
6 changed files with 50 additions and 23 deletions

View File

@ -4,15 +4,16 @@ object CodeExplorerDlg: TCodeExplorerDlg
ClientWidth = 400
OnCreate = CodeExplorerDlgCreate
OnDestroy = CodeExplorerDlgDestroy
PixelsPerInch = 90
HorzScrollBar.Page = 401
VertScrollBar.Page = 301
PixelsPerInch = 112
HorzScrollBar.Page = 399
VertScrollBar.Page = 299
Left = 290
Height = 300
Top = 163
Width = 400
object OkButton: TButton
Anchors = [akRight, akBottom]
BorderSpacing.InnerBorder = 2
Caption = 'OkButton'
OnClick = OkButtonClick
TabOrder = 0
@ -23,6 +24,7 @@ object CodeExplorerDlg: TCodeExplorerDlg
end
object CancelButton: TButton
Anchors = [akRight, akBottom]
BorderSpacing.InnerBorder = 2
Caption = 'CancelButton'
ModalResult = 2
TabOrder = 1
@ -59,6 +61,15 @@ object CodeExplorerDlg: TCodeExplorerDlg
Top = 11
Width = 354
end
object FollowCursorCheckBox: TCheckBox
Caption = 'FollowCursorCheckBox'
TabOrder = 1
Visible = False
Left = 14
Height = 24
Top = 134
Width = 158
end
end
end
end

View File

@ -4,19 +4,22 @@ LazarusResources.Add('TCodeExplorerDlg','FORMDATA',[
'TPF0'#16'TCodeExplorerDlg'#15'CodeExplorerDlg'#7'Caption'#6#15'CodeExplorerD'
+'lg'#12'ClientHeight'#3','#1#11'ClientWidth'#3#144#1#8'OnCreate'#7#21'CodeEx'
+'plorerDlgCreate'#9'OnDestroy'#7#22'CodeExplorerDlgDestroy'#13'PixelsPerInch'
+#2'Z'#18'HorzScrollBar.Page'#3#145#1#18'VertScrollBar.Page'#3'-'#1#4'Left'#3
+#2'p'#18'HorzScrollBar.Page'#3#143#1#18'VertScrollBar.Page'#3'+'#1#4'Left'#3
+'"'#1#6'Height'#3','#1#3'Top'#3#163#0#5'Width'#3#144#1#0#7'TButton'#8'OkButt'
+'on'#7'Anchors'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#8'OkButton'#7'OnCli'
+'ck'#7#13'OkButtonClick'#8'TabOrder'#2#0#4'Left'#3#143#0#6'Height'#2#25#3'To'
+'p'#3#8#1#5'Width'#2'g'#0#0#7'TButton'#12'CancelButton'#7'Anchors'#11#7'akRi'
+'ght'#8'akBottom'#0#7'Caption'#6#12'CancelButton'#11'ModalResult'#2#2#8'TabO'
+'rder'#2#1#4'Left'#3#24#1#6'Height'#2#25#3'Top'#3#8#1#5'Width'#2'g'#0#0#9'TN'
+'otebook'#12'MainNotebook'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akB'
+'ottom'#0#9'PageIndex'#2#0#4'Left'#2#8#6'Height'#3#248#0#3'Top'#2#8#5'Width'
+#3#128#1#0#5'TPage'#10'UpdatePage'#7'Caption'#6#10'UpdatePage'#11'ClientWidt'
+'h'#3'|'#1#12'ClientHeight'#3#218#0#4'Left'#2#2#6'Height'#3#218#0#3'Top'#2#28
+#5'Width'#3'|'#1#0#11'TRadioGroup'#17'RefreshRadioGroup'#7'Caption'#6#17'Ref'
+'reshRadioGroup'#13'Items.Strings'#1#6#6'Manual'#6#10'SwitchPage'#6#4'Idle'#0
+#11'ParentColor'#9#4'Left'#2#14#6'Height'#2'i'#3'Top'#2#11#5'Width'#3'b'#1#0
+#0#0#0#0
+'on'#7'Anchors'#11#7'akRight'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#2
+#7'Caption'#6#8'OkButton'#7'OnClick'#7#13'OkButtonClick'#8'TabOrder'#2#0#4'L'
+'eft'#3#143#0#6'Height'#2#25#3'Top'#3#8#1#5'Width'#2'g'#0#0#7'TButton'#12'Ca'
+'ncelButton'#7'Anchors'#11#7'akRight'#8'akBottom'#0#25'BorderSpacing.InnerBo'
+'rder'#2#2#7'Caption'#6#12'CancelButton'#11'ModalResult'#2#2#8'TabOrder'#2#1
+#4'Left'#3#24#1#6'Height'#2#25#3'Top'#3#8#1#5'Width'#2'g'#0#0#9'TNotebook'#12
+'MainNotebook'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#9'P'
+'ageIndex'#2#0#4'Left'#2#8#6'Height'#3#248#0#3'Top'#2#8#5'Width'#3#128#1#0#5
+'TPage'#10'UpdatePage'#7'Caption'#6#10'UpdatePage'#11'ClientWidth'#3'|'#1#12
+'ClientHeight'#3#218#0#4'Left'#2#2#6'Height'#3#218#0#3'Top'#2#28#5'Width'#3
+'|'#1#0#11'TRadioGroup'#17'RefreshRadioGroup'#7'Caption'#6#17'RefreshRadioGr'
+'oup'#13'Items.Strings'#1#6#6'Manual'#6#10'SwitchPage'#6#4'Idle'#0#11'Parent'
+'Color'#9#4'Left'#2#14#6'Height'#2'i'#3'Top'#2#11#5'Width'#3'b'#1#0#0#9'TChe'
+'ckBox'#20'FollowCursorCheckBox'#7'Caption'#6#20'FollowCursorCheckBox'#8'Tab'
+'Order'#2#1#7'Visible'#8#4'Left'#2#14#6'Height'#2#24#3'Top'#3#134#0#5'Width'
+#3#158#0#0#0#0#0#0
]);

View File

@ -36,7 +36,7 @@ interface
uses
Classes, SysUtils, LCLProc, LResources, Forms, Controls, Graphics, Dialogs,
Laz_XMLCfg, Buttons, ExtCtrls, FileUtil,
LazConf, IDEProcs, LazarusIDEStrConsts;
LazConf, IDEProcs, LazarusIDEStrConsts, StdCtrls;
type
{ TCodeExplorerOptions }
@ -49,6 +49,7 @@ type
TCodeExplorerOptions = class(TPersistent)
private
FFollowCursor: boolean;
FOptionsFilename: string;
FRefresh: TCodeExplorerRefresh;
public
@ -63,11 +64,13 @@ type
public
property Refresh: TCodeExplorerRefresh read FRefresh write FRefresh;
property OptionsFilename: string read FOptionsFilename write FOptionsFilename;
property FollowCursor: boolean read FFollowCursor write FFollowCursor;
end;
{ TCodeExplorerDlg }
TCodeExplorerDlg = class(TForm)
FollowCursorCheckBox: TCheckBox;
MainNotebook: TNotebook;
OkButton: TButton;
CancelButton: TButton;
@ -135,7 +138,7 @@ constructor TCodeExplorerOptions.Create;
begin
FOptionsFilename:=
AppendPathDelim(GetPrimaryConfigPath)+'codeexploreroptions.xml';
FRefresh:=cerDefault;
Clear;
end;
destructor TCodeExplorerOptions.Destroy;
@ -146,6 +149,7 @@ end;
procedure TCodeExplorerOptions.Clear;
begin
FRefresh:=cerDefault;
FFollowCursor:=true;
end;
procedure TCodeExplorerOptions.Assign(Source: TPersistent);
@ -155,6 +159,7 @@ begin
if Source is TCodeExplorerOptions then begin
Src:=TCodeExplorerOptions(Source);
FRefresh:=Src.Refresh;
FFollowCursor:=Src.FollowCursor;
end else
inherited Assign(Source);
end;
@ -203,14 +208,18 @@ procedure TCodeExplorerOptions.LoadFromXMLConfig(XMLConfig: TXMLConfig;
const Path: string);
begin
Clear;
FRefresh:=CodeExplorerRefreshNameToEnum(XMLConfig.GetValue('Refresh/Value',''));
FRefresh:=CodeExplorerRefreshNameToEnum(
XMLConfig.GetValue(Path+'Refresh/Value',''));
FFollowCursor:=XMLConfig.GetValue(Path+'FollowCursor',true);
end;
procedure TCodeExplorerOptions.SaveToXMLConfig(XMLConfig: TXMLConfig;
const Path: string);
begin
XMLConfig.SetDeleteValue('Refresh/Value',CodeExplorerRefreshNames[FRefresh],
XMLConfig.SetDeleteValue(Path+'Refresh/Value',
CodeExplorerRefreshNames[FRefresh],
CodeExplorerRefreshNames[cerDefault]);
XMLConfig.SetDeleteValue(Path+'FollowCursor',FFollowCursor,true);
end;
{ TCodeExplorerDlg }
@ -237,7 +246,7 @@ begin
else
RefreshRadioGroup.ItemIndex:=1;
end;
FollowCursorCheckBox.Checked:=Options.FollowCursor;
end;
procedure TCodeExplorerDlg.SaveFormToOptions;
@ -247,6 +256,7 @@ begin
1: FOptions.Refresh:=cerSwitchEditorPage;
2: FOptions.Refresh:=cerOnIdle;
end;
Options.FollowCursor:=FollowCursorCheckBox.Checked;
end;
procedure TCodeExplorerDlg.CodeExplorerDlgCreate(Sender: TObject);
@ -262,6 +272,7 @@ begin
Items[1]:=lisCEOWhenSwitchingFile;
Items[2]:=lisCEOOnIdle;
end;
FollowCursorCheckBox.Caption:=lisCEFollowCursor;
end;
procedure TCodeExplorerDlg.CodeExplorerDlgDestroy(Sender: TObject);

View File

@ -73,7 +73,7 @@ type
procedure CodeTreeviewDblClick(Sender: TObject);
procedure CodeTreeviewDeletion(Sender: TObject; Node: TTreeNode);
procedure CodeTreeviewKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
Shift: TShiftState);
procedure JumpToMenuitemClick(Sender: TObject);
procedure OptionsButtonClick(Sender: TObject);
procedure RefreshButtonClick(Sender: TObject);

View File

@ -2844,6 +2844,7 @@ resourcestring
lisCEONeverOnlyManually = 'Never, only manually';
lisCEOWhenSwitchingFile = 'When switching file in source editor';
lisCEOOnIdle = 'On idle';
lisCEFollowCursor = 'Follow cursor';
lisMenuLazDoc = 'LazDoc Editor';
lisLazDocMainFormCaption = 'LazDoc editor';

View File

@ -611,6 +611,7 @@ begin
Widget := GetWidgetWithWindow(AWincontrol.Handle);
if Widget = nil then Exit;
if Widget^.Window=nil then exit;
case APosition of
wszpBack: begin