Hi,

Am Sonntag, den 06.11.2005, 14:05 +0100 schrieb Mattias Gaertner:
> On Sun, 06 Nov 2005 12:57:46 +0100
> dannym <[EMAIL PROTECTED]> wrote:
> 
> > Hi,
> > 
> > Am Sonntag, den 06.11.2005, 12:49 +0100 schrieb Mattias Gaertner:
> > [...]
> > > > 
> > > > um, to sum it up, earlier the bug was because of, in chronological
> > > > order,
> > > > 
> > > > - the application is started
> > > > - the form is created
> > > > - In the TCustomForm.Create, FShowInTaskBar is set according to what
> > > > MainForm points to, which is nil, 
> > > 
> > > I fixed the GetShowInTaskBarDefault to check if MainForm=nil.
> > 
> > nice :)
> > 
> > 
> > > > hence FShowInTaskBar False
> > > > - TCustomForm.Create returns
> > > > - the MainForm is set to the form just created, too late
> > > > - the Form is Shown
> > > > - my modification does thus:
> > > >  procedure TCustomForm.DoShow;
> > > >  begin
> > > > +  HandleNeeded;
> > > > +  TWSCustomFormClass(WidgetSetClass).SetShowInTaskbar(Self,
> > > > FShowInTaskbar);
> > > > +
> > > >    if Assigned(FOnShow) then FOnShow(Self);
> > > >  end;
> > > >  which makes it do anything at all with ShowInTaskbar, as opposed to
> > > > before. 
> > > > - *However*, FShowInTaskbar is False since it was set in the
> > > > constructor. I feel uneasy changing properties underneath the
> > > > programmer without notifying him, so I don't "fix it" within DoShow
> > > > (i.e. set it to True when nobody is looking :))
> > > 
> > > Good.
> > > 
> > >  
> > > > To fix the whole thing once and for all, have GetShowInTaskBarDefault
> > > > return always True and just have the programmer set it to false
> > > > manually for the forms he wants. 
> > > > 
> > > > 
> > > > [Note that that is better either way, because the programmer has to
> > > > bring the windows that aren't shown in the taskbar to the front
> > > > programmatically - since the user can't do it 
> > > 
> > > Sure he could. Many wm brings a clicked window to the front.
> > 
> > Oh...
> > yeah, I thought of a user like me which usually has <= 8 (cm^2) of free
> > space on the screen .. yeah, chaotic ^^
> > 
> > I'd like all of lazarus to pop up when I click on the only remaining
> > taskbar icon,which is the mainidebar. hence :)
> 
> .. and in the same stack order, they was. I believe, this is not possible
> with gtk1. Maybe we some X hacking. But IMO we should not invest time
> implementing new feature for the gtk1 interface.
> 
> 
> > > > - (for example in reaction
> > > > to activating the mainform). At least then it's obvious since he also
> > > > has to set ShowInTaskBar to False himself, so he asked for it, he got
> > > > it ...]
> > > > 
> > > > 
> > > > As a side note:
> > > > 
> > > > Note also that in order to change the showintaskbar property, the form
> > > > has to be [hidden and] reshown as per EWMH standard
> > > > http://standards.freedesktop.org/wm-spec/wm-spec-1.4.html , search for
> > > > "The Window Manager SHOULD honor _NET_WM_STATE whenever a withdrawn
> > > > window requests to be mapped.". 
> > > > 
> > > > That is, the window has to be hidden, the flag set, and the window
> > > > shown again (when it was visible yet in the first place, that is).
> > > 
> > > Ah I see.
> > > So we have two possibilities for gtk1:
> > > a) Find out, how to make Show modal to not hide the mainform form the
> > > taskbar
> > 
> > hmm ? What do you mean ?
> 
> When a form is shown modal, all forms are made transient (this works), and
> for some unknown reason vanish from the "taskbar".

Huh... only on gtk1 or on gtk2 too ? I never saw that yet...

Was that the case before the skiptaskbar fixes too (i.e. could they have
broken something else) ?

xprop on the window that vanished should help finding out what has been
set to cause that...

> 
>  
> > > b) Hide/Show all windows on Show Modal - unpleasant
> > > 
> > > I don't want to invest much time in the gtk1 interface. I'm currently
> > > working on the IDE and the LCL and after one of the next releases will
> > > switch to gtk2.
> > 
> > I see
> 
> 
> Mattias

cheers,
   Danny


_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to