mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 07:19:18 +02:00
LCL-GTK2: Eliminate delayed SetSelStart. Issue #34678.
git-svn-id: trunk@62807 -
This commit is contained in:
parent
e4a6fcf1af
commit
a8e7c6e3a7
@ -1275,16 +1275,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function gtk2WSDelayedSelStart(Data: Pointer): gboolean; cdecl;
|
|
||||||
var
|
|
||||||
Entry: PGtkEntry;
|
|
||||||
begin
|
|
||||||
Result := False;
|
|
||||||
Entry := PGtkEntry(PWidgetInfo(Data)^.CoreWidget);
|
|
||||||
gtk_editable_set_position(PGtkEditable(Entry), PWidgetInfo(Data)^.CursorPos);
|
|
||||||
g_idle_remove_by_data(Data);
|
|
||||||
end;
|
|
||||||
|
|
||||||
class procedure TGtk2WSCustomEdit.SetCaretPos(const ACustomEdit: TCustomEdit;
|
class procedure TGtk2WSCustomEdit.SetCaretPos(const ACustomEdit: TCustomEdit;
|
||||||
const NewPos: TPoint);
|
const NewPos: TPoint);
|
||||||
var
|
var
|
||||||
@ -1305,12 +1295,7 @@ begin
|
|||||||
NewStart := Min(NewPos.X, Entry^.text_length);
|
NewStart := Min(NewPos.X, Entry^.text_length);
|
||||||
WidgetInfo := GetWidgetInfo(Entry);
|
WidgetInfo := GetWidgetInfo(Entry);
|
||||||
WidgetInfo^.CursorPos := NewStart;
|
WidgetInfo^.CursorPos := NewStart;
|
||||||
if LockOnChange(PgtkObject(Entry),0) > 0 then
|
gtk_editable_set_position(PGtkEditable(Entry), NewStart);
|
||||||
begin
|
|
||||||
// postpone
|
|
||||||
g_idle_add(@gtk2WSDelayedSelStart, WidgetInfo);
|
|
||||||
end else
|
|
||||||
gtk_editable_set_position(PGtkEditable(Entry), NewStart);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class procedure TGtk2WSCustomEdit.SetEchoMode(const ACustomEdit: TCustomEdit;
|
class procedure TGtk2WSCustomEdit.SetEchoMode(const ACustomEdit: TCustomEdit;
|
||||||
@ -1378,12 +1363,7 @@ begin
|
|||||||
NewPos := Min(NewStart, Entry^.text_length);
|
NewPos := Min(NewStart, Entry^.text_length);
|
||||||
WidgetInfo := GetWidgetInfo(Entry);
|
WidgetInfo := GetWidgetInfo(Entry);
|
||||||
WidgetInfo^.CursorPos := NewPos;
|
WidgetInfo^.CursorPos := NewPos;
|
||||||
if LockOnChange(PgtkObject(Entry),0) > 0 then
|
gtk_editable_set_position(PGtkEditable(Entry), NewPos);
|
||||||
begin
|
|
||||||
// postpone
|
|
||||||
g_idle_add(@gtk2WSDelayedSelStart, WidgetInfo);
|
|
||||||
end else
|
|
||||||
gtk_editable_set_position(PGtkEditable(Entry), NewPos);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class procedure TGtk2WSCustomEdit.SetSelLength(
|
class procedure TGtk2WSCustomEdit.SetSelLength(
|
||||||
|
Loading…
Reference in New Issue
Block a user