Xinerama support for IconBox style?

2001-08-19 Thread Dominik Vogt
Dan, I looked at the icon box code in style.c because I wanted to
make it work with changes of the Xinerama state, but the matter is
too complex to write a patch in short time for me.

What I want to do:

 1) Default to using the primary screen for icon box specs
(already works for X geometry like specs and is easy to do for
the other syntax).
 2) Recalculate all icon boxes when the Xinerama layout of the
screen changes (switched on or off).

The difficult part is (2) because all the calculations are done
when the style is defined.  The precise spec string is thrown away
afterwards.  So doing this requires to remove the calculations
from style.c and do them somewhere is icons.c.  Can you take a
look at this, please?  I think this could wait until after 2.4.1.

Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama patch for "Maximize"

2001-08-19 Thread Dominik Vogt
On Sat, Aug 18, 2001 at 06:59:56PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> On Fri, 17 Aug 2001, Dominik Vogt wrote:
> 
> > On Fri, Aug 17, 2001 at 11:46:45AM +0700, Dmitry Yu. Bolkhovityanov wrote:
> > > On Thu, 16 Aug 2001, Dominik Vogt wrote:
> > > 
> > > > On Wed, Aug 15, 2001 at 08:30:20PM +0700, Dmitry Yu. Bolkhovityanov 
> > > > wrote:
> > > > > 
> > > > >   I've added an optional "global" switch, which means that
> > > > > maximization should be made on a global screen, otherwise it is made 
> > > > > on 
> > > > > the screen where the center of a window is.  "grow*" are also adjusted
> > > > > (that turned to be the easiest part of the task).
> > > > 
> > > > I have been thinking about an entirely different approach that
> > > > uses XGeometry specs:
> > > > 
> > > >   Maximize on [EMAIL PROTECTED]
> > > > 
> > > > The problem here is to specify the resize unit (screen % or
> > > > pixels) and where to place the "grow" option.  The same syntax
> > > > could be used for the Move, Resize and ResizeMove commands.
> > > 
> > >   IMHO these two approaches aren't contradictory
> > 
> > That's true, but I don't think we would want to develop a
> > second syntax.  My idea was to support maximizing/moving/resizing
> > only with the new, X geometry like syntax and phase out the old
> > one.
> 
>   Okay, but there are two issues.
> 
>   First, while the geometry syntax is "mathematically" okay, it is 
> just too complicated (messy?) for an ordinary user -- like a Perl program 
> for a person which knows only Pascal.  I don't want to say that users are
> silly, but "640pxgrow-5+0p" is a bit too much.  

Well, the ordinary user would not use that syntax at all but stick
with

  Maximize on
  Maximize on 100 0
  Maximize on 0 100

Anyway, as nice as a common syntax for all the resizing/moving
commands would be, its not the proper time to do this.

>   BTW, this syntax employs latin letters for three different uses:
> 1) unit size ("p"); 2) keywords ("grow"); 3) times/multiplication operator
> ("x"); and all these go without any separators.  While this is definitely
> parseable, it isn't very fancy and is too error-prone.

Yes, and my X11 book says: "If the [parse]string is not in Host
Portable Character Encoding, the result is
implementation-dependent."

>   Anyway, can you please post a formal definition of new syntax,
> like a BNF? 

No, I can't.  I don't even know the correct definition of the
standard X11 geometry spec.

>   Sorry for only criticizing, but I yet have to find out some
> reasonable suggestions.

Let's skip my idea for now and update the old syntax.

>   Second, due to compatibility reasons, the old syntax should still
> be supported.

Of course.  I only though about not writing new features for the
old syntax.

Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama patch for "Maximize"

2001-08-18 Thread Dmitry Yu. Bolkhovityanov
On Fri, 17 Aug 2001, Dominik Vogt wrote:

> On Fri, Aug 17, 2001 at 11:46:45AM +0700, Dmitry Yu. Bolkhovityanov wrote:
> > On Thu, 16 Aug 2001, Dominik Vogt wrote:
> > 
> > > On Wed, Aug 15, 2001 at 08:30:20PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> > > > 
> > > > I've added an optional "global" switch, which means that
> > > > maximization should be made on a global screen, otherwise it is made on 
> > > > the screen where the center of a window is.  "grow*" are also adjusted
> > > > (that turned to be the easiest part of the task).
> > > 
> > > I have been thinking about an entirely different approach that
> > > uses XGeometry specs:
> > > 
> > >   Maximize on [EMAIL PROTECTED]
> > > 
> > > The problem here is to specify the resize unit (screen % or
> > > pixels) and where to place the "grow" option.  The same syntax
> > > could be used for the Move, Resize and ResizeMove commands.
> > 
> > IMHO these two approaches aren't contradictory
> 
> That's true, but I don't think we would want to develop a
> second syntax.  My idea was to support maximizing/moving/resizing
> only with the new, X geometry like syntax and phase out the old
> one.

Okay, but there are two issues.

First, while the geometry syntax is "mathematically" okay, it is 
just too complicated (messy?) for an ordinary user -- like a Perl program 
for a person which knows only Pascal.  I don't want to say that users are
silly, but "640pxgrow-5+0p" is a bit too much.  

BTW, this syntax employs latin letters for three different uses:
1) unit size ("p"); 2) keywords ("grow"); 3) times/multiplication operator
("x"); and all these go without any separators.  While this is definitely
parseable, it isn't very fancy and is too error-prone.

Anyway, can you please post a formal definition of new syntax,
like a BNF? 

Sorry for only criticizing, but I yet have to find out some
reasonable suggestions.

Second, due to compatibility reasons, the old syntax should still
be supported.  Otherwise most users of <=2.4 (especially those with 1
monitor) will live with old versions, and in some cases even
fvwmNN_convert wouldn't be able to help them (think about AnotherLevel and
alikes).

_
  Dmitry Yu. Bolkhovityanov
  [EMAIL PROTECTED]
  The Budker Institute of Nuclear Physics


--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama patch for "Maximize"

2001-08-17 Thread Dominik Vogt
On Fri, Aug 17, 2001 at 11:46:45AM +0700, Dmitry Yu. Bolkhovityanov wrote:
> On Thu, 16 Aug 2001, Dominik Vogt wrote:
> 
> > On Wed, Aug 15, 2001 at 08:30:20PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> > > 
> > >   I've added an optional "global" switch, which means that
> > > maximization should be made on a global screen, otherwise it is made on 
> > > the screen where the center of a window is.  "grow*" are also adjusted
> > > (that turned to be the easiest part of the task).
> > 
> > I have been thinking about an entirely different approach that
> > uses XGeometry specs:
> > 
> >   Maximize on [EMAIL PROTECTED]
> > 
> > The problem here is to specify the resize unit (screen % or
> > pixels) and where to place the "grow" option.  The same syntax
> > could be used for the Move, Resize and ResizeMove commands.
> 
>   IMHO these two approaches aren't contradictory

That's true, but I don't think we would want to develop a
second syntax.  My idea was to support maximizing/moving/resizing
only with the new, X geometry like syntax and phase out the old
one.

> -- yours allows
> more flexibility, while the logic im my patch is required in case when no
> parameters are specified (i.e. just "Maximize") or the old syntax is used
> (incl. e.g. "grow").  But, of course, with some efforts old syntax parser
> can be changed to generate an appropriate "on" geometry spec.

Basically, the parser would have to do the same as the non
geometry based dimension/position parsers we have.  For each bit
of the geometry spec it should optionally accept a suffix to the
number, e.g. 100px100p+0m+0m, and possibly a list of key words.
This way it would finally possible to have something like this:

  Maximize 640pxgrow-5+0p

(maximized window is placed 5% of the screen width off the right
border and ant the top of the screen with a width of 640 pixels
and whatever height fits).  Of course this requires a pre parsing
pass over the geometry string that filters out all the fancy
suffices and key words before calling ...ParseGeometry.

  int FancyParseGeometry(
char *geom, int *ret_x, int *ret_y, int *ret_w, int *ret_h,
char *xy_suffix_array, int *xy_units_array, char **xy_keywords,
int *ret_x_unit, int *ret_y_unit,
char *wh_suffix_array, int *wh_units_array, char **wy_keywords,
int *ret_w_unit, int *ret_h_unit, 
int *ret_w_keyword, int *ret_h_keyword);

Pretty complex I guess, but very useful.

>   There's a pitfall in geometry syntax for Maximize: what would
> mean "Maximize [EMAIL PROTECTED]" if applied to a window on different 
> page/desk?
> Would it be current screen where the *pointer* is, or the screen, where
> that *window* is (more precisely, where it *would* be when "Focus"
> applied)?  And what to do in case when current page doesn't start on a 
> page boundary?

As usual, @c would address the screen that contains the pointer,
possibly projected to other pages or desks.  To force the window
into the current viewport, the MoveToDesk/Page/Screen commands can
be used.

Bye

Dominik ^_^  ^_^

-- 
Dominik Vogt, email: [EMAIL PROTECTED]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama patch for "Maximize"

2001-08-16 Thread Dmitry Yu. Bolkhovityanov
On Thu, 16 Aug 2001, Dominik Vogt wrote:

> On Wed, Aug 15, 2001 at 08:30:20PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> > 
> > I've added an optional "global" switch, which means that
> > maximization should be made on a global screen, otherwise it is made on 
> > the screen where the center of a window is.  "grow*" are also adjusted
> > (that turned to be the easiest part of the task).
> 
> I have been thinking about an entirely different approach that
> uses XGeometry specs:
> 
>   Maximize on [EMAIL PROTECTED]
> 
> The problem here is to specify the resize unit (screen % or
> pixels) and where to place the "grow" option.  The same syntax
> could be used for the Move, Resize and ResizeMove commands.

IMHO these two approaches aren't contradictory -- yours allows
more flexibility, while the logic im my patch is required in case when no
parameters are specified (i.e. just "Maximize") or the old syntax is used
(incl. e.g. "grow").  But, of course, with some efforts old syntax parser
can be changed to generate an appropriate "on" geometry spec.

There's a pitfall in geometry syntax for Maximize: what would
mean "Maximize [EMAIL PROTECTED]" if applied to a window on different page/desk?
Would it be current screen where the *pointer* is, or the screen, where
that *window* is (more precisely, where it *would* be when "Focus"
applied)?  And what to do in case when current page doesn't start on a 
page boundary?

_
  Dmitry Yu. Bolkhovityanov
  [EMAIL PROTECTED]
  The Budker Institute of Nuclear Physics


--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama patch for "Maximize"

2001-08-16 Thread Dominik Vogt
On Wed, Aug 15, 2001 at 08:30:20PM +0700, Dmitry Yu. Bolkhovityanov wrote:
>   Hi!
> 
>   This patch touches solely the move_resize.c.  I've tried to modify
> fvwm2.1, but my roff skills seem to be below what required to keep
> "Maximize" description in the same style (the latter seems a bit wrong BTW
> -- too many spaces).
> 
>   I've added an optional "global" switch, which means that
> maximization should be made on a global screen, otherwise it is made on 
> the screen where the center of a window is.  "grow*" are also adjusted
> (that turned to be the easiest part of the task).

I have been thinking about an entirely different approach that
uses XGeometry specs:

  Maximize on [EMAIL PROTECTED]

The problem here is to specify the resize unit (screen % or
pixels) and where to place the "grow" option.  The same syntax
could be used for the Move, Resize and ResizeMove commands.

>   There are some problems with maximizing windows that aren't on the
> current page when the page itself doesn't start on a page boundary, but
> that effect existed before anyway.  

I see.  Consider it fixed :)

>   And there is a comment "maximize on visible page" after
> IsRectangleOnThisPage() check, which doesn't seem to be correct -- somehow
> it happens that windows are maximized on visible page even if they are by
> some part (not entirely) on it. 

The comment should better read:

  maximize on the page where the center of the window is, but if
  any part of the window is on the current page, maximize it
  there.

> BTW, Dominik, was it done intentionally that in Xinerama emulation mode
>  the vertical separator doesn't separate, but in fact overlaps two
>  left pixels of the second pseudo-screen?  The result seems a bit
>  confusing ;-)

You would have to ask Olivier.  He wrote that stuff.  Anyway, I
don't really care about this.  It is only meant as visible
feedback for testing and debugging.

Bye

Dominik ^_^  ^_^

-- 
Dominik Vogt, email: [EMAIL PROTECTED]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Xinerama patch for "Maximize"

2001-08-15 Thread Dmitry Yu. Bolkhovityanov
Hi!

This patch touches solely the move_resize.c.  I've tried to modify
fvwm2.1, but my roff skills seem to be below what required to keep
"Maximize" description in the same style (the latter seems a bit wrong BTW
-- too many spaces).

I've added an optional "global" switch, which means that
maximization should be made on a global screen, otherwise it is made on 
the screen where the center of a window is.  "grow*" are also adjusted
(that turned to be the easiest part of the task).

There are some problems with maximizing windows that aren't on the
current page when the page itself doesn't start on a page boundary, but
that effect existed before anyway.  

And there is a comment "maximize on visible page" after
IsRectangleOnThisPage() check, which doesn't seem to be correct -- somehow
it happens that windows are maximized on visible page even if they are by
some part (not entirely) on it. 

