Hi David,

> > > I'm trying to find out how to have multiple windows sharing the same 
> > > frame.
> > > I'm playing with FvwmTabs but I also want to experiment with a simpler
> > > implementation on my own.
> > 
> > Simpler? Hmmmm.
> > 
> I just want to get four functions working - add, next, close and detatch
> tab.
> That is enough functionality for what I want to do. I want to see what
> would
> be possible if it was integrated into fvwm.

Most of the features you talk about are already possible with the
FvwmTabs module or could be implemented without too much effort.

> It would remove the need to create a tabber first - just join any two
> windows together

I've been using the following function to combine "create" & "add"
commands into a single action:

# CreateTabberWithWin will put the focused window into a new tabber,
# creating it at the same position as the window.
DestroyFunc CreateTabberWithWin
AddToFunc CreateTabberWithWin
+ I Current (!FvwmTabs) SetEnv CTWW_ID $[w.id]
+ I TestRc (NoMatch) Break
+ I PipeRead 'echo SetEnv CTWW_COUNT $(( $CTWW_COUNT+1 ))'
+ I NewTabber --geometry=+$[w.x]+$[w.y] .$[CTWW_COUNT]
+ I Wait "FvwmTabs*"
+ I WindowId $[CTWW_ID] Tabize .$[CTWW_COUNT]

Key Z A CM CreateTabberWithWin

To combine additional "add" commands into the same action would just
require the use of the MultiAddTab function.

> and also remove the second title bar

*FvwmTabs: showTitlebar false

> - it could be integrated into the main one.

*FvwmTabs: useTMTitlebar true

> The aim would be to make it transparent to the user rather
> than offering alot of functionality and configuration.

I agree that it's a pain that FvwmTabs depends on external libraries
(X11::Protocol & Tk) which can make configuration difficult for some
users. I don't think I've ever heard a user complain about too much
functionality though! (Some people complain about Emacs, but that's
different! :)

> It's just an idea I wanted to
> play around with based on how pekwm does this.

Go right ahead - the more people hacking on FVWM the better! IMHO.

> > You need to use XSetInputFocus().
> 
> The client window does get input focus and works normally, except that
> the
> frame decor isn't changed when the focus does. The event handlers aren't
> called so I can't think of anywhere to put this that would work. I also
> think
> that it is a problem with events in general and not just input focus.

Sorry, that's a little too cryptic for me to understand. I assume you
know you have to ask the X server which events you're interested in
(for each window) right? This is usually accomplished by setting the
event mask with XChangeWindowAttributes().

Scott. :)

Reply via email to