编辑器

优化细节
This commit is contained in:
JianjunLiu 2023-03-20 17:43:54 +08:00
parent 922b9dc022
commit 55f110df48
3 changed files with 17 additions and 12 deletions

View File

@ -1611,7 +1611,8 @@ type tdirviewer = class(tcustomcontrol)
fms[i] := mi; fms[i] := mi;
end end
ftree.onrclick :=function(o,e)begin ftree.onrclick :=function(o,e)begin
nd := o.CurrentNode; //nd := o.CurrentNode;
nd := FTree.GetItemByYPos(e.ypos) ;
if nd then if nd then
begin begin
if (nd.parent = o.rootnode) then //¸ùĿ¼ if (nd.parent = o.rootnode) then //¸ùĿ¼

View File

@ -74,6 +74,8 @@ type tapplication=class(tcomponent)
Fmainform; //Ö÷´°¿Ú Fmainform; //Ö÷´°¿Ú
FDebug; FDebug;
Foldforminfo; Foldforminfo;
FTerminated;
static frundeep;
function SetVisible(v); function SetVisible(v);
begin begin
FVisible := v?true:false; FVisible := v?true:false;
@ -124,7 +126,9 @@ type tapplication=class(tcomponent)
function create(AOwner);override; function create(AOwner);override;
begin begin
inherited; inherited;
FTerminated := false;
FVisible := false; FVisible := false;
frundeep := new tnumindexarray();
end end
function WMACTIVATEAPP(o,e);virtual; function WMACTIVATEAPP(o,e);virtual;
begin begin
@ -214,7 +218,11 @@ type tapplication=class(tcomponent)
**} **}
initialize(); initialize();
{$ifdef linuxgtk} {$ifdef linuxgtk}
return _wapi.gtk_mainidle(); idledata := 123123+frundeep.length();
frundeep.Push(idledata);
r := _wapi.gtk_mainidle(idledata);
frundeep.pop();
return r;
{$endif} {$endif}
if not FMessageObj then FMessageObj := new TTagMSG(); if not FMessageObj then FMessageObj := new TTagMSG();
ptr := FMessageObj._getptr_; ptr := FMessageObj._getptr_;
@ -235,7 +243,8 @@ type tapplication=class(tcomponent)
begin begin
if FMessageObj.message=0x12 then if FMessageObj.message=0x12 then
begin begin
return 1; //return 1;
FTerminated := true;
end else end else
begin begin
_wapi.TranslateMessage(ptr); _wapi.TranslateMessage(ptr);
@ -247,6 +256,7 @@ type tapplication=class(tcomponent)
RunWorkerThreadLoop(); RunWorkerThreadLoop();
_wapi.WaitMessage(); _wapi.WaitMessage();
end end
if FTerminated then break;
end end
{while (_wapi.GetMessageA(ptr, 0, 0, 0)) do {while (_wapi.GetMessageA(ptr, 0, 0, 0)) do

View File

@ -3329,19 +3329,13 @@ type tgtkapis = class() //gtk
////////////////////////// start //////////////////////////////////////// ////////////////////////// start ////////////////////////////////////////
procedure gtk_init(argc:string;argcv:string);cdecl;external 'libgtk-3.so'; procedure gtk_init(argc:string;argcv:string);cdecl;external 'libgtk-3.so';
procedure gtk_main ();cdecl;external 'libgtk-3.so'; procedure gtk_main ();cdecl;external 'libgtk-3.so';
function gtk_mainidle(); function gtk_mainidle(idledata);
begin begin
//idledata :=(new tcbytearray(4))._getptr_();
idledata :=(new tcbytearray(4))._getptr_();
id := g_idle_add(gettslvcleventhandler_("tsl_gtk_idle"),idledata); id := g_idle_add(gettslvcleventhandler_("tsl_gtk_idle"),idledata);
gtk_main(); gtk_main();
g_idle_remove_by_data(idledata); //ɾ³ýidle g_idle_remove_by_data(idledata); //ɾ³ýidle
return 1; return 1;
idledata :=(new tcbytearray(4))._getptr_();
id := tsl_gtk_idle_interface(idledata);//_wapi.tsl_gtk_idle_interface(idledata); //¹¹Ôìidle
_wapi.gtk_main();
_Wapi.g_idle_remove_by_data(idledata); //ɾ³ýidle
return 1;
end end
function g_idle_add(f:pointer;d:pointer):integer;cdecl;external 'libgtk-3.so'; function g_idle_add(f:pointer;d:pointer):integer;cdecl;external 'libgtk-3.so';
procedure gtk_main_quit();cdecl;external 'libgtk-3.so'; procedure gtk_main_quit();cdecl;external 'libgtk-3.so';