BTW, Dominik, was it done intentionally that in Xinerama emulation mode
 the vertical separator doesn't separate, but in fact overlaps two
 left pixels of the second pseudo-screen?  The result seems a bit
 confusing ;-)

_
  Dmitry Yu. Bolkhovityanov
  [EMAIL PROTECTED]
  The Budker Institute of Nuclear Physics



maximize.diff.gz
Description: Binary data


Re: A naive Xinerama question

2001-08-13 Thread Dominik Vogt
On Mon, Aug 13, 2001 at 10:27:12AM -0400, Dan Espen wrote:
> Dominik Vogt  writes:
> > On Tue, Aug 07, 2001 at 01:05:22PM +0200, Olivier Chapuis wrote:
> > > BTW, I think that the change Xinerama{Enable,Disable} -> Xinerama
> > > is not very good: it is difficult to a configuration tool or a user
> > > new to Xinerama to know if Xinerama is enabled or not.
> > 
> > Er, what is the big difference between
> > 
> >   XineramaEnable
> >   XineramaDisable
> > 
> > and
> > 
> >   Xinerama on
> >   Xinerama off
> > 
> > ?  It just saves the additional commands.  And I can't think of
> > any fvwm command that has an "off" and an "on" version.
> 
> Iconify on
> Iconify off

That's what I said.  You have one command with an "on" and an
"off" option instead of "Iconify" and "Deiconify".  This makes
toggling these settings possible in the first place.  My wording
was a bit unfortunate, perhaps.

Bye

Dominik ^_^  ^_^

-- 
Dominik Vogt, email: [EMAIL PROTECTED]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: A naive Xinerama question

2001-08-13 Thread Dan Espen
Dominik Vogt  writes:
> On Tue, Aug 07, 2001 at 01:05:22PM +0200, Olivier Chapuis wrote:
> > BTW, I think that the change Xinerama{Enable,Disable} -> Xinerama
> > is not very good: it is difficult to a configuration tool or a user
> > new to Xinerama to know if Xinerama is enabled or not.
> 
> Er, what is the big difference between
> 
>   XineramaEnable
>   XineramaDisable
> 
> and
> 
>   Xinerama on
>   Xinerama off
> 
> ?  It just saves the additional commands.  And I can't think of
> any fvwm command that has an "off" and an "on" version.

Iconify on
Iconify off

-- 
Dan Espen
444 Hoes Lane  Room RRC 1C-214   E-mail: [EMAIL PROTECTED]
Piscataway, NJ 08854 Phone: (732) 699-5570
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Finished Xinerama support for modules.

2001-08-11 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/08/11 16:28:18

Modified files:
.  : todo-xinerama 
libs   : XineramaSupport.c 
modules: ChangeLog 
modules/FvwmButtons: FvwmButtons.c 
modules/FvwmIconMan: FvwmIconMan.1 FvwmIconMan.c FvwmIconMan.h 
 fvwm.c globals.c readconfig.c x.c 
modules/FvwmIdent: FvwmIdent.c 
modules/FvwmPager: FvwmPager.c x_pager.c 
modules/FvwmWinList: FvwmWinList.c FvwmWinList.h 

Log message:
* Finished Xinerama support for modules.
* Fixed"transient" option of FvwmPager.
* Allow "Transient" as well as "-Transient" in various modules.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt fvwm-web: * Updated Xinerama module interface description.

2001-08-11 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm-web
Changes by: domivogt01/08/11 03:28:36

Modified files:
.  : ChangeLog mod_f2m_communication.html 

Log message:
* Updated Xinerama module interface description.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: a naive Xinerama question

2001-08-10 Thread Matthias Clasen
> By the way, Matthias, is there anything that has to be done to
> make FvwmGtk Xinerama compatible?

Well, its been a long time since I last looked at that code...

"compatible" is perhaps not the right term here. Any X application
should be Xinerama compatible, since after all its just an extension
that can be ignored.

If you ask for "Xinerama-aware", then the answer would probably
be: make gtk+ Xinerama-aware. Which won't happen before
gtk+ is extended for multiple screens/displays. Which won't happen
before gtk+ 2.2.

Matthias

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: a naive Xinerama question

2001-08-10 Thread Dominik Vogt
By the way, Matthias, is there anything that has to be done to
make FvwmGtk Xinerama compatible?

Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: a naive Xinerama question

2001-08-09 Thread Matthias Clasen
> > But it would certainly be a useful addition to the Xinerama extension to
> > send "EnterXineramaHead" and LeaveXineramaHead events  - IIRC X
> > extensions can introduce new events.  If these events contain the a
> > head number, interested applications can then easily maintain
information
> > about the set of heads the pointer is in (even for the pathological case
> > of overlapping heads).
>
> Well, this *can* be a useful addition if we find a real case when
> it is needed.  Than we can try to persuade Mark Vojkovich to add this
> functionality to X (BTW, what is interesting -- he also uses fvwm).  But
> there must be some real, hard arguments, otherwise this definitely
> wouldn't pass the X Xinerama group.

All the same reasons why you want to get enter and leave events on the root
window
in multi-screen scenarios, I guess. Of course, the application with the
strongest interest
in such information is the window manager, but toolkits could also use it as
a low-overhead
way to find the necessary information for e.g. restricting menus to be
completely onscreen
(or rather "onxineramascreen").

In fact, I would thing that enter/leave notification would be a very natural
feature
and I can't think of any possible reasons for the  X Xinerama group to not
accept it.

Matthias



--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: a naive Xinerama question

2001-08-09 Thread Dominik Vogt
On Thu, Aug 09, 2001 at 09:37:50PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> On Thu, 9 Aug 2001, Olivier Chapuis wrote:
> 
> > Well,
> > 
> > Some users may want to have an application which is always on the
> > current screen. Typically, if I get a double head I would like to
> > have my FvwmPager and my WLM (TaskBar, WinList, IconMan or IconBox)
> > always in the current screen. The solution is to run two such modules
> > (it is the reason I added aliases support in TaskBar, WinList and
> > IconBox recently). But a solution which seems better is that the
> > application "follows the pointer". Moreover, for some applications,
> > running as many sticky copies of an application than screens will be
> > not a solution to get it always on the current screen: for example
> > with an xterm we lost the "historic".
> > 
> > So I think that an EnterScreenNotify event will be a good thing for
> > a window manager: it will be able to manage a new/strong sticky mode
> > for any applications.
> 
>   Well, that sounds very reasonable (now I understand my mistake --
> I was thinking about something similar to FvwmBacker, but for Xinerama
> screens, which is a nonsense ;-).
> 
>   We have an option to add such functionality right now, but with
> fvwm tracking screens itself (this is needed anyway for emulated
> Xinerama), and later check for real "EnterScreenNotify" availability in
> configure script.

I don't think this can be solved inside fvwm to our satisfaction.
Polling the mouse pointer wastes lots of CPU and tracking the
pointer via MotionNotify events does not work when the pointer is
grabbed.

>   IMHO currently the best way to go is collecting various reasons
> for such an event, and later discuss it with X people.  Looking at Xserver
> and libXinerama sources, I can easily work out a patch for this thingie
> (the server internally has a "ChangeScreen" event, since it has to move
> cursor between screens).

That would be the right place to implement this functionality.

Bye

Dominik ^_^  ^_^

-- 
Dominik Vogt, email: [EMAIL PROTECTED]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: a naive Xinerama question

2001-08-09 Thread Dmitry Yu. Bolkhovityanov
On Thu, 9 Aug 2001, Olivier Chapuis wrote:

> Well,
> 
> Some users may want to have an application which is always on the
> current screen. Typically, if I get a double head I would like to
> have my FvwmPager and my WLM (TaskBar, WinList, IconMan or IconBox)
> always in the current screen. The solution is to run two such modules
> (it is the reason I added aliases support in TaskBar, WinList and
> IconBox recently). But a solution which seems better is that the
> application "follows the pointer". Moreover, for some applications,
> running as many sticky copies of an application than screens will be
> not a solution to get it always on the current screen: for example
> with an xterm we lost the "historic".
> 
> So I think that an EnterScreenNotify event will be a good thing for
> a window manager: it will be able to manage a new/strong sticky mode
> for any applications.

Well, that sounds very reasonable (now I understand my mistake --
I was thinking about something similar to FvwmBacker, but for Xinerama
screens, which is a nonsense ;-).

We have an option to add such functionality right now, but with
fvwm tracking screens itself (this is needed anyway for emulated
Xinerama), and later check for real "EnterScreenNotify" availability in
configure script.

IMHO currently the best way to go is collecting various reasons
for such an event, and later discuss it with X people.  Looking at Xserver
and libXinerama sources, I can easily work out a patch for this thingie
(the server internally has a "ChangeScreen" event, since it has to move
cursor between screens).

_
  Dmitry Yu. Bolkhovityanov
  [EMAIL PROTECTED]
  The Budker Institute of Nuclear Physics


--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: a naive Xinerama question

2001-08-09 Thread Olivier Chapuis
On Wed, Aug 08, 2001 at 07:47:03PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> On Wed, 8 Aug 2001, Matthias Clasen wrote:
> 
> > > On Tue, 7 Aug 2001, Olivier Chapuis wrote:
> > > 
> > > > Hello,
> > > > 
> > > > I have a very naive Xinerama question:
> > > > Is it possible to send to modules a "M_NEW_SCREEN" message
> > > > when the mouse pointer change of screen?
> > > 
> > > Technicaly it isn't possible -- X server wouldn't generate
> > > "EnterScreenNotify" events, since Xinerama screens look like a single
> > > large screen.  
> > 
> > But it would certainly be a useful addition to the Xinerama extension to
> > send "EnterXineramaHead" and LeaveXineramaHead events  - IIRC X 
> > extensions can introduce new events.  If these events contain the a
> > head number, interested applications can then easily maintain information
> > about the set of heads the pointer is in (even for the pathological case
> > of overlapping heads).
> 
>   Well, this *can* be a useful addition if we find a real case when
> it is needed.  Than we can try to persuade Mark Vojkovich to add this
> functionality to X (BTW, what is interesting -- he also uses fvwm).  But
> there must be some real, hard arguments, otherwise this definitely
> wouldn't pass the X Xinerama group.
>

Well,

Some users may want to have an application which is always on the
current screen. Typically, if I get a double head I would like to
have my FvwmPager and my WLM (TaskBar, WinList, IconMan or IconBox)
always in the current screen. The solution is to run two such modules
(it is the reason I added aliases support in TaskBar, WinList and
IconBox recently). But a solution which seems better is that the
application "follows the pointer". Moreover, for some applications,
running as many sticky copies of an application than screens will be
not a solution to get it always on the current screen: for example
with an xterm we lost the "historic".

So I think that an EnterScreenNotify event will be a good thing for
a window manager: it will be able to manage a new/strong sticky mode
for any applications.

Olivier
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Place windows on given Xinerama screen; new style option StartsOnScreen

2001-08-08 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/08/08 17:13:25

Modified files:
.  : ChangeLog NEWS todo-xinerama 
fvwm   : add_window.c fvwm.h fvwm2.1 icons.c placement.c 
 placement.h style.c style.h 
libs   : XineramaSupport.c 

Log message:
* Place windows on given Xinerama screen; new style option StartsOnScreen
(defaults to 'c').
* Fixed handling of default_screen argument in XineramaSupportParseScreenBit().
* Keep expanded icon titles on screen.
* Default icon box fills only the primary screen.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: a naive Xinerama question

2001-08-08 Thread Dmitry Yu. Bolkhovityanov
On Wed, 8 Aug 2001, Matthias Clasen wrote:

> > On Tue, 7 Aug 2001, Olivier Chapuis wrote:
> > 
> > > Hello,
> > > 
> > > I have a very naive Xinerama question:
> > > Is it possible to send to modules a "M_NEW_SCREEN" message
> > > when the mouse pointer change of screen?
> > 
>   > Technicaly it isn't possible -- X server wouldn't generate
> > "EnterScreenNotify" events, since Xinerama screens look like a single
> > large screen.  
> 
> But it would certainly be a useful addition to the Xinerama extension to
> send "EnterXineramaHead" and LeaveXineramaHead events  - IIRC X 
> extensions can introduce new events.  If these events contain the a
> head number, interested applications can then easily maintain information
> about the set of heads the pointer is in (even for the pathological case
> of overlapping heads).

Well, this *can* be a useful addition if we find a real case when
it is needed.  Than we can try to persuade Mark Vojkovich to add this
functionality to X (BTW, what is interesting -- he also uses fvwm).  But
there must be some real, hard arguments, otherwise this definitely
wouldn't pass the X Xinerama group.

_
  Dmitry Yu. Bolkhovityanov
  [EMAIL PROTECTED]
  The Budker Institute of Nuclear Physics


--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: A naive Xinerama question

2001-08-08 Thread Dominik Vogt
On Tue, Aug 07, 2001 at 01:05:22PM +0200, Olivier Chapuis wrote:
> BTW, I think that the change Xinerama{Enable,Disable} -> Xinerama
> is not very good: it is difficult to a configuration tool or a user
> new to Xinerama to know if Xinerama is enabled or not.

Er, what is the big difference between

  XineramaEnable
  XineramaDisable

and

  Xinerama on
  Xinerama off

