From 338187d10c5f1fa0ac139659df88e4cfa17d9332 Mon Sep 17 00:00:00 2001 From: paul Date: Fri, 16 Apr 2010 02:58:01 +0000 Subject: [PATCH] gtk: SetShape - also shape fixed widget (fixes issue #0016074) git-svn-id: trunk@24644 - --- lcl/interfaces/gtk/gtkwscontrols.pp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lcl/interfaces/gtk/gtkwscontrols.pp b/lcl/interfaces/gtk/gtkwscontrols.pp index 3333ad8aa1..e1f56cc332 100644 --- a/lcl/interfaces/gtk/gtkwscontrols.pp +++ b/lcl/interfaces/gtk/gtkwscontrols.pp @@ -37,7 +37,7 @@ uses SysUtils, Classes, Controls, LMessages, InterfaceBase, WSControls, WSLCLClasses, WSProc, Graphics, ComCtrls, Forms, LCLType, - GtkDef, GTKExtra; + GtkDef, GTKExtra, GtkDebug; type @@ -653,13 +653,14 @@ end; class procedure TGtkWSWinControl.SetShape(const AWinControl: TWinControl; const AShape: HBITMAP); var - GtkWidget: PGtkWidget; + GtkWidget, FixedWidget: PGtkWidget; GdkBitmap: PGDKBitmap; begin if not WSCheckHandleAllocated(AWinControl, 'SetShape') then Exit; GtkWidget := PGtkWidget(AWinControl.Handle); + FixedWidget := GetFixedWidget(GtkWidget); if AShape <> 0 then begin @@ -672,6 +673,8 @@ begin GdkBitmap := nil; gtk_widget_shape_combine_mask(GtkWidget, GdkBitmap, 0, 0); + if FixedWidget <> GtkWidget then + gtk_widget_shape_combine_mask(FixedWidget, GdkBitmap, 0, 0); end; {