Gtk: fixed AV in TGtk2WSCustomListView.GetItemAt() with gtk2 libs >=2.19.Patch by Flavio Etrusco, modified by me.

git-svn-id: trunk@25246 -
This commit is contained in:
zeljko 2010-05-08 07:58:37 +00:00
parent 6a8b0b74a7
commit 2fb19534f3

View File

@ -1476,12 +1476,21 @@ begin
if GTK_IS_TREE_VIEW(Widgets^.MainView) then
begin
// convert X, Y to bin window coords
x := x + Round(PGtkTreeView(Widgets^.MainView)^.priv^.hadjustment^.value);
if GTK_TREE_VIEW_FLAG_SET(PGtkTreeView(Widgets^.MainView), GTK_TREE_VIEW_HEADERS_VISIBLE) then
// gtk2 >= 2.19 changed treeview api
if gtk_minor_version >= 19 then
begin
gdk_window_get_size(PGtkTreeView(Widgets^.MainView)^.priv^.header_window, @cx, @cy);
y := y - cy;
gdk_window_get_position(gtk_tree_view_get_bin_window(PGtkTreeView(Widgets^.MainView)), @cx, @cy);
Dec(x, cx);
Dec(y, cy);
end else
begin
// convert X, Y to bin window coords
x := x + Round(PGtkTreeView(Widgets^.MainView)^.priv^.hadjustment^.value);
if GTK_TREE_VIEW_FLAG_SET(PGtkTreeView(Widgets^.MainView), GTK_TREE_VIEW_HEADERS_VISIBLE) then
begin
gdk_window_get_size(PGtkTreeView(Widgets^.MainView)^.priv^.header_window, @cx, @cy);
y := y - cy;
end;
end;
if gtk_tree_view_get_path_at_pos(PGtkTreeView(Widgets^.MainView), x, y, ItemPath, Column, nil, nil) then
begin