On Sat, Jul 03, 2004 at 10:52:49AM +0100, Tavis Ormandy wrote:
> [sorry if this comes twice, my last reply never reached the list]
> 
> On Fri, Jul 02, 2004 at 02:44:02PM +0200, Dominik Vogt wrote:
> > > Is it worth submiting the patch?
> > 
> > Yes.
> 
> Thanks for the reply Dominik, This is the patch I've been using, I'm
> sure it's horribly wrong, but it does seem to get Swallowed transparent
> windows updated correctly :)

No, the patch is fine (but see below).

> Maybe it will at least help demonstrate what I was talking about :)
> 
> Example configuration (requires rxvt >=2.7.3, I think):
> 
> Colorset 34 fg black, bg white, RootTransparent buffer
> DestroyModuleConfig FvwmTest: *
> *FvwmTest: Geometry 634x384
> *FvwmTest: Colorset 34
> *FvwmTest: Rows 2
> *FVwmTest: Columns 2
> *FvwmTest: (1x1, Swallow TransTerm `Exec exec rxvt -tr -name TransTerm -e 
> rain -d 200`)
> *FvwmTest: (1x1, Swallow TransTerm `Exec exec rxvt -tr -name TransTerm -e 
> rain -d 200`)
> *FvwmTest: (2x1, Title "Close", Action `Current Close`)
> 
> -- 
> -------------------------------------
> [EMAIL PROTECTED] | finger me for my gpg key.
> -------------------------------------------------------

> Index: FvwmButtons.c
> ===================================================================
> RCS file: /home/cvs/fvwm/fvwm/modules/FvwmButtons/FvwmButtons.c,v
> retrieving revision 1.186
> diff -u -w -r1.186 FvwmButtons.c
> --- FvwmButtons.c     29 Jun 2004 18:05:55 -0000      1.186
> +++ FvwmButtons.c     3 Jul 2004 09:39:30 -0000
> @@ -1070,7 +1070,43 @@
>       else if (Event.xconfigure.window == MyWindow &&
>                Event.xconfigure.send_event)
>       {
> +       button=-1;
> +       ub=UberButton;
> +
>         update_root_transparency(&Event);
> +       while(NextButton(&ub,&b,&button,0))
> +       {
> +               if ((b->flags & b_Swallow) && SwallowedWindow(b))
> +               {
> +                       Window swin = SwallowedWindow(b), br;
> +                       XEvent BEvent;
> +                       unsigned int bx, by, bw, bh, bbw, bd;
> +
> +                       if (!XGetGeometry(Dpy, swin, &br, &bx, &by, &bw, &bh, 
> &bbw, &bd))
> +                       {
> +                             continue;
> +                       }
> +
> +#ifdef DEBUG_EVENTS
> +                       fprintf (stderr, "Sending ConfigureNotify to Button: 
> %#9x\n"
> +                             "New Position: %ux%u\n", 
> +                                     (int) swin, 
> +                                     Event.xconfigure.x+b->x, 
> +                                     Event.xconfigure.y+b->y);
> +#endif
> +

Add

                          fev_make_null_event(&Bevent, Dpy);

> +                       BEvent.type = ConfigureNotify;

> +                       BEvent.xconfigure.display = Dpy;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Remove this line.

> +                       BEvent.xconfigure.event = swin;
> +                       BEvent.xconfigure.window = swin;
> +                       BEvent.xconfigure.x = Event.xconfigure.x+bx;
> +                       BEvent.xconfigure.y = Event.xconfigure.y+by;
> +                       BEvent.xconfigure.width = bw;
> +                       BEvent.xconfigure.height = bh;
> +                       BEvent.xconfigure.border_width = bbw;

Add

                          BEvent.xconfigure.above = None;
                          BEvent.override_redirect = False;

> +                       FSendEvent(Dpy, swin, False, StructureNotifyMask, 
> &BEvent);
> +               }
> +       }
>       }
>        }
>        break;

Ciao

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]

Attachment: pgpQgATHcIHg7.pgp
Description: PGP signature

Reply via email to