?  It just saves the additional commands.  And I can't think of
any fvwm command that has an "off" and an "on" version.  On the
other hand it makes module configuration a lot easier.  Fvwm can
simply send the whole string after "Xinerama" to the module which
in turn passes it to a Xinerama library function to configure
itself.  Also, many commands already use the boolean argument
type, so why not this one?

> With
> Xinerama{Enable,Disable} we know where we go as with the Xinerama
> command even an experimented user should try a command or an action
> to see if Xinerama is enabled or not and predict the effect of this
> command.

It almost never makes sense to turn off Xinerama anyway.  If there
is only one screen it is a no-op.  If you have more than one
screen, not using Xinerama support is a pain.  The only situation
I can think of where this is not desirable is with a very big,
tiled screen composed of many monitors, e.g. on a trade fair.  In
this case we can expect that the tech people are able to read the
man page.

Bye

Dominik ^_^  ^_^

-- 
Dominik Vogt, email: [EMAIL PROTECTED]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: A naive Xinerama question

2001-08-08 Thread Dmitry Yu. Bolkhovityanov
On Tue, 7 Aug 2001, Olivier Chapuis wrote:

> Hello,
> 
> I have a very naive Xinerama question:
> Is it possible to send to modules a "M_NEW_SCREEN" message
> when the mouse pointer change of screen?

Technicaly it isn't possible -- X server wouldn't generate
"EnterScreenNotify" events, since Xinerama screens look like a single
large screen.  

If this behaviour is really needed, fvwm itself should always
check if XineramaScreen(curx,cury)!=XineramaScreen(oldx,oldy), which can
be time consuming.  And there's another pitfall -- screens may overlap, so
that "screen where the pointer on" concept becomes somewhat dubious (but
that's a pathological case, and we use this concept anyway for determining
a rectangle to clip menus etc. to).

BTW, Olivier, can you please tell where this behaviour can be
useful?  I tried to imagine such situations with no results, but something
tells me they *must* exist.

_
  Dmitry Yu. Bolkhovityanov
  [EMAIL PROTECTED]
  The Budker Institute of Nuclear Physics


--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


A naive Xinerama question

2001-08-07 Thread Olivier Chapuis
Hello,

I have a very naive Xinerama question:
Is it possible to send to modules a "M_NEW_SCREEN" message
when the mouse pointer change of screen?

BTW, I think that the change Xinerama{Enable,Disable} -> Xinerama
is not very good: it is difficult to a configuration tool or a user
new to Xinerama to know if Xinerama is enabled or not. With
Xinerama{Enable,Disable} we know where we go as with the Xinerama
command even an experimented user should try a command or an action
to see if Xinerama is enabled or not and predict the effect of this
command.

Olivier
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Added Xinerama support in FvwmRearrange, FvwmIdent and FvwmScroll.

2001-08-06 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/08/06 17:50:22

Modified files:
.  : todo-xinerama 
fvwm   : placement.c 
modules: ChangeLog 
modules/FvwmIdent: FvwmIdent.c Makefile.am 
modules/FvwmRearrange: FvwmRearrange.c Makefile.am 
modules/FvwmScript: FvwmScript.c Makefile.am 
modules/FvwmScroll: FvwmScroll.c GrabWindow.c 

Log message:
* Added Xinerama support in FvwmRearrange, FvwmIdent and FvwmScroll.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Replaced XineRamaEnable/Disable commands with plain "Xinerama".

2001-08-05 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/08/05 19:20:36

Modified files:
.  : ChangeLog NEWS todo-xinerama 
fvwm   : commands.h functions.c functions.h fvwm2.1 
 move_resize.c move_resize.h virtual.c 
libs   : Makefile.am WinMagic.c XineramaSupport.c 
 XineramaSupport.h fvwmlib.h 
modules: ChangeLog 
modules/FvwmButtons: FvwmButtons.c 
modules/FvwmDragWell: fvwmDragWell.c 
modules/FvwmForm: FvwmForm.c 
modules/FvwmIconBox: FvwmIconBox.c 
modules/FvwmIconMan: fvwm.c readconfig.c 
modules/FvwmPager: FvwmPager.c FvwmPager.h 
modules/FvwmTaskBar: FvwmTaskBar.1 FvwmTaskBar.c Goodies.c 
 List.c List.h 
modules/FvwmWharf: FvwmWharf.c 

Log message:
* Replaced XineRamaEnable/Disable commands with plain "Xinerama".
* New commands MoveToScreen.
* NewFvwmTaskBar options PageOnly and ScreenOnly.
* Full Xinerama support in TaskBar, Pager, IconBox, Wharf.
* Xinerama placement in FvwmIconMan.
* Fixed Xinerama placement w/ negative geometries.
* Fixed button grabbing in FvwmTaskBar.
* Fixed negative geometries in FvwmWharf.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Updated xinerama to do list.

2001-08-02 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/08/02 18:08:47

Modified files:
.  : todo-xinerama 

Log message:
* Updated xinerama to do list.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Added Xinerama support to FvwmButtons and FvwmDragWell.

2001-08-02 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/08/02 18:06:20

Modified files:
.  : ChangeLog NEWS todo-xinerama 
fvwm   : fvwm2.1 menus.c style.c virtual.c 
libs   : XineramaSupport.c XineramaSupport.h 
modules: ChangeLog 
modules/FvwmBanner: FvwmBanner.c 
modules/FvwmButtons: FvwmButtons.c FvwmButtons.h Makefile.am 
 parse.c 
modules/FvwmDragWell: FvwmDragWell.1 Makefile.am fvwmDragWell.c 
modules/FvwmForm: FvwmForm.1 FvwmForm.c FvwmForm.h 
modules/FvwmIconBox: FvwmIconBox.c Makefile.am 
modules/FvwmIconMan: Makefile.am x.c 
modules/FvwmPager: FvwmPager.c Makefile.am 
modules/FvwmTaskBar: FvwmTaskBar.c Makefile.am 
modules/FvwmWharf: FvwmWharf.c Makefile.am 
modules/FvwmWinList: FvwmWinList.c Makefile.am 

Log message:
* Added Xinerama support to FvwmButtons and FvwmDragWell.
* Updated Xinerama support for FvwmBanner and FvwmForm.
* Various geometry parsing bug fixes in FvwmButtons, FvwmForm and FvwmDragWell.
* Use Xinerama geometry parsing everywhere.
* Started to implement Xinerama support in all modules that called
XParseGeometry().
* Menu position hint geometry (rectangle) uses Xinerama style geometries.
* Same for Icon box geometries.
* XineramaEnable command takes the primary screen as its argument.
* Fixed button and key event handling over pan frames (bug #752).
* Fixed Xinerama placement of menus without options.
* Finished XineramaSupportParseGeometry() function.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Xinerama / menu placement fix.

2001-08-02 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/08/02 14:14:51

Modified files:
.  : ChangeLog 
fvwm   : events.c events.h menus.c virtual.c 

Log message:
* Xinerama / menu placement fix.
* Fixed button/key events over pan frames (bug #742).

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama merger -- part 1

2001-07-29 Thread Dmitry Yu. Bolkhovityanov
On 28 Jul 01 at 18:15, [EMAIL PROTECTED] wrote:

[SNIP]
> > The point is not cleaning the code, but a correct operation of modules 
> > --
> > do you need a pager on non-primary screen?
>
> I don't quit understand the question.  Of course I'd usually
> prefer the pager on the primary screen, but perhaps I wnat one on
> both screens.

What I meant is that introducing Xinerama support into fvwm2 binary, but
leaving modules still use XParseGeometry() is inconsistent -- the pieces of
code responsible for window's placement should be modified too (sorry for my
not-so-perfect english ;-).  Otherwise in the case of the following layout:

+--++
| 1024 |800 |
| 768  |600 |
|  ++
+--+

too many things will tend to place themselves into the void.

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama merger -- part 1

2001-07-29 Thread Dominik Vogt
On Sun, Jul 29, 2001 at 02:13:56PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> On 28 Jul 01 at 18:15, [EMAIL PROTECTED] wrote:
> 
> [SNIP]
> > > The point is not cleaning the code, but a correct operation of 
> > > modules --
> > > do you need a pager on non-primary screen?
> >
> > I don't quit understand the question.  Of course I'd usually
> > prefer the pager on the primary screen, but perhaps I wnat one on
> > both screens.
> 
> What I meant is that introducing Xinerama support into fvwm2 binary, but
> leaving modules still use XParseGeometry() is inconsistent -- the pieces of
> code responsible for window's placement should be modified too (sorry for my
> not-so-perfect english ;-).  Otherwise in the case of the following layout:
> 
> +--++
> | 1024 |800 |
> | 768  |600 |
> |  ++
> +--+
> 
> too many things will tend to place themselves into the void.

Ah, yes, of course.  I did not think about this.  

Bye

Dominik ^_^  ^_^

P.S.: Please keep the discussion on the workers list.

 --
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama w/ EdgeResistance problem

