Gtk2: fixed bug when tabwidget icon isn't updated when imageindex changed until it gets focus. fixes #16049

git-svn-id: trunk@24191 -
This commit is contained in:
zeljko 2010-03-24 16:34:35 +00:00
parent 387e635060
commit f2a96132c4

View File

@ -247,8 +247,37 @@ begin
end;
class procedure TGtkWSCustomPage.UpdateProperties(const ACustomPage: TCustomPage);
{$ifdef gtk2}
var
NoteBook: PGtkWidget;
PageWidget: PGtkWidget;
TabWidget: PGtkWidget;
TabImageWidget: PGtkWidget;
{$endif}
begin
UpdateNotebookPageTab(nil, ACustomPage);
{$ifdef gtk2}
{we must update our icon (if exists) otherwise it will be updated only
when our tab reach focus}
if not ACustomPage.TabVisible
or not ACustomPage.HandleAllocated
or not Assigned(ACustomPage.Parent)
then
exit;
PageWidget := PGtkWidget(ACustomPage.Handle);
NoteBook := PGtkWidget(ACustomPage.Parent.Handle);
if (NoteBook = nil) or not GTK_IS_NOTEBOOK(NoteBook) then
exit;
TabWidget := gtk_notebook_get_tab_label(PGtkNoteBook(Notebook), PageWidget);
if (TabWidget = nil) or not GTK_WIDGET_VISIBLE(TabWidget) then
exit;
TabImageWidget := gtk_object_get_data(PGtkObject(TabWidget), 'TabImage');
if TabImageWidget <> nil then
gtk_widget_queue_draw(TabImageWidget);
{$endif}
end;
class procedure TGtkWSCustomPage.SetBounds(const AWinControl: TWinControl;