mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-02 09:21:53 +02:00
LCL-GTK2: Fix pasting big amount of clipboard data. Issue #18295, modified from Zeljko's patch.
git-svn-id: trunk@58969 -
This commit is contained in:
parent
4d743ea119
commit
34613d5cb8
@ -7504,6 +7504,7 @@ function RequestSelectionData(ClipboardWidget: PGtkWidget;
|
||||
var
|
||||
TimeID: cardinal;
|
||||
c: PClipboardEventData;
|
||||
Atom: TGdkAtom;
|
||||
StartTime: TDateTime;
|
||||
begin
|
||||
{$IFDEF DEBUG_CLIPBOARD}
|
||||
@ -7531,15 +7532,13 @@ begin
|
||||
c^.TimeID:=TimeID;
|
||||
ClipboardSelectionData.Add(c);
|
||||
try
|
||||
Atom := ClipboardTypeAtoms[ClipboardType];
|
||||
{$IFDEF DEBUG_CLIPBOARD}
|
||||
DebugLn('[RequestSelectionData] TimeID=',dbgs(TimeID),' Type=',GdkAtomToStr(ClipboardTypeAtoms[ClipboardType]),' FormatID=',GdkAtomToStr(FormatID));
|
||||
DebugLn('[RequestSelectionData] TimeID=',dbgs(TimeID),' Type=',GdkAtomToStr(Atom),' FormatID=',GdkAtomToStr(FormatID));
|
||||
{$ENDIF}
|
||||
if gtk_selection_convert(ClipboardWidget, ClipboardTypeAtoms[ClipboardType],
|
||||
FormatID, TimeID)<>GdkFalse
|
||||
then begin
|
||||
if not WaitForClipboardAnswer(c) then exit;
|
||||
Result:=c^.Data;
|
||||
end;
|
||||
if gtk_selection_convert(ClipboardWidget,Atom,FormatID,TimeID) <> GdkFalse then
|
||||
if gtk_clipboard_wait_is_text_available(gtk_clipboard_get(Atom)) then
|
||||
Result:=c^.Data;
|
||||
finally
|
||||
ClipboardSelectionData.Remove(c);
|
||||
Dispose(c);
|
||||
|
Loading…
Reference in New Issue
Block a user