diff --git a/lcl/interfaces/gtk/gtkobject.inc b/lcl/interfaces/gtk/gtkobject.inc index b3f0a3fed3..92cd13bb11 100644 --- a/lcl/interfaces/gtk/gtkobject.inc +++ b/lcl/interfaces/gtk/gtkobject.inc @@ -4953,7 +4953,11 @@ begin csArrow : begin - p := gtk_arrow_new(gtk_arrow_left,gtk_shadow_etched_in); + P := gtk_event_box_new(); + TempWidget := gtk_arrow_new(gtk_arrow_left, gtk_shadow_etched_in); + gtk_container_add(p, TempWidget); + gtk_widget_show(TempWidget); + gtk_object_set_data(P, 'arrow', TempWidget); end; csBitBtn, diff --git a/lcl/interfaces/gtk/gtkwsarrow.pp b/lcl/interfaces/gtk/gtkwsarrow.pp index e2a7859f06..8277b44a2b 100644 --- a/lcl/interfaces/gtk/gtkwsarrow.pp +++ b/lcl/interfaces/gtk/gtkwsarrow.pp @@ -56,6 +56,7 @@ class procedure TGtkWSArrow.SetType(const AArrow: TArrow; const AArrowType: TArr var ArrowType : TGTKArrowType; ShadowType : TGTKShadowType; + ArrowWidget: PGtkArrow; begin case AArrowType of atUp: ArrowType := GTK_ARROW_UP; @@ -75,7 +76,8 @@ begin ShadowType := GTK_SHADOW_NONE; end; - gtk_arrow_set(PGtkArrow(AArrow.Handle), ArrowType, ShadowType); + ArrowWidget := gtk_object_get_data(PGtkObject(AArrow.Handle), 'arrow'); + gtk_arrow_set(ArrowWidget, ArrowType, ShadowType); end; initialization @@ -88,4 +90,4 @@ initialization //////////////////////////////////////////////////// RegisterWSComponent(TArrow, TGtkWSArrow); //////////////////////////////////////////////////// -end. \ No newline at end of file +end.