2001-07-29 Thread Dominik Vogt
On Sun, Jul 29, 2001 at 02:07:20PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> On 28 Jul 01 at 18:00, [EMAIL PROTECTED] wrote:
> 
> > There is a problem with Xinerama Edgeresistance and different
> > screen sizes on the screens:
> >
> > Layout:
> >
> > screen 1 screen 2
> >   +--++
> >   |  |+--+|
> >   |  ||  ||
> >   |  ||window||
> >   |  ||  ||
> >   +--+|  ||
> >  |+--+|
> >  ||
> >  ++
> >
> > When you move a window that is taller than screen 1 along the top
> > edge of screen 2 and finally move it against or over the border
> > between the screens it will then snap to the bottom border of
> > screen 1:
> >
> >  +--+
> >   +--|  |-+
> >   |  |  | |
> >   |  |  | |
> >   |  |  | |
> >   |  +--+ |
> >   +--+|
> >  ||
> >  ||
> >  ++
> >
> > This can be very confusing, especially if the pointer is still on
> > the second screen.  One way to handle this may be to snap only to
> > the screen that contains the pointer (?)
> 
> There's no such thing as "the decision" for this problem.  Some people
> will prefer current behaviour, while some -- current-pointer-screen-based one
> you suggest.  IMHO the current bahaviour can be left as is to watch feedback
> after 2.4.1 release.
> 
> EdgeResistance is a non-trivial concept on itself (remember what happens
> to windows with e.g. width>screen_width && width and when combined with even more non-trivial concept of Xinerama, it can
> really confuse people (they wouldn't know themselves what they want fvwm to
> do).

I think it's easy to describe what the average user wants:  When
(s)he move the window to the left (s)he expects that the left edge
of the window will be aligned with the left edge of the screen
respectively the right edge of other windows.  It would also be
desirable that a previous alignment with the top/bottom edges is
not broken while moving to the left.  But (s)he would definitely
not expect to align window on the right side.  The same applies to
all other directions, of course.

The problem is that fvwm usually can't guess in which direction
the user wants to move a window and mouse input is way too
unreliable.

At present I am using big values for SnapAttraction (20),
SnapGrid (8 8) and EdgeResistance (128) for a screen with quite a
few windows and it often causes trouble.

Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama w/ EdgeResistance problem

2001-07-29 Thread Dmitry Yu. Bolkhovityanov
On 28 Jul 01 at 18:00, [EMAIL PROTECTED] wrote:

> There is a problem with Xinerama Edgeresistance and different
> screen sizes on the screens:
>
> Layout:
>
> screen 1 screen 2
>   +--++
>   |  |+--+|
>   |  ||  ||
>   |  ||window||
>   |  ||  ||
>   +--+|  ||
>  |+--+|
>  ||
>  ++
>
> When you move a window that is taller than screen 1 along the top
> edge of screen 2 and finally move it against or over the border
> between the screens it will then snap to the bottom border of
> screen 1:
>
>  +--+
>   +--|  |-+
>   |  |  | |
>   |  |  | |
>   |  |  | |
>   |  +--+ |
>   +--+|
>  ||
>  ||
>  ++
>
> This can be very confusing, especially if the pointer is still on
> the second screen.  One way to handle this may be to snap only to
> the screen that contains the pointer (?)

There's no such thing as "the decision" for this problem.  Some people
will prefer current behaviour, while some -- current-pointer-screen-based one
you suggest.  IMHO the current bahaviour can be left as is to watch feedback
after 2.4.1 release.

EdgeResistance is a non-trivial concept on itself (remember what happens
to windows with e.g. width>screen_width && widthhttp://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama merger -- part 1

2001-07-28 Thread Dmitry Yu. Bolkhovityanov
On 28 Jul 01 at 13:07, [EMAIL PROTECTED] wrote:

> > >  - Please keep in mind that that fvwm is controlled and configured
> > >by configuration commands, not by environment variables.  It's
> > >not necessary to make features configurable via the
> > >environment. (I'll remove the corresponding code).
> >
> > As to this point, one reason was an ability to pass these parameters to
> > modules (so that they will automatically be inherited via environment), and
> > another is that some other proggies can theoritically use XiSupp.c (think
> > about XMMS and various toolkits) or a similar thing, and they have no
> > standard means of communicating to FVWM.
>
> Ah, okay.  The solution to both problems is the module interface.
> Some settings like "Colorset" are communicated to the modules over
> the module pipe.  The state of Xinerama{En,Dis}abled can be easily
> communicated too.  In fact I have already done this.  Take a look
> at the code in virtual.c:
>
>   void CMD_XineramaDisable(F_CMD_ARGS)
>   {
> XineramaSupportDisable();
> BroadcastConfigInfoString("XineramaDisable");
>   }
>
> Any module listening for M_CONFIG_INFO packets will receive the
> string "XineramaDisable" when the function is called an can react
> properly.  I think I still forgot to send this string when the
> module is initially started, so the module's Xinerama state may
> not match fvwm's state at first.  I will take care of this.
>
> Any program that wants to communicate to fvwm tightly should be
> written as an fvwm module.  Another way would be to communicate
> via FvwmCommand, but that is inefficient and littl internal
> information about fvwm's state it communicated this way.
>
> > Sure, modules interface can (and should?) be extended to accept
> > PrimaryScreen change, but this is mostly irrelevant -- primary screen is
> > usually taken into account only at startup.

The problem of other programs remain -- they should *not* communicate to
fvwm, they should work with *any* WM.  In fact, the problem here is lack
of X.org specification.  IMHO the natural way will be to use a root window
property -- like _XINERAMA_PRIMARY_SCREEN.  In that case any program could
request notification of property's change.  This isn't urgent, but AFAIK
nobody have done something in this area yet, so if we do, this can become a
standard.

[SNIP]
> > >  - RandR support will certainly be no part of 2.4.1.  You should
> > >really try to split the patches you made on your disk into
> > >several patch files that can be applied individually.
> >
> > Well, the RandR support can be at the same position as multibyte 
> > support -
> > it is present but switched off by default.  When HAS_RANDR is undefined,
> > RandR will have no effect at all -- nothing will be queried in XiSupp.c, and
> > no RandR handlers will be called in events.c and FvwmPager.c.
> >
> > I added RandR support as an additional step forward -- it enables to
> > understand which currently used concepts will become obsolete in some near
> > future, and what should be changed for more flexibility.  That was the main
> > goal, not an ability to use resize feature of yet very rarely used KDrive.
> > ;-)
>
> Let me explain why I commented it (actually, commenting it made a
> huge, big mess of XineramaSupport.c):  The risk that new problems
> are introduced in the *stable* 2.4.1 release has to be minimised.

Can you please explain about a mess?  If I did something too interveawed
with other code, I need to know :-).

> > > One question about the XiParseGeometry function:  I don't
> > > understand why is does so many things.  It really shouldn't do
> > > more than just parsing the geometry string like XParseGeometry
> > > does and use the same signature.  I'll comment out all the extra
> > > stuff for now.
> >
> > The answer is that modules do way too many calculations themselves
> > (negative handling, gravity selection, etc.).  Much of them are duplicates,
> > and with submitted XiParseGeometry() modules become much simpler -- you add
> > one/two lines and remove sometimes several dozens (look at patches for
> > modules).
> >
> > Well, maybe XiParseGeometry is not a very appropriate name, in fact what
> > this function does is very similar to XWMGeometry.
>
> Well, then let's split up the function.  XiParseGeometry() does
> exactly what XParseGeometry() does but with the additional
> "@" parsing.  Another function could take its output as
> input and do the additiona

Re: Xinerama merger -- part 1

2001-07-28 Thread Dominik Vogt
On Sat, Jul 28, 2001 at 09:42:42PM +0700, Dmitry Yu. Bolkhovityanov wrote:
Content-Description: Mail message body
> On 28 Jul 01 at 13:07, [EMAIL PROTECTED] wrote:
> 
> > > >  - Please keep in mind that that fvwm is controlled and configured
> > > >by configuration commands, not by environment variables.  It's
> > > >not necessary to make features configurable via the
> > > >environment. (I'll remove the corresponding code).
> > >
> > > As to this point, one reason was an ability to pass these parameters 
> > > to
> > > modules (so that they will automatically be inherited via environment), 
> > > and
> > > another is that some other proggies can theoritically use XiSupp.c (think
> > > about XMMS and various toolkits) or a similar thing, and they have no
> > > standard means of communicating to FVWM.
> >
> > Ah, okay.  The solution to both problems is the module interface.
> > Some settings like "Colorset" are communicated to the modules over
> > the module pipe.  The state of Xinerama{En,Dis}abled can be easily
> > communicated too.  In fact I have already done this.  Take a look
> > at the code in virtual.c:
> >
> >   void CMD_XineramaDisable(F_CMD_ARGS)
> >   {
> > XineramaSupportDisable();
> > BroadcastConfigInfoString("XineramaDisable");
> >   }
> >
> > Any module listening for M_CONFIG_INFO packets will receive the
> > string "XineramaDisable" when the function is called an can react
> > properly.  I think I still forgot to send this string when the
> > module is initially started, so the module's Xinerama state may
> > not match fvwm's state at first.  I will take care of this.
> >
> > Any program that wants to communicate to fvwm tightly should be
> > written as an fvwm module.  Another way would be to communicate
> > via FvwmCommand, but that is inefficient and littl internal
> > information about fvwm's state it communicated this way.
> >
> > > Sure, modules interface can (and should?) be extended to accept
> > > PrimaryScreen change, but this is mostly irrelevant -- primary screen is
> > > usually taken into account only at startup.
> 
> The problem of other programs remain -- they should *not* communicate to
> fvwm, they should work with *any* WM.  In fact, the problem here is lack
> of X.org specification.  IMHO the natural way will be to use a root window
> property -- like _XINERAMA_PRIMARY_SCREEN.  In that case any program could
> request notification of property's change.  This isn't urgent, but AFAIK
> nobody have done something in this area yet, so if we do, this can become a
> standard.

Writing a standard for this would clearly be something that should
go into the "Enhanced Window Manager Hints" spec.  In any case,
it's much better to do it as a root window property.  But I since
nobody is writing applications especially for fvwm, any property
we define would not be used anyway.

> > Well, then let's split up the function.  XiParseGeometry() does
> > exactly what XParseGeometry() does but with the additional
> > "@" parsing.  Another function could take its output as
> > input and do the additional calculations.  Or if that won't work,
> > there should at least be an alias of the function that can be
> > called like XParseGeometry().
> 
> Okay, lets do int XiParseGeometry(char *str, int *{x,y,w,h,scr}) and
> XiGetGeometry(), which will do the actual calculations.  The thing is that
> "screen" parameter is not very useful outside XineramaSupport.c, since list
> of screens shouldn't be visible outside.

No, it shouldn't be visible outside.  Don't return it through the
interface.  If you want a function that returns more than x/y/w/h,
don't call it ...ParseGeometry().  This will just be confusing. As
far as I can see the knowledge of the screen is not needed
awterwards.  If you need that information to call another
function, you can write an internal variant of the
...ParseGeometry() function that returns screen numbers too.  Then
call it from your XiWMGeometry() function and from
XiParseGeometry().  But you should not change standard interfaces.
 
> The patch is attached (I'm very-very sorry for uppercase, that's my
> Pegasus Mail for Dos ;-).

Eeeek!

> It is cvs diff -u (similar-looking functions made
> diff slightly insane, so the patch layout looks a bit inoptimal).

Don't care 

> ...

> The point is not cleaning the code, but a correct operation of modules --
> do you need a pager on non-primary screen?

I don't quit understand the question.  Of course I'd usually
prefer the pager on the primary screen, but perhaps I wnat one on
both screens.

Bye

Dominik ^_^  ^_^

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

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Rewrote module interface for Xinerama support.

2001-07-28 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/28 18:59:10

Modified files:
.  : ChangeLog todo-xinerama 
fvwm   : modconf.c module_interface.c 
libs   : XineramaSupport.c XineramaSupport.h defaults.h 
modules: ChangeLog 
modules/FvwmBanner: FvwmBanner.c Makefile.am 
modules/FvwmForm: FvwmForm.c 

Log message:
* Rewrote module interface for Xinerama support.
* Adapted FvwmForm to new interface.
* FvwmBanner uses Xinerama support.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Xinerama w/ EdgeResistance problem

2001-07-28 Thread Dominik Vogt
There is a problem with Xinerama Edgeresistance and different
screen sizes on the screens:

Layout:

screen 1 screen 2
  +--++
  |  |+--+|
  |  ||  ||
  |  ||window||
  |  ||  ||
  +--+|  ||
 |+--+|
 ||
 ++

When you move a window that is taller than screen 1 along the top
edge of screen 2 and finally move it against or over the border
between the screens it will then snap to the bottom border of
screen 1:

 +--+
  +--|  |-+
  |  |  | |
  |  |  | |
  |  |  | |
  |  +--+ |
  +--+|
 ||
 ||
 ++

This can be very confusing, especially if the pointer is still on
the second screen.  One way to handle this may be to snap only to
the screen that contains the pointer (?)

Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Fix for snapping at Xinerama screen edges.

2001-07-28 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/28 10:53:33

Modified files:
.  : ChangeLog 
fvwm   : move_resize.c 
libs   : XineramaSupport.c 

Log message:
* Fix for snapping at Xinerama screen edges.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama merger -- part 1

2001-07-28 Thread Dominik Vogt
On Fri, Jul 27, 2001 at 09:35:49PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> On 27 Jul 01 at 11:56, fvwm-workers@fvwm.org wrote:
> 
> >  - Code is written with 80 characters per line, a basic
> >indentation width of 2.
> >  - Always compile the code with and without your ifdefs.  Remove
> >all warnings (compile with 'make CFLAGS="-Wall -Werror -g").
> 
> Okay.  I usually set CFLAGS="-W -Wall" -- this gives more interesting
> info.
> 
> >  - Please keep in mind that that fvwm is controlled and configured
> >by configuration commands, not by environment variables.  It's
> >not necessary to make features configurable via the
> >environment. (I'll remove the corresponding code).
> 
> As to this point, one reason was an ability to pass these parameters to
> modules (so that they will automatically be inherited via environment), and
> another is that some other proggies can theoritically use XiSupp.c (think
> about XMMS and various toolkits) or a similar thing, and they have no
> standard means of communicating to FVWM.

Ah, okay.  The solution to both problems is the module interface.
Some settings like "Colorset" are communicated to the modules over
the module pipe.  The state of Xinerama{En,Dis}abled can be easily
communicated too.  In fact I have already done this.  Take a look
at the code in virtual.c:

  void CMD_XineramaDisable(F_CMD_ARGS)
  {
XineramaSupportDisable();
BroadcastConfigInfoString("XineramaDisable");
  }

Any module listening for M_CONFIG_INFO packets will receive the
string "XineramaDisable" when the function is called an can react
properly.  I think I still forgot to send this string when the
module is initially started, so the module's Xinerama state may
not match fvwm's state at first.  I will take care of this.

Any program that wants to communicate to fvwm tightly should be
written as an fvwm module.  Another way would be to communicate
via FvwmCommand, but that is inefficient and littl internal
information about fvwm's state it communicated this way.

> Sure, modules interface can (and should?) be extended to accept
> PrimaryScreen change, but this is mostly irrelevant -- primary screen is
> usually taken into account only at startup.
> 
> >  - Please try to use one of the formatting styles that is used in
> >the fvwm code (indentation style).  Try not to put commands on
> >the same line as a condition.
> 
> BTW, I looked for some style guide inside fvwm sources, but didn't find
> any.  Your recommendations are definitely worth putting to some
> fvwm_style_guide.txt.

Another one of the things that nobody has the time and leisure to
do.  The common practice is that everybody formats his code pieces
as he likes.  Whenever one of the more active developers works a
lot with a certain piece of code (mostly me) he is free to
reformat that code as he likes.  I think there would be a lot of
potential for an extensive religios war about brace, whitepace and
comment placement if we really tried to write something down :-)

> >  - RandR support will certainly be no part of 2.4.1.  You should
> >really try to split the patches you made on your disk into
> >several patch files that can be applied individually.
> 
> Well, the RandR support can be at the same position as multibyte support -
> it is present but switched off by default.  When HAS_RANDR is undefined,
> RandR will have no effect at all -- nothing will be queried in XiSupp.c, and
> no RandR handlers will be called in events.c and FvwmPager.c.
> 
> I added RandR support as an additional step forward -- it enables to
> understand which currently used concepts will become obsolete in some near
> future, and what should be changed for more flexibility.  That was the main
> goal, not an ability to use resize feature of yet very rarely used KDrive.
> ;-)

Let me explain why I commented it (actually, commenting it made a
huge, big mess of XineramaSupport.c):  The risk that new problems
are introduced in the *stable* 2.4.1 release has to be minimised.


> > One question about the XiParseGeometry function:  I don't
> > understand why is does so many things.  It really shouldn't do
> > more than just parsing the geometry string like XParseGeometry
> > does and use the same signature.  I'll comment out all the extra
> > stuff for now.
> 
> The answer is that modules do way too many calculations themselves
> (negative handling, gravity selection, etc.).  Much of them are duplicates,
> and with submitted XiParseGeometry() modules become much simpler -- you add
> one/two lines and remove sometimes several dozens (look at patches for
> modules).
> 

Re: Xinerama merger -- part 1

2001-07-27 Thread Dmitry Yu. Bolkhovityanov
On 27 Jul 01 at 11:56, fvwm-workers@fvwm.org wrote:

>  - Code is written with 80 characters per line, a basic
>indentation width of 2.
>  - Always compile the code with and without your ifdefs.  Remove
>all warnings (compile with 'make CFLAGS="-Wall -Werror -g").

Okay.  I usually set CFLAGS="-W -Wall" -- this gives more interesting
info.

>  - Please keep in mind that that fvwm is controlled and configured
>by configuration commands, not by environment variables.  It's
>not necessary to make features configurable via the
>environment. (I'll remove the corresponding code).

As to this point, one reason was an ability to pass these parameters to
modules (so that they will automatically be inherited via environment), and
another is that some other proggies can theoritically use XiSupp.c (think
about XMMS and various toolkits) or a similar thing, and they have no
standard means of communicating to FVWM.

Sure, modules interface can (and should?) be extended to accept
PrimaryScreen change, but this is mostly irrelevant -- primary screen is
usually taken into account only at startup.

>  - Please try to use one of the formatting styles that is used in
>the fvwm code (indentation style).  Try not to put commands on
>the same line as a condition.

BTW, I looked for some style guide inside fvwm sources, but didn't find
any.  Your recommendations are definitely worth putting to some
fvwm_style_guide.txt.

>  - RandR support will certainly be no part of 2.4.1.  You should
>really try to split the patches you made on your disk into
>several patch files that can be applied individually.

Well, the RandR support can be at the same position as multibyte support -
it is present but switched off by default.  When HAS_RANDR is undefined,
RandR will have no effect at all -- nothing will be queried in XiSupp.c, and
no RandR handlers will be called in events.c and FvwmPager.c.

I added RandR support as an additional step forward -- it enables to
understand which currently used concepts will become obsolete in some near
future, and what should be changed for more flexibility.  That was the main
goal, not an ability to use resize feature of yet very rarely used KDrive.
;-)

> One question about the XiParseGeometry function:  I don't
> understand why is does so many things.  It really shouldn't do
> more than just parsing the geometry string like XParseGeometry
> does and use the same signature.  I'll comment out all the extra
> stuff for now.

The answer is that modules do way too many calculations themselves
(negative handling, gravity selection, etc.).  Much of them are duplicates,
and with submitted XiParseGeometry() modules become much simpler -- you add
one/two lines and remove sometimes several dozens (look at patches for
modules).

Well, maybe XiParseGeometry is not a very appropriate name, in fact what
this function does is very similar to XWMGeometry.

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * More Xinerama patch changes.

2001-07-27 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/27 04:58:23

Modified files:
libs   : XineramaSupport.c 

Log message:
* More Xinerama patch changes.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama merger -- part 1

2001-07-27 Thread Dominik Vogt
On Thu, Jul 26, 2001 at 05:43:39PM +0700, Dmitry Yu. Bolkhovityanov wrote:
Content-Description: Mail message body
> Hi!
> 
> That's part 1 of XineramaSupport v2 merger.  It contains
> libs/XineramaSupport.[ch] as drop-in replacements.  Next part will be
> configure script, followed by modules.
> 
> The only change required is to fvwm/menus.c -- to use
> XiSuppClipToScreenAt() instead of XiSuppClipToScreen() (the first of them
> appeared in XiSupp after february version).
> 
> Dominik, I have a question/correction regarding your changes to XiSupp.c.
> The XiSuppDisable() was intended as a mechanism to hard-disable Xinerama,
> while XiSuppSetState() -- to turn it on/off on the fly.  As I understood,
> you changed XiSuppSetState() to be internal call, while
> XiSupp{Enable,Disable} are used as previously XiSuppSetState().  Am I right?

I just took the time to start merging the patch.  Please try to
write code keeping this in mind:

 - Code is written with 80 characters per line, a basic
   indentation width of 2.
 - Always compile the code with and without your ifdefs.  Remove
   all warnings (compile with 'make CFLAGS="-Wall -Werror -g").
 - Please keep in mind that that fvwm is controlled and configured
   by configuration commands, not by environment variables.  It's
   not necessary to make features configurable via the
   environment. (I'll remove the corresponding code).
 - Please try to use one of the formatting styles that is used in
   the fvwm code (indentation style).  Try not to put commands on
   the same line as a condition.
 - RandR support will certainly be no part of 2.4.1.  You should
   really try to split the patches you made on your disk into
   several patch files that can be applied individually.

One question about the XiParseGeometry function:  I don't
understand why is does so many things.  It really shouldn't do
more than just parsing the geometry string like XParseGeometry
does and use the same signature.  I'll comment out all the extra
stuff for now.

Bye

Dominik ^_^  ^_^

-- 
Dominik Vogt, email: [EMAIL PROTECTED]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Applied next Xinerama patch with some modifications, commented out a lot of

2001-07-27 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/27 04:55:15

Modified files:
.  : ChangeLog 
libs   : XineramaSupport.c XineramaSupport.h 

Log message:
* Applied next Xinerama patch with some modifications, commented out a lot of
stuff (code duplication, randr, env variables ...).

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama merger -- part 1

2001-07-27 Thread Dominik Vogt
On Thu, Jul 26, 2001 at 05:43:39PM +0700, Dmitry Yu. Bolkhovityanov wrote:
Content-Description: Mail message body
> Hi!
> 
> That's part 1 of XineramaSupport v2 merger.  It contains
> libs/XineramaSupport.[ch] as drop-in replacements.  Next part will be
> configure script, followed by modules.
> 
> The only change required is to fvwm/menus.c -- to use
> XiSuppClipToScreenAt() instead of XiSuppClipToScreen() (the first of them
> appeared in XiSupp after february version).

I will start applying your patches as soon as possible.  Since my
mother pays me a visit this weekend I can't promise that I'll have
the time.

> Dominik, I have a question/correction regarding your changes to XiSupp.c.
> The XiSuppDisable() was intended as a mechanism to hard-disable Xinerama,
> while XiSuppSetState() -- to turn it on/off on the fly.  As I understood,
> you changed XiSuppSetState() to be internal call, while
> XiSupp{Enable,Disable} are used as previously XiSuppSetState().  Am I right?

Yes.  I did not understand this logic and I did not want that the
interface of XiSetState() was visible outside the module because
it has an interface that can be called in a way that would crash
fvwm later.  I think a simple on/off call is enough.  Also, it is
more flexible if you can't disable Xinerama support completely.

Bye

Dominik ^_^  ^_^

-- 
Dominik Vogt, email: [EMAIL PROTECTED]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Xinerama merger -- part 1

2001-07-26 Thread Dmitry Yu. Bolkhovityanov
Hi!

That's part 1 of XineramaSupport v2 merger.  It contains
libs/XineramaSupport.[ch] as drop-in replacements.  Next part will be
configure script, followed by modules.

The only change required is to fvwm/menus.c -- to use
XiSuppClipToScreenAt() instead of XiSuppClipToScreen() (the first of them
appeared in XiSupp after february version).

Dominik, I have a question/correction regarding your changes to XiSupp.c.
The XiSuppDisable() was intended as a mechanism to hard-disable Xinerama,
while XiSuppSetState() -- to turn it on/off on the fly.  As I understood,
you changed XiSuppSetState() to be internal call, while
XiSupp{Enable,Disable} are used as previously XiSuppSetState().  Am I right?

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13This message contains a file prepared for transmission using the
MIME BASE64 transfer encoding scheme. If you are using Pegasus
Mail or another MIME-compliant system, you should be able to extract
it from within your mailer. If you cannot, please ask your system
administrator for help.

    File information ---
 File:  FXNR_P1.TGZ
 Date:  26 Jul 2001, 17:17
 Size:  7298 bytes.
 Type:  Binary


FXNR_P1.TGZ
Description: Binary data


Re: Solaris Xinerama

2001-07-25 Thread Danek Duvall
On Wed, Jul 25, 2001 at 11:04:43AM -0400, Dan Espen wrote:

> > Sun had a habit of shipping various libraries and utilities in separate
> > optional packages, so...  Anyway,
> > 
> > find / | egrep -i 'xinerama|panoramix'
> 
> A find like that would run for months on our file systems,

For installed Solaris packages (assuming you haven't messed with the
installation), you can run that grep on /var/sadm/install/contents.  I find
that to be incredibly useful.

Nothing turns up in the filesystem, but

/usr/openwin/bin% nm Xsun | grep -i xinerama
[5176]  |702552|  60|FUNC |GLOB |0|9  |ForceXineramaApiImport
[1661]  |934356| 384|FUNC |LOCL |0|9  |ProcXineramaGetInfo
[1535]  |887704| 384|FUNC |LOCL |0|9  |ProcXineramaInfo
[4029]  |935088|1648|FUNC |GLOB |0|9  |XineramaGetImageData
[4787]  |973208| 128|FUNC |GLOB |0|9  |XineramaGetScreenList
[5303]  |973336|  44|FUNC |GLOB |0|9  |XineramaGetXIDList
[3102]  |973160|  48|FUNC |GLOB |0|9  |isXineramaScreen
[1684]  | 0|   0|FILE |LOCL |0|ABS|xinerama_api.c

/usr/openwin/lib% nm -A *.so | grep -i xinerama
libXext.so: [428]   | 80156| 404|FUNC |GLOB |0|10 
|XGetXineramaInfo
libXext.so: [383]   | 80576| 704|FUNC |GLOB |0|10 
|XineramaGetCenterHint
libXext.so: [277]   | 79688| 468|FUNC |GLOB |0|10 
|XineramaGetInfo
libXext.so: [395]   | 79616|  72|FUNC |GLOB |0|10 
|XineramaGetState
libdga.so: [256]| 29548| 380|FUNC |GLOB |0|10 
|XDgaGetXineramaInfo

Doesn't look like there are any mentions of it in any header files, though,
so you'd have to provide the declarations yourself.

HTH,
Danek

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Solaris Xinerama

2001-07-25 Thread Dmitry Yu. Bolkhovityanov
On 25 Jul 01 at 11:04, [EMAIL PROTECTED] wrote:

[SNIP]
> Odd that it doesn't list Xinerama.
> The Xsun man page says I should do "xinit +xinerama" to get Xinerama
> support.  Perhaps the extension only shows when you do that.

Right.  An interesting fact is that Xnest also supports Xinerama (and
it shows in a list of extensions if "+xinerama" is specified), but all
screens always share the same (0,0) position, and I haven't find a way to
configure it.

> > > I don't know if there is some other way to detect Xinerama.
> > > I didn't see anything obvious in libs/XineramaSupport.c.
> >
> > No, AFAIK, what is currently used is the only way (well, how can we
> > support Xinerama w/o libXinerama)?
>
> I did find this:
>
> http://mail.gnome.org/archives/gtk-devel-list/2001-June/msg00279.html

Well, people in that thread give the same result -- Solaris machines
look like non-Xinerama-enabled.

Mark V. pointed me to X.org's Xinerama task force, but they haven't
released any docs/standards yet, and god knows when they will.  Anyway,
current XFree's interface is already widespread (it is used by at least E,
SawFish (or is it SawMill?), Oroborus and Gnome).

Even if the interface changes in the future, we'll have no problems
adapting to it -- everything is incapsulated in
XineramaSupport::XineramaSupportInit() (plus little checks in configure).

P.S. There's no need to CC -- I'm on the list.

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Solaris Xinerama

2001-07-25 Thread Dmitry Yu. Bolkhovityanov
On 25 Jul 01 at 21:24, [EMAIL PROTECTED] wrote:

> > I don't know if there is some other way to detect Xinerama.
> > I didn't see anything obvious in libs/XineramaSupport.c.
>
> No, AFAIK, what is currently used is the only way (well, how can we
> support Xinerama w/o libXinerama)?
>
> BTW, official X.org's R6.5.1 (or whatever is current) is a good place to
> look at, I'll do it.

Done.  R6.6 ships with only panoramiX, which is absolutely
unsatisfactory (while is also supported by libXinerama).

The main problem in "PanoramiX" interface is insufficient screen info --
it doesn't supply screen origins, only sizes.  This is solved in "Xinerama"
interface, which was written by Mark Vojkovich for XFree86, and hence is
currently XFree86-specific.

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Solaris Xinerama

2001-07-25 Thread Dan Espen
"Dmitry Yu. Bolkhovityanov" <[EMAIL PROTECTED]> writes:
> On 25 Jul 01 at 10:06, [EMAIL PROTECTED] wrote:
> 
> > Based on the man page, Solaris 8's Xserver supports Xinerama.
> > There is no libXinerama so the configure test fails.
> > There is also no header in X11/extensions.
> 
> Can you compile fvwm w/Xinerama under XFree86 and run it with -display
> to Solaris' X?

Not right now.

> Or simply do xdpyinfo on Solaris box and look if XINERAMA is
> present in the list of extensions.

That I can do:

name of display::0.0
version number:11.0
vendor string:Sun Microsystems, Inc.
vendor release number:6410
maximum request size:  262140 bytes
motion buffer size:  256
bitmap unit, bit order, padding:32, MSBFirst, 32
image byte order:MSBFirst
number of supported pixmap formats:4
supported pixmap formats:
depth 1, bits_per_pixel 1, scanline_pad 32
depth 8, bits_per_pixel 8, scanline_pad 32
depth 16, bits_per_pixel 16, scanline_pad 32
depth 24, bits_per_pixel 32, scanline_pad 32
keycode range:minimum 8, maximum 132
focus:  window 0x141, revert to Parent
number of extensions:28
AccessX
Adobe-DPS-Extension
DOUBLE-BUFFER
DPMS
DPSExtension
Extended-Visual-Information
FBPM
LBX
MIT-SCREEN-SAVER
MIT-SHM
MIT-SUNDRY-NONSTANDARD
Multi-Buffering
RECORD
SECURITY
SHAPE
SUN_ALLPLANES
SUN_DGA
SUN_OVL
SUN_SME
SYNC
SolarisIA
TOG-CUP
XC-APPGROUP
XC-MISC
XIE
XInputDeviceEvents
XInputExtension
XTEST

Odd that it doesn't list Xinerama.
The Xsun man page says I should do "xinit +xinerama" to get Xinerama
support.  Perhaps the extension only shows when you do that.

I'm not at work so I can't do that right now.

> Sun had a habit of shipping various libraries and utilities in separate
> optional packages, so...  Anyway,
> 
> find / | egrep -i 'xinerama|panoramix'
> 
> will be a good source of information ("Panoramix" is Xinerama's old name).

A find like that would run for months on our file systems,
even if I pruned out the 11 .snapshot subdirectories from our
NetApp filers.

Running it against /usr/openwin turns up nothing.

> > I don't know if there is some other way to detect Xinerama.
> > I didn't see anything obvious in libs/XineramaSupport.c.
> 
> No, AFAIK, what is currently used is the only way (well, how can we
> support Xinerama w/o libXinerama)?

I did find this:

http://mail.gnome.org/archives/gtk-devel-list/2001-June/msg00279.html

> BTW, official X.org's R6.5.1 (or whatever is current) is a good place to
> look at, I'll do it.

-- 
Dan Espen
444 Hoes Lane  Room RRC 1C-214   E-mail: [EMAIL PROTECTED]
Piscataway, NJ 08854 Phone: (732) 699-5570
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Solaris Xinerama

2001-07-25 Thread Dmitry Yu. Bolkhovityanov
On 25 Jul 01 at 10:06, [EMAIL PROTECTED] wrote:

> Based on the man page, Solaris 8's Xserver supports Xinerama.
> There is no libXinerama so the configure test fails.
> There is also no header in X11/extensions.

Can you compile fvwm w/Xinerama under XFree86 and run it with -display
to Solaris' X?  Or simply do xdpyinfo on Solaris box and look if XINERAMA is
present in the list of extensions.

Sun had a habit of shipping various libraries and utilities in separate
optional packages, so...  Anyway,

find / | egrep -i 'xinerama|panoramix'

will be a good source of information ("Panoramix" is Xinerama's old name).

> I don't know if there is some other way to detect Xinerama.
> I didn't see anything obvious in libs/XineramaSupport.c.

No, AFAIK, what is currently used is the only way (well, how can we
support Xinerama w/o libXinerama)?

BTW, official X.org's R6.5.1 (or whatever is current) is a good place to
look at, I'll do it.

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Solaris Xinerama

2001-07-25 Thread Dan Espen

Based on the man page, Solaris 8's Xserver supports Xinerama.
There is no libXinerama so the configure test fails.
There is also no header in X11/extensions.

I don't know if there is some other way to detect Xinerama.
I didn't see anything obvious in libs/XineramaSupport.c.

Perhaps the man page should identify this as an XFree86 only
feature.

-- 
Dan Espen
444 Hoes Lane  Room RRC 1C-214 E-mail: [EMAIL PROTECTED]
Piscataway, NJ 08854   Phone: (732) 699-5570
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Reduce number of XQueryPointer calls in move/resize lopps w/ Xinerama.

2001-07-24 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/24 19:18:19

Modified files:
.  : ChangeLog NEWS todo-xinerama 
fvwm   : builtins.c fvwm.c move_resize.c move_resize.h 
 virtual.c 
libs   : XineramaSupport.c XineramaSupport.h defaults.h 
modules: ChangeLog 
modules/FvwmForm: FvwmForm.c 

Log message:
* Reduce number of XQueryPointer calls in move/resize lopps w/ Xinerama.
* Fixed a problem that could cause windows to be lost off screen
with interactive window motion.
* Moved some constants to libs/defaults.h
* Reworked calculation of the geometry window size.
* Grid outline is deleted before moving the geometry window to a new place.
* Changed the interface of the MoveOutline stuff.
* Fixed resizing geometry window before creating it.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama patch -- v2

2001-07-24 Thread Dominik Vogt
On Tue, Jul 24, 2001 at 09:48:02PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> On 23 Jul 01 at 18:55, fvwm-workers@fvwm.org wrote:
> 
> > On Mon, Jul 23, 2001 at 06:34:52PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> > Content-Description: Mail message body
> > > Hi!
> > >
> > > Attached is a new version of Xinerama patch.  The .tgz contains a diff
> > > file (against 05-Jul-2001 snapshot), two new files in libs/, and a
> > > description of what was done.
> >
> > Could you by any chance update this patch for the current CVS
> > version?  The risk that I do something wrong if I merge the patch
> > with the current code is way too high.
> >
> > > This patch has a very basic RandR support, which is disabled by 
> > > default.
> > >
> > > Also new from previous version is XiSuppParseGeometry(), which
> > > implements a concept of "primary screen".
> > >
> > > To enable lots of debug info, -DDEBUG_PRINTS=1 can be used.
> > >
> > > Since some Xinerama support was already added to CVS, I decided to 
> > > post
> > > this patch immediately and not spend time adapting it to current CVS 
> > > (which
> > > will advance even further by the time adaptation is finished ;-).
> >
> > Well, either you adapt it or I do.  Sice you wrote the patch
> > yourself it's safer if you do it.  Don't believe merging the patch
> > is less work just because someone else does it ;-)
> 
> Well, we should first decide who does it (sorry for such a bureacracy ;-)

Okay, then you should do it.  I and Olivier already made some
changes to the libs/Xinerama... files.  If you spent any time
patching menus.c, don't include it in the patch but instead make
a separate patch with a description of the changes.  I will then
do all the work in the menu code.

> -- there's a 100%-possibility of conflict when simultaneously making changes
> to the same pieces of code.  I'll have time for it about friday.  The point
> is that new version should be integrated as soon as possible, for next
> changes to be based on it instead of older one.
> 
> As I understand, all modifications to the modules/ can be performed
> safely, since you didn't touch them yet, right?  And, BTW, the patch
> contained a slightly modified version of TaskBar patch (with revealed-when-
> focused functionality), which is already in CVS.
> 
> So, if you do it now -- okay; if you give me a timeslot on friday --
> I'll do it myself.

If you actively develop code, the best way ist to always keep up
to date with CVS always.  The conflicts are much easier to resolve
at the moment they occur.
 
Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, email: [EMAIL PROTECTED]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama patch -- v2

2001-07-24 Thread Dmitry Yu. Bolkhovityanov
On 23 Jul 01 at 18:55, fvwm-workers@fvwm.org wrote:

> On Mon, Jul 23, 2001 at 06:34:52PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> Content-Description: Mail message body
> > Hi!
> >
> > Attached is a new version of Xinerama patch.  The .tgz contains a diff
> > file (against 05-Jul-2001 snapshot), two new files in libs/, and a
> > description of what was done.
>
> Could you by any chance update this patch for the current CVS
> version?  The risk that I do something wrong if I merge the patch
> with the current code is way too high.
>
> > This patch has a very basic RandR support, which is disabled by default.
> >
> > Also new from previous version is XiSuppParseGeometry(), which
> > implements a concept of "primary screen".
> >
> > To enable lots of debug info, -DDEBUG_PRINTS=1 can be used.
> >
> > Since some Xinerama support was already added to CVS, I decided to post
> > this patch immediately and not spend time adapting it to current CVS (which
> > will advance even further by the time adaptation is finished ;-).
>
> Well, either you adapt it or I do.  Sice you wrote the patch
> yourself it's safer if you do it.  Don't believe merging the patch
> is less work just because someone else does it ;-)

Well, we should first decide who does it (sorry for such a bureacracy ;-)
-- there's a 100%-possibility of conflict when simultaneously making changes
to the same pieces of code.  I'll have time for it about friday.  The point
is that new version should be integrated as soon as possible, for next
changes to be based on it instead of older one.

As I understand, all modifications to the modules/ can be performed
safely, since you didn't touch them yet, right?  And, BTW, the patch
contained a slightly modified version of TaskBar patch (with revealed-when-
focused functionality), which is already in CVS.

So, if you do it now -- okay; if you give me a timeslot on friday --
I'll do it myself.

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Make the blank area in Xinerama emulation usable again.

2001-07-23 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/23 17:38:29

Modified files:
.  : ChangeLog todo-xinerama 
fvwm   : menus.c menus.h windowlist.c 
libs   : XineramaSupport.c 

Log message:
* Make the blank area in Xinerama emulation usable again.
* Menus are resized properly to adapt to the Xinerama screen they use.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS olicha: * Draw the xinerama simulation screens with some orr windows

2001-07-23 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: olicha  01/07/23 15:23:02

Modified files:
libs   : XineramaSupport.c 
.  : ChangeLog 

Log message:
* Draw the xinerama simulation screens with some orr windows

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama patch -- v2

2001-07-23 Thread Dominik Vogt
On Mon, Jul 23, 2001 at 06:34:52PM +0700, Dmitry Yu. Bolkhovityanov wrote:
Content-Description: Mail message body
> Hi!
> 
> Attached is a new version of Xinerama patch.  The .tgz contains a diff
> file (against 05-Jul-2001 snapshot), two new files in libs/, and a
> description of what was done.

Could you by any chance update this patch for the current CVS
version?  The risk that I do something wrong if I merge the patch
with the current code is way too high.

> This patch has a very basic RandR support, which is disabled by default.
> 
> Also new from previous version is XiSuppParseGeometry(), which
> implements a concept of "primary screen".
> 
> To enable lots of debug info, -DDEBUG_PRINTS=1 can be used.
> 
> Since some Xinerama support was already added to CVS, I decided to post
> this patch immediately and not spend time adapting it to current CVS (which
> will advance even further by the time adaptation is finished ;-).

Well, either you adapt it or I do.  Sice you wrote the patch
yourself it's safer if you do it.  Don't believe merging the patch
is less work just because someone else does it ;-)

Bye

Dominik ^_^  ^_^

--
Dominik Vogt, email: [EMAIL PROTECTED]
LifeBits Aktiengesellschaft, Albrechtstr. 9, D-72072 Tuebingen
fon: ++49 (0) 7071/7965-0, fax: ++49 (0) 7071/7965-20

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Xinerama patch -- v2

2001-07-23 Thread Dmitry Yu. Bolkhovityanov
Hi!

Attached is a new version of Xinerama patch.  The .tgz contains a diff
file (against 05-Jul-2001 snapshot), two new files in libs/, and a
description of what was done.

This patch has a very basic RandR support, which is disabled by default.

Also new from previous version is XiSuppParseGeometry(), which
implements a concept of "primary screen".

To enable lots of debug info, -DDEBUG_PRINTS=1 can be used.

Since some Xinerama support was already added to CVS, I decided to post
this patch immediately and not spend time adapting it to current CVS (which
will advance even further by the time adaptation is finished ;-).

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13This message contains a file prepared for transmission using the
MIME BASE64 transfer encoding scheme. If you are using Pegasus
Mail or another MIME-compliant system, you should be able to extract
it from within your mailer. If you cannot, please ask your system
administrator for help.

    File information ---
 File:  FVWMXINR.TGZ
 Date:  23 Jul 2001, 17:13
 Size:  27149 bytes.
 Type:  Binary


FVWMXINR.TGZ
Description: Binary data


Re: Regarding Xinerama support

2001-07-23 Thread Dmitry Yu. Bolkhovityanov
On 22 Jul 01 at 13:37, [EMAIL PROTECTED] wrote:

> What is RandR?

RandR is a Resize and Rotate extension -- an ability to change screen
dimensions of a live X server.  It is available in the CVS version of
XFree86, and is currently limited to KDrive (aka TinyX).  But it is being
ported to mainstream XAA-based servers.

A brief discussion of RandR is at

http://www.xfree86.org/~keithp/talks/randr/

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama to-do

2001-07-23 Thread Dmitry Yu. Bolkhovityanov
On 22 Jul 01 at 16:05, [EMAIL PROTECTED] wrote:

> On Sun, Jul 22, 2001 at 09:32:38PM +0700, Dmitry Yu. Bolkhovityanov wrote:
[SNIP]
> >   7) Maximizing windows
[SNIP]
> > Implementation of 7 also doesn't look problematic, I can do it.
>
> Perhaps we should first discuss how to implement the new syntax in
> general.  There are several places where Xinerama specific
> parameters would be useful (Move, Resize, ResizeMove, Maximize,
> MoveToPage and others).

As to Maximize, the syntax can be extended with a single optional switch:

Maximize [absolute] ...

By default maximization occurs on a window's screen, but if "absolute" is
specified, the global screen is used instead (that's how it is done in E).

I'm not sure what to do with Move/Resize.  These *can* also use an
optional "absolute" parameter, but Move should allow inter-screen moving by
default. Resize, on the other hand, can benefit from such a constraint.
Yuck, the Move is already constrained by inter-xinerama-screen
EdgeResistance, so applying optional "absolute" to resizing will be enough.

> > And what do you mean in 10 -- should Pager draw each page as a complex
> > shape, consisting of several rectangles, with possible "blank areas",
> > instead of current simple rectangle?  And should it limit moving "mini-
> > windows" as moving real ones are limited to existing screen space?
>
> At least it would be nice to optionally have some kind of
> separator similar to page separators.  Also, the blank areas
> should be visible and it shouldn't be possible to move windows
> entirely into them.

Okay -- than we'll have to add XiSuppGetScreens or, better,

int  XiSuppGetScreensCount(void)
void XiSuppGetNScrRect(int N, int *x, int *y, int *w, int *h).

But that must be re-queried on every XineramaUse/XineramaIgnore to keep
pager's list coherent with XineramaSupport's.  Anyway, users of this
interface should be limited to Pager.

> > > However some of the
> > > Xinerama functions poll the pointer position which reduces
> > > performance a lot, especially in the move and resize loops.
> >
> > Is there any current-pointer-position cache in Xlib, which can be
> > queried instead of always calling XQueryPointer()?  That could be fine.
>
> I don't think so.
>
> > Otherwise we should add something like "XineramaSupportNextEvent", which
> > could do caching instead.
>
> Another solution would be to allow screen coordinates as optional
> parameters to the XineramaSuporrt... function calls.  The pointer
> would only be queried if no position was given.  I'm not yet sure
> what the best solution would be.
>
> I have been thinking about fvwm replacements for X and other
> library funtions for a while.  It may be a good idea to drop in
> functions a la FvwmNextEvent as replacements for the X functions
> and somehow automatically create a compiler error for all places
> where the original function is used.

"Optional parameters" decision will require such parameters to too many
calls (some of the cases are not obvious).  It seems better to introduce
FvwmNextEvent and make it call XiSuppSetMouseXY():

Bool cur_ms_coords_set = False;

void XiSuppSetMouseXY(int x, int y)
{
  cur_ms_x = x;
  cur_ms_y = y;
  cur_ms_coords_set = True;
}

static void GetMouseXY(int *x, int *y)
{
  if (cur_ms_coords_set)
  {
*x = cur_ms_x;
*y = cur_ms_y;
  }
  else
XQueryPointer(...);
}

The cur_ms_coords_set guard is for just-started proggies, when no events
are received yet, but we need to know current pointer position.

BTW, are there any cases when a module will require XiSupp to do a
current-screen-based decision, while not feeding up-to-date XY info
beforehand (e.g., when the pointer is moved to other screen, and not above
that module's window)?

[SNIP]
> > As to general, standard X geometry specification turned to be
> > insufficient for Xinerama, so new XineramaSupport.c enables one to specify
> > [EMAIL PROTECTED], where optional S parameter is a screen.
>
> Then we need an enhanced version of XParseGeometry() too?

Yes, that's the XineramaSupportParseGeometry() ;-)

> > The screen can be either a number or one of "g" (global -- emulates
> > XParseGeometry), "c" (current -- where pointer is), "p" -- primary (usually
> > 1st screen, unless changed), this is the default.
> >
> > Plus a concept of "primary screen", where main controls are located
> > (Pager, Wharf, TaskBar (sic!)).  (Since XFree86 4.1 XDM places its login
> > window to the 1st Xinerama screen too.)
>
> Yes, the concept of a primary screen is a good 

CVS domivogt: * Several menu placement/Xinerama fixes.

2001-07-22 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/22 19:56:03

Modified files:
.  : ChangeLog 
fvwm   : menus.c windowlist.c 

Log message:
* Several menu placement/Xinerama fixes.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama to-do

2001-07-22 Thread Dominik Vogt
On Sun, Jul 22, 2001 at 09:32:38PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> On 22 Jul 01 at 12:57, [EMAIL PROTECTED] wrote:
> 
> > Here is a list of features Xinerama support may or may not
> > support:
> >
> >   1) Window placement
> >   2) Icon placement
> >   3) Menu placement
> >   4) Menu position hints
> >   5) Sizing menus for different screen sizes
> >   6) Position of the geometry window
> >   7) Maximizing windows
> >   8) Limit SnapAttraction to windows on same screen.
> >   9) Enable and Disable Xinerama on the fly (including modules)
> >  10) Xinerama support in Pager
> >  11) Xinerama support in WindowList
> >  12) XineramaSupport in various icon managers (IconMan, WinList)
> >  13) EdgeScrolling between Xinerama screens.
> >  14) Handle Xinerama screens in Move/Resize parameters.
> >
> > Currently, 3, 6, 9 and 13 are implemented.
> 
> I've already implemented 11 (i.e. FvwmWinList obeys current xinerama-
> screen when managing its geometry, but should we introduce
> "ShowCurrentScreen" option?  I think no).

