mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-02 11:49:51 +02:00
gtk2: trial to fix gtk2 clipboard crash
git-svn-id: trunk@17272 -
This commit is contained in:
parent
dba66d3a1e
commit
2e48fd922a
@ -54,4 +54,11 @@ implementation
|
||||
{$I gtk2extra.inc}
|
||||
{$endif}
|
||||
|
||||
{$ifdef gtk2}
|
||||
initialization
|
||||
Initialize;
|
||||
finalization
|
||||
Finalize;
|
||||
{$endif}
|
||||
|
||||
end.
|
||||
|
@ -5055,11 +5055,16 @@ const
|
||||
while (CurSelList<>nil) do begin
|
||||
TargetSelList := CurSelList^.Data;
|
||||
gtk_target_list_unref(TargetSelList^.List);
|
||||
{$ifndef gtk1}
|
||||
if (gtk_major_version = 2) and (gtk_minor_version > 12) and (@g_slice_free1 <> nil) then
|
||||
g_slice_free1(SizeOf(TGtkTargetSelectionList), TargetSelList)
|
||||
else
|
||||
{$endif}
|
||||
g_free(TargetSelList);
|
||||
CurSelList := CurSelList^.Next;
|
||||
end;
|
||||
g_list_free(SelectionLists);
|
||||
gtk_object_set_data (PGtkObject(Widget),gtk_selection_handler_key,GtkNil);
|
||||
gtk_object_set_data (PGtkObject(Widget), gtk_selection_handler_key, GtkNil);
|
||||
{$IFDEF DEBUG_CLIPBOARD}
|
||||
DebugLn(' ClearTargetLists WWW END');
|
||||
{$ENDIF}
|
||||
|
@ -53,3 +53,16 @@ begin
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
procedure Initialize;
|
||||
begin
|
||||
Pointer(g_slice_free1) := nil;
|
||||
glibhandle := LoadLibrary(gliblib);
|
||||
if glibhandle <> 0 then
|
||||
Pointer(g_slice_free1) := GetProcAddress(glibhandle, 'g_slice_free1');
|
||||
end;
|
||||
|
||||
procedure Finalize;
|
||||
begin
|
||||
if glibhandle <> 0 then
|
||||
FreeLibrary(glibhandle);
|
||||
end;
|
||||
|
@ -23,7 +23,7 @@ uses
|
||||
{$ifdef HasGdk2X}
|
||||
gdk2x,
|
||||
{$endif}
|
||||
Pango;
|
||||
Pango, dynlibs;
|
||||
|
||||
const
|
||||
gdkdll = gdklib;
|
||||
@ -190,3 +190,6 @@ procedure gtk_file_chooser_set_do_overwrite_confirmation(chooser:PGtkFileChooser
|
||||
{$ifdef GTK_2_10}
|
||||
function gdk_screen_is_composited(screen: PGdkScreen): gboolean; cdecl; external gdklib;
|
||||
{$endif}
|
||||
var
|
||||
glibhandle: PtrUInt = 0;
|
||||
g_slice_free1: procedure(block_size:gsize; mem_block:gpointer); cdecl;
|
||||
|
Loading…
Reference in New Issue
Block a user