On Fri, Aug 31, 2007 at 12:36:36PM +0200, Dominik Vogt wrote:
> On Fri, Aug 31, 2007 at 11:26:03AM +0100, Thomas Adam wrote:
> > On 31/08/2007, Dominik Vogt <[EMAIL PROTECTED]> wrote:
> > > On Thu, Aug 30, 2007 at 09:32:15PM +0100, Thomas Adam wrote:
> > > 2) There is no NEWS entry for the new featur.
> >
> > I'll add one if it's something you think you'll add.
>
> I certainly will commit the patch. Never liked that FvwmEvent
> stuff myself.
Hopefully I've implemented your suggestions properly. The only thing I did
struggle with was the damn .xml file.
See attached file.
-- Thomas Adam
--
"He wants you back, he screams into the night air, like a fireman going
through a window that has no fire." -- Mike Myers, "This Poem Sucks".
Index: AUTHORS
===================================================================
RCS file: /home/cvs/fvwm/fvwm/AUTHORS,v
retrieving revision 1.126
diff -u -r1.126 AUTHORS
--- AUTHORS 15 Jul 2007 12:39:39 -0000 1.126
+++ AUTHORS 31 Aug 2007 22:28:18 -0000
@@ -12,6 +12,7 @@
Thomas Adam:
Window style !StickyStippledTitle (and hence StickyStippledTitle).
Icon style StippledIconTitle and !StickyStippledIconTitle.
+StartShaded style option.
Serge (gentoosiast) Koksharov:
Documentation fixes, bug fixes.
Index: ChangeLog
===================================================================
RCS file: /home/cvs/fvwm/fvwm/ChangeLog,v
retrieving revision 1.2999
diff -u -r1.2999 ChangeLog
--- ChangeLog 30 Aug 2007 06:09:34 -0000 1.2999
+++ ChangeLog 31 Aug 2007 22:28:28 -0000
@@ -1,3 +1,8 @@
+2007-08-30 Thomas Adam <[EMAIL PROTECTED]>
+ * fvwm/style.c:
+ * fvwm/add_window.c:
+ Added new style option: StartShaded.
+
2007-08-30 Viktor Griph <griph(at)student(dot)chalmers(dot)se>
* configure.ac:
Index: NEWS
===================================================================
RCS file: /home/cvs/fvwm/fvwm/NEWS,v
retrieving revision 1.720
diff -u -r1.720 NEWS
--- NEWS 29 Aug 2007 12:35:01 -0000 1.720
+++ NEWS 31 Aug 2007 22:28:29 -0000
@@ -6,6 +6,8 @@
Changes in beta release 2.5.23 (unreleased)
* New features:
+ - New Style command option:
+ StartShaded
* Bug Fixes:
Index: doc/commands/Style.xml
===================================================================
RCS file: /home/cvs/fvwm/fvwm/doc/commands/Style.xml,v
retrieving revision 1.4
diff -u -r1.4 Style.xml
--- doc/commands/Style.xml 16 Jun 2007 12:38:46 -0000 1.4
+++ doc/commands/Style.xml 31 Aug 2007 22:28:31 -0000
@@ -87,6 +87,7 @@
<emphasis remap='I'>IconFont</emphasis>,
<emphasis remap='I'>StartsOnDesk</emphasis> / <emphasis
remap='I'>StartsOnPage</emphasis> / <emphasis
remap='I'>StartsAnyWhere</emphasis>,
<emphasis remap='I'>StartsOnScreen</emphasis>,
+<emphasis remap='I'>StartShaded</emphasis> / <emphasis
remap='I'>!StartShaded</emphasis>,
<emphasis remap='I'>ManualPlacementHonorsStartsOnPage</emphasis> / <emphasis
remap='I'>ManualPlacementIgnoresStartsOnPage</emphasis>,
<emphasis remap='I'>CaptureHonorsStartsOnPage</emphasis> / <emphasis
remap='I'>CaptureIgnoresStartsOnPage</emphasis>,
<emphasis remap='I'>RecaptureHonorsStartsOnPage</emphasis> / <emphasis
remap='I'>RecaptureIgnoresStartsOnPage</emphasis>,
@@ -1720,6 +1721,19 @@
layer rather than the default
<fvwmopt cmd="Style" opt="StartsRaised"/>.</para>
+<para><fvwmopt cmd="Style" opt="StartShaded"/>
+tells fvwm to shade the window. An optional direction argument may be
+given, which can be one of
+"<fvwmopt cmd="WindowShade" opt="North"/>",
+"<fvwmopt cmd="WindowShade" opt="South"/>",
+"<fvwmopt cmd="WindowShade" opt="West"/>",
+"<fvwmopt cmd="WindowShade" opt="East"/>",
+"<fvwmopt cmd="WindowShade" opt="NorthWest"/>",
+"<fvwmopt cmd="WindowShade" opt="NorthEast"/>",
+"<fvwmopt cmd="WindowShade" opt="SouthWest"/>",
+"<fvwmopt cmd="WindowShade" opt="SouthEast"/>" or
+if no direction is given, the default is to shade to north.</para>
+
<para><emphasis remap='I'>SkipMapping</emphasis>
tells fvwm not to switch to the desk the window is on when it gets
mapped initially (useful with
@@ -2173,5 +2187,4 @@
</section>
-
</section>
Index: fvwm/add_window.c
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/add_window.c,v
retrieving revision 1.392
diff -u -r1.392 add_window.c
--- fvwm/add_window.c 7 Aug 2007 20:17:43 -0000 1.392
+++ fvwm/add_window.c 31 Aug 2007 22:28:34 -0000
@@ -2479,7 +2479,7 @@
GNOME_SetWinArea(fw);
/****** windowshade ******/
- if (state_args.do_shade)
+ if (state_args.do_shade || SDO_START_SHADED(sflags))
{
rectangle big_g;
rectangle new_g;
@@ -2489,6 +2489,14 @@
{
state_args.shade_dir = GET_TITLE_DIR(fw);
}
+
+ /* If we've set a style for StartShaded, ensure we override
+ * the state for it here. -- TA.
+ */
+ if (SGET_STARTS_SHADED_DIR(style) != DIR_NONE)
+ {
+ state_args.shade_dir = SGET_STARTS_SHADED_DIR(style);
+ }
big_g = (IS_MAXIMIZED(fw)) ? fw->g.max : fw->g.frame;
new_g = big_g;
get_shaded_geometry_with_dir(
Index: fvwm/fvwm.h
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/fvwm.h,v
retrieving revision 1.256
diff -u -r1.256 fvwm.h
--- fvwm/fvwm.h 3 Jun 2007 09:28:34 -0000 1.256
+++ fvwm/fvwm.h 31 Aug 2007 22:28:34 -0000
@@ -531,6 +531,8 @@
unsigned do_save_under : 1;
unsigned do_start_iconic : 1;
unsigned do_start_lowered : 1;
+ unsigned do_start_shaded : 1;
+ unsigned start_shaded_dir : 3;
unsigned has_border_width : 1;
unsigned has_color_back : 1;
unsigned has_color_fore : 1;
Index: fvwm/style.c
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/style.c,v
retrieving revision 1.256
diff -u -r1.256 style.c
--- fvwm/style.c 3 Jun 2007 09:28:34 -0000 1.256
+++ fvwm/style.c 31 Aug 2007 22:28:37 -0000
@@ -585,6 +585,11 @@
{
SSET_LAYER(*merged_style, SGET_LAYER(*add_style));
}
+ if (add_style->flags.do_start_shaded)
+ {
+ SSET_STARTS_SHADED_DIR(*merged_style,
+ SGET_STARTS_SHADED_DIR(*add_style));
+ }
if (add_style->flags.use_colorset)
{
SSET_COLORSET(*merged_style, SGET_COLORSET(*add_style));
@@ -3784,6 +3789,35 @@
ps->flag_mask.do_start_lowered = 1;
ps->change_mask.do_start_lowered = 1;
}
+ else if (StrEquals(token, "StartShaded"))
+ {
+ token = PeekToken(rest, &rest);
+
+ if (token)
+ {
+ direction_t direction;
+
+ direction = gravity_parse_dir_argument(token,
+ &token, DIR_NONE );
+
+ if (direction >= 0 && direction <=
+ DIR_MINOR_MASK)
+ {
+ SSET_STARTS_SHADED_DIR(*ps, direction);
+ } else {
+ fvwm_msg(ERR,
+ "style_parse_one_style_option",
+ "Option: %s is not valid with"
+ " StartShaded", token);
+ }
+ } else {
+ SSET_STARTS_SHADED_DIR(*ps, DIR_NONE);
+ }
+
+ ps->flags.do_start_shaded = on;
+ ps->flag_mask.do_start_shaded = 1;
+ ps->change_mask.do_start_shaded = 1;
+ }
else if (StrEquals(token, "SaveUnder"))
{
ps->flags.do_save_under = on;
Index: fvwm/style.h
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/style.h,v
retrieving revision 1.87
diff -u -r1.87 style.h
--- fvwm/style.h 3 Jun 2007 09:28:34 -0000 1.87
+++ fvwm/style.h 31 Aug 2007 22:28:38 -0000
@@ -11,6 +11,8 @@
((sf)->do_save_under)
#define SDO_START_LOWERED(sf) \
((sf)->do_start_lowered)
+#define SDO_START_SHADED(sf) \
+ ((sf)->do_start_shaded)
#define SHAS_BORDER_WIDTH(sf) \
((sf)->has_border_width)
#define SHAS_COLOR_BACK(sf) \
@@ -509,6 +511,10 @@
((s).start_screen)
#define SSET_START_SCREEN(s,x) \
((s).start_screen = (x))
+#define SSET_STARTS_SHADED_DIR(s,x) \
+ ((s).flags.start_shaded_dir = (x))
+#define SGET_STARTS_SHADED_DIR(s) \
+ ((s).flags.start_shaded_dir)
#define SGET_MIN_ICON_WIDTH(s) \
((s).min_icon_width)
#define SSET_MIN_ICON_WIDTH(s,x) \