With 11 I meant the WindowList command, not the FvwmWinList
module.  Of course it should be done in the module too.

> Implementation of 7 also doesn't look problematic, I can do it.

Perhaps we should first discuss how to implement the new syntax in
general.  There are several places where Xinerama specific
parameters would be useful (Move, Resize, ResizeMove, Maximize,
MoveToPage and others).  


> BTW, did you mean "EdgeResistance" in 13?

Yes.

> And what do you mean in 10 -- should Pager draw each page as a complex
> shape, consisting of several rectangles, with possible "blank areas",
> instead of current simple rectangle?  And should it limit moving "mini-
> windows" as moving real ones are limited to existing screen space?

At least it would be nice to optionally have some kind of
separator similar to page separators.  Also, the blank areas
should be visible and it shouldn't be possible to move windows
entirely into them.

> > However some of the
> > Xinerama functions poll the pointer position which reduces
> > performance a lot, especially in the move and resize loops.
> 
> Is there any current-pointer-position cache in Xlib, which can be
> queried instead of always calling XQueryPointer()?  That could be fine.

I don't think so.

> Otherwise we should add something like "XineramaSupportNextEvent", which
> could do caching instead.

Another solution would be to allow screen coordinates as optional
parameters to the XineramaSuporrt... function calls.  The pointer
would only be queried if no position was given.  I'm not yet sure
what the best solution would be.

I have been thinking about fvwm replacements for X and other
library funtions for a while.  It may be a good idea to drop in
functions a la FvwmNextEvent as replacements for the X functions
and somehow automatically create a compiler error for all places
where the original function is used.

> > Consider this layout of a Xinerama screen consisting of two
> > physical screens:
> >
> >   Xinerama screen
> >   +-+--+
> >   | |  |
> >   | |  |
> >   | |  |
> >   | |  |
> >   | |  screen 2|
> >   | screen 1|  |
> >   | |  |
> >   | |  |
> >   | |  |
> >   | |  |
> >   +-+  |
> >   |   blank area|  |
> >   | |  |
> >   +-+--+
> >
> >
> > At the moment, the most annoying problems are:
> >
> >  - Fvwm happily places windows and icons in blank areas.
> >  - Menus are sized for the whole screen.  If a menu that is as
> >tall as screen 2 is opened on screen 1, the bottom items are
> >    not accessible.
> >  - Maximizing windows always covers the whole screen, not only
> >the sub screen with the window.
> >
> > In another step it may be worthwhile to put all code dealing with
> > screen dimensions in a single library libs/Screen.c instead of
> > libs/XineramaSupport.c.  This libraray could handle all
> > arithmetics with screen dimensions and would be the only place
> > that knows about Xinerama at all.
> 
> It is exactly the point which was taken when designing XineramaSupport --
> to mak

CVS domivogt: * Fixed placement of menus that reach beyound the left edge of a Xinerama

2001-07-22 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/22 18:56:18

Modified files:
.  : ChangeLog 
fvwm   : menus.c 

Log message:
* Fixed placement of menus that reach beyound the left edge of a Xinerama
screen.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Fixed -99999 y position when moving windows that was broken w/ the Xinerama

2001-07-22 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/22 18:38:20

Modified files:
.  : ChangeLog NEWS todo-xinerama 
fvwm   : fvwm2.1 menus.c menus.h move_resize.c virtual.c 
 windowlist.c 
libs   : XineramaSupport.c XineramaSupport.h 

Log message:
* Fixed -9 y position when moving windows that was broken w/ the Xinerama
patch.
* Menu position hints properly handle Xinerama screens.
* New context rectangle "XineramaRoot" for Menu and Popup commands.
* Mention all changes in NEWS.
* Some preliminary changes in Xinerama interface.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: CVS domivogt: * First version of Xinerama support.

2001-07-22 Thread Dominik Vogt
On Sun, Jul 22, 2001 at 06:18:57PM +, Mikhael Goikhman wrote:
> On 22 Jul 2001 16:49:43 +, Mikhael Goikhman wrote:
> > 
> > Yes, Xinerama support is on after "configure; make install".
> 
> The same problem happens with "configure --disable-xinerama".
> 
> BTW, I can't reproduce the problem with WindowShade now.
> Only interactive Move is problematic.

Somehow, several dozens lines of old or trash code had slipped
into DoSnapAttraction() in move_resize.c.  I have removed this
code and it works for me again.  The problem only showed up if you
did not use SnapGrid.

Bye

Dominik ^_^  ^_^

--
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: CVS domivogt: * First version of Xinerama support.

2001-07-22 Thread Mikhael Goikhman
On 22 Jul 2001 16:49:43 +, Mikhael Goikhman wrote:
> 
> Yes, Xinerama support is on after "configure; make install".

The same problem happens with "configure --disable-xinerama".

BTW, I can't reproduce the problem with WindowShade now.
Only interactive Move is problematic.

Regards,
Mikhael.
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Xinerama to-do

2001-07-22 Thread Dmitry Yu. Bolkhovityanov
On 22 Jul 01 at 12:57, [EMAIL PROTECTED] wrote:

> Here is a list of features Xinerama support may or may not
> support:
>
>   1) Window placement
>   2) Icon placement
>   3) Menu placement
>   4) Menu position hints
>   5) Sizing menus for different screen sizes
>   6) Position of the geometry window
>   7) Maximizing windows
>   8) Limit SnapAttraction to windows on same screen.
>   9) Enable and Disable Xinerama on the fly (including modules)
>  10) Xinerama support in Pager
>  11) Xinerama support in WindowList
>  12) XineramaSupport in various icon managers (IconMan, WinList)
>  13) EdgeScrolling between Xinerama screens.
>  14) Handle Xinerama screens in Move/Resize parameters.
>
> Currently, 3, 6, 9 and 13 are implemented.

I've already implemented 11 (i.e. FvwmWinList obeys current xinerama-
screen when managing its geometry, but should we introduce
"ShowCurrentScreen" option?  I think no).

Implementation of 7 also doesn't look problematic, I can do it.

BTW, did you mean "EdgeResistance" in 13?

And what do you mean in 10 -- should Pager draw each page as a complex
shape, consisting of several rectangles, with possible "blank areas",
instead of current simple rectangle?  And should it limit moving "mini-
windows" as moving real ones are limited to existing screen space?

> However some of the
> Xinerama functions poll the pointer position which reduces
> performance a lot, especially in the move and resize loops.

Is there any current-pointer-position cache in Xlib, which can be
queried instead of always calling XQueryPointer()?  That could be fine.
Otherwise we should add something like "XineramaSupportNextEvent", which
could do caching instead.

> Consider this layout of a Xinerama screen consisting of two
> physical screens:
>
>   Xinerama screen
>   +-+--+
>   | |  |
>   | |  |
>   | |  |
>   | |  |
>   | |  screen 2|
>   | screen 1|  |
>   | |  |
>   | |  |
>   | |  |
>   | |  |
>   +-+  |
>   |   blank area|  |
>   | |  |
>   +-+--+
>
>
> At the moment, the most annoying problems are:
>
>  - Fvwm happily places windows and icons in blank areas.
>  - Menus are sized for the whole screen.  If a menu that is as
>tall as screen 2 is opened on screen 1, the bottom items are
>not accessible.
>  - Maximizing windows always covers the whole screen, not only
>the sub screen with the window.
>
> In another step it may be worthwhile to put all code dealing with
> screen dimensions in a single library libs/Screen.c instead of
> libs/XineramaSupport.c.  This libraray could handle all
> arithmetics with screen dimensions and would be the only place
> that knows about Xinerama at all.

It is exactly the point which was taken when designing XineramaSupport --
to make an abstract "screen geometry" layer.  RandR support fits fine into
this model.  "Screen.c" seems to be a reasonable name (I already thought
about using AdvScrn.c ("advanced screen management"), and hence "AdvScrn"
prefix for all its functions -- "XineramaSupportXXX" is s long. :-)

As to general, standard X geometry specification turned to be
insufficient for Xinerama, so new XineramaSupport.c enables one to specify
[EMAIL PROTECTED], where optional S parameter is a screen.

The screen can be either a number or one of "g" (global -- emulates
XParseGeometry), "c" (current -- where pointer is), "p" -- primary (usually
1st screen, unless changed), this is the default.

Plus a concept of "primary screen", where main controls are located
(Pager, Wharf, TaskBar (sic!)).  (Since XFree86 4.1 XDM places its login
window to the 1st Xinerama screen too.)

And what is completely broken by Xinerama is TaskBar with its autohiding
logic (AutiStick, however, is fixable).  I've spent a lot of time trying to
make it work, but seems that it will be *much* easier to implement
Style AutoHide.  The latter is more correct, BTW, since some aspects are
absolutely impossible to do in a module instead of WM itself.

(It seems I write too much this evening, time to go to sleep ;-)

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: CVS domivogt: * First version of Xinerama support.

2001-07-22 Thread Mikhael Goikhman
On 22 Jul 2001 09:29:00 +0200, Dominik Vogt wrote:
> 
> On Sun, Jul 22, 2001 at 01:48:00AM +, Mikhael Goikhman wrote:
> > On 21 Jul 2001 14:29:27 -0500, FVWM CVS wrote:
> > > 
> > > Log message:
> > > * First version of Xinerama support.
> > 
> > I don't think that HAS_XINERAMA is ever defined (because XINERAMA_CPPFLAGS
> > is nowhere used) and thus parts of the xinerama code are ever compiled in,
> > although it is reported as such.
> 
> I don't know.  At least for my Xinerama setup it works: the
> Xinerama code is compiled in.  The code in configure.in sure looks
> different.  Shouldn't this HAS_XINERAMA macro end up in config.h?
> Perhaps this would be a good practice for me to learn writing
> configure code.

Do you say you ever got "Xinerama" in "fvwm -version"? I don't think so.

You almost fixed it on the second commit, but did a typo
s/XINERAMA/HAVE_XINERAMA/. Also building of libfvwm.a failed, because
-lXinerama was not passed to it.

Now it should work.

> > It is also buggy. Windows get Y coordinate -9, i.e. disappear, when
> > trying to move them...
> 
> I don't have this problem.  Was Xinerama support compiled in?
> Can you have a look what's happening?

Yes, Xinerama support is on after "configure; make install".
I have a single screen.

When a window is dragged (mouse moved) or a window is shaded, it gets
Y coordinate -9.

When printing xl and yt in moveLoop() before loop or even on MotionNotify
they seem ok, although I don't understand their exact meaning yet. But on
ButtonRelease yt becomes -9.

The window disappear when mouse is moved, not only when mouse is released.
In addition, the feedback window is not visible.

> > I don't have any real hardware xinerama setup, but X supports it.
> 
> I will add some code to simulate Xinerama on a single screen.

Ok, I may try it later, but for now I have problems without simulating
black holes on a single screen.

Regards,
Mikhael.
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Added xinerama to do list.

2001-07-22 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/22 11:26:47

Added files:
.  : todo-xinerama 

Log message:
* Added xinerama to do list.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS migo: * configure: finally make #ifdef'd xinerama code be ever compiled in;

2001-07-22 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: migo01/07/22 11:15:00

Modified files:
.  : ChangeLog configure.in 
libs   : Makefile.am 
utils  : ChangeLog fvwm-config.in 

Log message:
* configure: finally make #ifdef'd xinerama code be ever compiled in;
_ fixed linking of libfvwm.a by adding -lXinerama; small corrections
* fvwm-config: added shape support and resorting

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: Regarding Xinerama support

2001-07-22 Thread Dominik Vogt
On Sun, Jul 22, 2001 at 07:51:14PM +0700, Dmitry Yu. Bolkhovityanov wrote:
> Hi!
> 
> I've almost made a very improved version (as compared to February), but
> still have to spend a few days finishing it.  It is now based on 2.4 instead
> of 2.3.28.

Hey, you were doing this in secret? :-)  Didn't I say that I would
keep the patch up to date?  Actually, I did this and checked it in
now.  I made several enhacements regarding efficiency (don't poll
the mouse with only one screen), usability (enable/disable on the
fly, renamed commands to XineramaEnable/XineramaDisable),
configure (HAVE_XINERAMA is put into config.h), general code
structure (changed library user interface a bit), xinerama
emulation (for people with one monitor).

As you may have noticed I already started another thread to
discuss the details of the Xinerama implementation.  Before we
continue patching we should think about the right way 

> As I understood from conversation in the list, there were plans to do
> 2.4.1 as a bugfix-only release, so I didn't hurry (mea culpa...).

Gee, the plans were overridden by me committing the Xinerama
patch ;-)  I plan to add Xinerama support along with the first
bugfixing release.  I don't think it will take this much time.
It will suffice to support a minimal set of Xinerama features at
first and circumvent the problems I described in my other mail.
The fancy gimmicks can wait for a future release.

> Now I'm finishing adding basic RandR support, but there are two choices:
> 1) comment out RandR-handling and post diff immediately;

If you already have both patches in your code it is best to check
out a fresh fvwm from cvs and re-add your Xinerama changes there.
I think the last time you sent the Xinerama patch there was
another non-xinerama patch in the diff (Bindings.c, but I'm not
sure).

> 2) spend those few
> days and post somewhere near wednesday.  What will be preferred?

What is RandR?

Anyway, as soon as 2.4.1 with Xinerama is released, the stable
versions get their own branch and development on the main branch
will (hopefully) start with full force.  Until then it would help
most if we all concentrate on the Xinerama patch (and bug fixes)
before adding new features.

Bye

Dominik ^_^  ^_^

--
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: CVS domivogt: * First version of Xinerama support.

2001-07-22 Thread Dmitry Yu. Bolkhovityanov
On 22 Jul 01 at 1:48, [EMAIL PROTECTED] wrote:

> On 21 Jul 2001 14:29:27 -0500, FVWM CVS wrote:
> >
> > Log message:
> > * First version of Xinerama support.
>
> I don't think that HAS_XINERAMA is ever defined (because XINERAMA_CPPFLAGS
> is nowhere used) and thus parts of the xinerama code are ever compiled in,
> although it is reported as such.
>
> It is also buggy. Windows get Y coordinate -9, i.e. disappear, when
> trying to move them...

Seems very strange.  I haven't tested current CVS version, but such an
effect should never happen -- XineramaSupport falls back to "global" screen,
which is DisplayWidth()xDisplayHeight()+0+0, so I have no idea where -9
came from (there *theoretically* can be -32767 from
XiSuppGetResistanceRect(), but not -9).  Probably a result of not-yet-
complete checkin?

> I don't have any real hardware xinerama setup, but X supports it.

XineramaSupport is designed to be "always active" -- no matter if real
XINERAMA extension is present/enabled -- in the latter case it will look as
only one screen, having DisplayWidth*DisplayHeight size.
   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Regarding Xinerama support

2001-07-22 Thread Dmitry Yu. Bolkhovityanov
Hi!

I've almost made a very improved version (as compared to February), but
still have to spend a few days finishing it.  It is now based on 2.4 instead
of 2.3.28.

As I understood from conversation in the list, there were plans to do
2.4.1 as a bugfix-only release, so I didn't hurry (mea culpa...).

Now I'm finishing adding basic RandR support, but there are two choices:
1) comment out RandR-handling and post diff immediately; 2) spend those few
days and post somewhere near wednesday.  What will be preferred?

   ___
   Dmitry Yu. Bolkhovityanov  |  Novosibirsk, RUSSIA
   phone (383-2)-39-49-56 |  The Budker Institute of Nuclear Physics
  |  Lab. 5-13
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: CVS domivogt: * First version of Xinerama support.

2001-07-22 Thread Dominik Vogt
On Sun, Jul 22, 2001 at 01:48:00AM +, Mikhael Goikhman wrote:
> On 21 Jul 2001 14:29:27 -0500, FVWM CVS wrote:
> > 
> > Log message:
> > * First version of Xinerama support.
> 
> I don't think that HAS_XINERAMA is ever defined (because XINERAMA_CPPFLAGS
> is nowhere used) and thus parts of the xinerama code are ever compiled in,
> although it is reported as such.

I don't know.  At least for my Xinerama setup it works: the
Xinerama code is compiled in.  The code in configure.in sure looks
different.  Shouldn't this HAS_XINERAMA macro end up in config.h?
Perhaps this would be a good practice for me to learn writing
configure code.

> It is also buggy. Windows get Y coordinate -9, i.e. disappear, when
> trying to move them...

I don't have this problem.  Was Xinerama support compiled in?
Can you have a look what's happening?

> I don't have any real hardware xinerama setup, but X supports it.

I will add some code to simulate Xinerama on a single screen.

Bye

Dominik ^_^  ^_^

--
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Xinerama to-do

2001-07-22 Thread Dominik Vogt
Here is a list of features Xinerama support may or may not
support:

  1) Window placement
  2) Icon placement
  3) Menu placement
  4) Menu position hints
  5) Sizing menus for different screen sizes
  6) Position of the geometry window
  7) Maximizing windows
  8) Limit SnapAttraction to windows on same screen.
  9) Enable and Disable Xinerama on the fly (including modules)
 10) Xinerama support in Pager
 11) Xinerama support in WindowList
 12) XineramaSupport in various icon managers (IconMan, WinList)
 13) EdgeScrolling between Xinerama screens.
 14) Handle Xinerama screens in Move/Resize parameters.

Currently, 3, 6, 9 and 13 are implemented.  However some of the
Xinerama functions poll the pointer position which reduces
performance a lot, especially in the move and resize loops.

Consider this layout of a Xinerama screen consisting of two
physical screens:

  Xinerama screen
  +-+--+
  | |  |
  | |  |
  | |  |
  | |  |
  | |  screen 2|
  | screen 1|  |
  | |  |
  | |  |
  | |  |
  | |  |
  +-+  |
  |   blank area|  |
  | |  |
  +-+--+


At the moment, the most annoying problems are:

 - Fvwm happily places windows and icons in blank areas.
 - Menus are sized for the whole screen.  If a menu that is as
   tall as screen 2 is opened on screen 1, the bottom items are
   not accessible.
 - Maximizing windows always covers the whole screen, not only
   the sub screen with the window.

In another step it may be worthwhile to put all code dealing with
screen dimensions in a single library libs/Screen.c instead of
libs/XineramaSupport.c.  This libraray could handle all
arithmetics with screen dimensions and would be the only place
that knows about Xinerama at all.

Any comments and help with the implementation are welcome.  For
those who don't have a second monitor I added the configure
option --enable-xinerama-emulation.  The Xinerama code is enabled
on a single screen with the above layout, including the blank
area.  For testing, it is probably best to fill the blank area
with a single window so you can see when the pointer or a window
or menu reaches into the forbidden zone.  You do not need the
Xinerama extension in your X server for this to work.

Bye

Dominik ^_^  ^_^

--
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt fvwm-web: * Minimalistic description of Xinerama support.

2001-07-22 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm-web
Changes by: domivogt01/07/22 07:27:19

Modified files:
.  : ChangeLog mod_f2m_communication.html 

Log message:
* Minimalistic description of Xinerama support.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Added Xinerama emulation (configure with --enable-xinerama-emulation).

2001-07-22 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/22 07:26:25

Modified files:
.  : ChangeLog acconfig.h configure.in 
fvwm   : Makefile.am fvwm.c fvwm2.1 module_interface.c 
 module_interface.h virtual.c 
libs   : XineramaSupport.c 
modules: ChangeLog 
modules/FvwmEvent: FvwmEvent.c 
modules/FvwmForm: Makefile.am 
modules/FvwmScript: Instructions.c 
modules/FvwmWharf: FvwmWharf.c 

Log message:
* Added Xinerama emulation (configure with --enable-xinerama-emulation).
* Added configure checks for shape extension.
* Added #include  to several files.
* Communicate Xeinerama{En,Dis}able to modules.
* Sorted configure summary.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: CVS domivogt: * First version of Xinerama support.

2001-07-21 Thread Mikhael Goikhman
On 21 Jul 2001 14:29:27 -0500, FVWM CVS wrote:
> 
> Log message:
> * First version of Xinerama support.

I don't think that HAS_XINERAMA is ever defined (because XINERAMA_CPPFLAGS
is nowhere used) and thus parts of the xinerama code are ever compiled in,
although it is reported as such.

It is also buggy. Windows get Y coordinate -9, i.e. disappear, when
trying to move them...

I don't have any real hardware xinerama setup, but X supports it.

Regards,
Mikhael.
--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS migo: added xinerama support

2001-07-21 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: migo01/07/21 19:58:28

Modified files:
.  : configure.in 
utils  : ChangeLog fvwm-config.in 

Log message:
added xinerama support

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * First version of Xinerama support.

2001-07-21 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/21 14:29:27

Modified files:
.  : ChangeLog NEWS configure.in 
fvwm   : Makefile.am builtins.c functions.c functions.h 
 fvwm.c fvwm2.1 menus.c move_resize.c 
 move_resize.h screen.h virtual.c virtual.h 
libs   : Makefile.am defaults.h 
modules/FvwmForm: FvwmForm.c Makefile.am 
tests/menus: menus.read 

Log message:
* First version of Xinerama support.
* Reformatted man page suorce to improve readability.

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Set development version to 2.4.0.1 (for xinerama support in 2.4.1).

2001-07-01 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt01/07/01 10:57:22

Modified files:
.  : ChangeLog NEWS configure.in 

Log message:
* Set development version to 2.4.0.1 (for xinerama support in 2.4.1).

--
Visit the official FVWM web page at http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


<    1   2