<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.window-managers.fvwm.devel">
    <title>gmane.comp.window-managers.fvwm.devel</title>
    <link>http://blog.gmane.org/gmane.comp.window-managers.fvwm.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5235"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5234"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5233"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5232"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5231"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5230"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5229"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5228"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5227"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5226"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5225"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5224"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5223"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5222"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5221"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5220"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5219"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5218"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5217"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5216"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5235">
    <title>CVS tadam: Fix compilation problems.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5235</link>
    <description>&lt;pre&gt;CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by:tadam12/05/04 08:18:09

Modified files:
.              : Tag: branch-2_6 ChangeLog 
libs           : Tag: branch-2_6 PictureImageLoader.c 

Log message:
Fix compilation problems.

Print to stderr instead.



&lt;/pre&gt;</description>
    <dc:creator>cvs&lt; at &gt;math.uh.edu</dc:creator>
    <dc:date>2012-05-04T13:18:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5234">
    <title>CVS tadam: Improve image loading messages.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5234</link>
    <description>&lt;pre&gt;CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by:tadam12/05/02 03:02:44

Modified files:
.              : Tag: branch-2_6 ChangeLog 
fvwm           : Tag: branch-2_6 menus.c 
libs           : Tag: branch-2_6 PictureImageLoader.c 

Log message:
Improve image loading messages.

Give hints to the user why an image couldn't be loaded.



&lt;/pre&gt;</description>
    <dc:creator>cvs&lt; at &gt;math.uh.edu</dc:creator>
    <dc:date>2012-05-02T08:02:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5233">
    <title>CVS tadam fvwm-web: Updated for 2.6.5</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5233</link>
    <description>&lt;pre&gt;CVSROOT:/home/cvs/fvwm
Module name:fvwm-web
Changes by:tadam12/04/20 06:21:52

Modified files:
.              : ChangeLog definitions.inc 
documentation/manpages/stable: FvwmAnimate.php FvwmAuto.php 
                               FvwmBacker.php FvwmBanner.php 
                               FvwmButtons.php FvwmCommand.php 
                               FvwmConsole.php 
                               FvwmConsoleC.pl.php FvwmCpp.php 
                               FvwmDebug.php FvwmDragWell.php 
                               FvwmEvent.php FvwmForm.php 
                               FvwmGtk.php FvwmGtkDebug.php 
                               FvwmIconBox.php FvwmIconMan.php 
                               FvwmIdent.php FvwmM4.php 
                               FvwmPager.php FvwmPerl.php 
                               FvwmProxy.php FvwmRearrange.php 
                               FvwmSave.php FvwmSaveDesk.php 
                               FvwmScript.php FvwmScroll.php 
                               FvwmTabs.php FvwmTaskBar.php 
                               FvwmTheme.php FvwmWharf.php 
                               FvwmWinList.php 
                               FvwmWindowMenu.php focus-link.php 
                               fvwm-bug.php fvwm-config.php 
                               fvwm-convert-2.2.php 
                               fvwm-convert-2.4.php 
                               fvwm-convert-2.6.php 
                               fvwm-menu-desktop.php 
                               fvwm-menu-directory.php 
                               fvwm-menu-headlines.php 
                               fvwm-menu-xlock.php 
                               fvwm-perllib.php fvwm-root.php 
                               fvwm.php index.php 
news           : index.php 

Log message:
Updated for 2.6.5



&lt;/pre&gt;</description>
    <dc:creator>cvs&lt; at &gt;math.uh.edu</dc:creator>
    <dc:date>2012-04-20T11:21:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5232">
    <title>FVWM 2.6.5 released -- tarballs in pub/incoming on FTP site.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5232</link>
    <description>&lt;pre&gt;Jason,

I've released FVWM 2.6.5 -- tarballs in the usual place.

Kindly,

&lt;/pre&gt;</description>
    <dc:creator>Thomas Adam</dc:creator>
    <dc:date>2012-04-20T11:14:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5231">
    <title>CVS tadam: 2.6.6 (CVS HEAD) changes.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5231</link>
    <description>&lt;pre&gt;CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by:tadam12/04/20 06:14:00

Modified files:
.              : Tag: branch-2_6 NEWS ChangeLog configure.ac 

Log message:
2.6.6 (CVS HEAD) changes.



&lt;/pre&gt;</description>
    <dc:creator>cvs&lt; at &gt;math.uh.edu</dc:creator>
    <dc:date>2012-04-20T11:14:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5230">
    <title>CVS tadam: Update key files in prep for 2.6.5 release.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5230</link>
    <description>&lt;pre&gt;CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by:tadam12/04/20 06:03:33

Modified files:
.              : Tag: branch-2_6 ChangeLog NEWS configure.ac 
docs           : Tag: branch-2_6 ANNOUNCE 

Log message:
Update key files in prep for 2.6.5 release.



&lt;/pre&gt;</description>
    <dc:creator>cvs&lt; at &gt;math.uh.edu</dc:creator>
    <dc:date>2012-04-20T11:03:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5229">
    <title>Re: FVWM Patch for Interaction problem with Java 7</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5229</link>
    <description>&lt;pre&gt;
I don't like the name, and thinking about it some more, I don't think a
bugopt is the right thing to do here either -- FPLenient should be implied
for this to work, so really I think:


diff --git a/fvwm/frame.c b/fvwm/frame.c
index 55922ce..e4aafab 100644
--- a/fvwm/frame.c
+++ b/fvwm/frame.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1938,7 +1938,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void frame_free_move_resize_args(
        }
        update_absolute_geometry(fw);
        frame_reparent_hide_windows(Scr.NoFocusWin);
-       if (mra-&amp;gt;w_with_focus != None)
+       if (mra-&amp;gt;w_with_focus != None &amp;amp;&amp;amp; FP_IS_LENIENT(FW_FOCUS_POLICY(fw)))
        {
                /* domivogt (28-Dec-1999): For some reason the XMoveResize() on
                 * the frame window removes the input focus from the client

What do you think?

&lt;/pre&gt;</description>
    <dc:creator>Thomas Adam</dc:creator>
    <dc:date>2012-04-16T21:15:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5228">
    <title>Re: FVWM Patch for Interaction problem with Java 7</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5228</link>
    <description>&lt;pre&gt;consider a BugOpts though.
The patch has been updated to be a BugOpts.  See attached.

confirm that's still the case?
I assume that Tk refers to the widget set.  I wouldn't even know where
to start looking into that.  If you can give me a pointer I can explore
the topic a bit, but without some background it's hard to understand how
it relates.


&lt;/pre&gt;</description>
    <dc:creator>Schaaf, Jonathan P (GE Healthcare</dc:creator>
    <dc:date>2012-04-16T19:37:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5227">
    <title>Re: [PATCH] Fix segfault and memory issues in infostore.c</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5227</link>
    <description>&lt;pre&gt;

Uh oh; what else was wrong? The new infostore.c in CVS matches what I sent.


Nope, i386, but it is running on 64-bit-capable hardware.


Whatever configure chooses by default; I just double-checked: -g -O2.

Since this must have worked in at least some cases in order for this
to slip through, my guess was some change in memset in more recent
glibc releases.


Thanks for keeping fvwm alive and well!


&lt;/pre&gt;</description>
    <dc:creator>epg&lt; at &gt;pretzelnet.org</dc:creator>
    <dc:date>2012-04-15T00:19:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5226">
    <title>CVS tadam: Wrap window titles in FvwmPager</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5226</link>
    <description>&lt;pre&gt;CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by:tadam12/04/14 04:46:38

Modified files:
.              : Tag: branch-2_6 NEWS 
modules        : Tag: branch-2_6 ChangeLog 
modules/FvwmPager: Tag: branch-2_6 x_pager.c 

Log message:
Wrap window titles in FvwmPager

Patch largely by Anton Khirno.  Tweaked by tadam&amp;lt; at &amp;gt;



&lt;/pre&gt;</description>
    <dc:creator>cvs&lt; at &gt;math.uh.edu</dc:creator>
    <dc:date>2012-04-14T09:46:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5225">
    <title>CVS tadam: Fix memory leak with InfoStore</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5225</link>
    <description>&lt;pre&gt;CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by:tadam12/04/14 04:40:45

Modified files:
modules        : Tag: branch-2_6 ChangeLog 

Log message:
Fix memory leak with InfoStore



&lt;/pre&gt;</description>
    <dc:creator>cvs&lt; at &gt;math.uh.edu</dc:creator>
    <dc:date>2012-04-14T09:40:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5224">
    <title>CVS tadam: Fix memory leak with InfoStore</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5224</link>
    <description>&lt;pre&gt;CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by:tadam12/04/14 04:34:33

Modified files:
fvwm           : Tag: branch-2_6 infostore.c 

Log message:
Fix memory leak with InfoStore



&lt;/pre&gt;</description>
    <dc:creator>cvs&lt; at &gt;math.uh.edu</dc:creator>
    <dc:date>2012-04-14T09:34:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5223">
    <title>Re: [PATCH] Fix segfault and memory issues in infostore.c</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5223</link>
    <description>&lt;pre&gt;
Actually, that's because I fat-fingered the typing.  :)

I've applied this, and rejigged the others a little -- it was still
segfaulting more after your changes.   Is this on 64-bit, with any
optimisation flags turned on, say above -O2?

Thanks though.

&lt;/pre&gt;</description>
    <dc:creator>Thomas Adam</dc:creator>
    <dc:date>2012-04-14T09:10:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5222">
    <title>[PATCH] Fix segfault and memory issues in infostore.c</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5222</link>
    <description>&lt;pre&gt;Hi, fvwm-workers; long time no see! GNOME 3 / Unity have ended my
4-year fling and sent me crawling back; I always come back to fvwm, in
the end :)

I found a segfault when polishing up and modernizing my config, and
then found a few much more minor memory issues.

The first patch should be non-controversial; the only reason it works
at all in some cases is that the mi_store is NULL after the memset
(and also writing zeros over some other random memory), and
mi_new-&amp;gt;next becomes NULL on the first item being stored.

Author: epg &amp;lt;epg&amp;lt; at &amp;gt;pretzelnet.org&amp;gt;
Date:   Fri Apr 13 22:06:51 2012 -0700

    Fix segfault in new_metainfo:

    Need to memset the newly allocated block of memory at the address held in
    mi_store, not the stack memory holding that address.

The second fixes various memory leaks I found; the latest one is only
an issue after the above fix (as mi_store is now pointing to a dead
object during initialization rather than a NULL pointer).

commit a297778dede814070ddbba7da8ab7d992fddcc9e
Author: epg &amp;lt;epg&amp;lt; at &amp;gt;pretzelnet.org&amp;gt;
Date:   Fri Apr 13 22:28:11 2012 -0700

    Don't keep a dead MetaInfo entry at the end of the list.

    When called with the mi_store global set to NULL, new_metainfo would set
    mi_store to a new, empty (key == value == NULL) MetaInfo object in
addition to
    the new MetaInfo object it returns to insert_metainfo.
insert_metainfo would
    then set the new key/value in the latter object, setting its next pointer to
    the extra, "dead" object new_metainfo had created.

commit 3ae32d3ada22ce659197db6336f885159817f6f1
Author: epg &amp;lt;epg&amp;lt; at &amp;gt;pretzelnet.org&amp;gt;
Date:   Fri Apr 13 22:18:24 2012 -0700

    Fix memory leak in CMD_InfoStoreAdd:

    insert_metainfo now always stores a newly allocated copy of value, so free
    the copy here, rather than leaking it when replacing an existing setting.

commit 0456c4473ffda2422d0b04ccce855fc56d5e987f
Author: epg &amp;lt;epg&amp;lt; at &amp;gt;pretzelnet.org&amp;gt;
Date:   Fri Apr 13 22:17:23 2012 -0700

    Always use CopyString on value in insert_metainfo.

    CopyString eats leading and trailing whitespace and throws away everything
    after a newline; InfoStoreAdd of the same key/value twice in a row should
    not store something different the second time.

    This also allows another memory clean-up, by always allocating a new copy of
    the value, rather than only when replacing.

commit c43a45cf63cc5bef8ec20fab62192ba2110bc5c6
Author: epg &amp;lt;epg&amp;lt; at &amp;gt;pretzelnet.org&amp;gt;
Date:   Fri Apr 13 22:10:49 2012 -0700

    Fix memory leak in insert_metainfo when replacing old value:

    CopyString always allocates a new buffer, so free the old value first.
&lt;/pre&gt;</description>
    <dc:creator>epg&lt; at &gt;pretzelnet.org</dc:creator>
    <dc:date>2012-04-14T07:32:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5221">
    <title>Re: [PATCH 2/2] FvwmPager: add an option for wrapping too long window titles.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5221</link>
    <description>&lt;pre&gt;
No, that's OK.  I am not interested at all in more options for something so
trivial to be honest.

I'll apply this later on, with some changes.

&lt;/pre&gt;</description>
    <dc:creator>Thomas Adam</dc:creator>
    <dc:date>2012-04-12T10:31:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5220">
    <title>Re: FVWM Patch for Interaction problem with Java 7</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5220</link>
    <description>&lt;pre&gt;
Well, I don't like just mass-commenting out code.  I suspect the original
comment was more for Tk's benefit -- can you confirm that's still the case?
It's not enough to just comment this out for Java's case.  I might consider
a BugOpts though.

&lt;/pre&gt;</description>
    <dc:creator>Thomas Adam</dc:creator>
    <dc:date>2012-04-12T08:56:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5219">
    <title>FVWM Patch for Interaction problem with Java 7</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5219</link>
    <description>&lt;pre&gt;Greetings,

I've spent the past few days hunting down a bug that involves an
interaction between FVWM and Java 7.

I can provide more detail for anyone who is curious, but here are the
key points:

a)    Java version 7 creates a special "FocusProxy" window to get
keyboard input.  See
 
http://www.docjar.com/html/api/sun/awt/X11/XFocusProxyWindow.java.html 

b)    frame.c contains a work around and a comment that begins with  the
fated phrase "For some reason".  
      It seems like there was a bug in a ~1999 X server that doesn't
exist in 2012 era Xorg.

c)    The code in frame.c takes focus away from java's "Focus Proxy"
window and gives it to a java window 
      that doesn't know what to do with keyboard input.

I'm including a proposed patch (very simple - comment out the hack from
1999) as well as java code that can be used to reproduce the issue.

Let me know if you have any thoughts.

Thanks and best regards,

Jonathan


=====================================================

diff -urNp fvwm-2.6.4/fvwm/frame.c fvwm-2.6.4-javafix/fvwm/frame.c
--- fvwm-2.6.4/fvwm/frame.c2011-10-15 05:34:28.000000000 -0500
+++ fvwm-2.6.4-javafix/fvwm/frame.c2012-04-11 16:54:25.090804806
-0500
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1938,14 +1938,25 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void frame_free_move_resize_args(
 }
 update_absolute_geometry(fw);
 frame_reparent_hide_windows(Scr.NoFocusWin);
-if (mra-&amp;gt;w_with_focus != None)
-{
-/* domivogt (28-Dec-1999): For some reason the
XMoveResize() on
- * the frame window removes the input focus from the
client
- * window.  I have no idea why, but if we explicitly
restore
- * the focus here everything works fine. */
-FOCUS_SET(mra-&amp;gt;w_with_focus);
-}
+
+/* JPS:  11-Apr-2012:  The code which is now commented out was
introduced 
+ * in 1999  with the following comment:
+  *
+  *   For some reason the XMoveResize() on the frame window
removes 
+  *   the input focus from the client window.  I have no idea
why, 
+  *   but if we explicitly restore the focus here everything
works 
+  *   fine.
+ *
+ *if (mra-&amp;gt;w_with_focus != None)
+ *{
+ *FOCUS_SET(mra-&amp;gt;w_with_focus);
+ *}
+  *
+ * Unfortunately, the code doesn't work fine with Java 7's
"FocusProxy"
+  * and has been commented out since it doesn't seem to be
necessary 
+  * when using modern Xorg.
+ */
+
 if (mra-&amp;gt;flags.do_update_shape)
 {
 /* unset shape */

=====================================================

/* simpleproblem.java
 * 
 * Install java 7 (either oracle or openjdk)
 * Run FVWM
 * compile with:  javac simpleproblem.java
 * run with:  java -cp . simpleproblem
 *
 * You will see that after resizing the window
 * text entry into the java app is impossible.
 */

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.FlowLayout;

public class simpleproblem extends JFrame
{
   
   private JLabel explanation;
   private JTextField entrybox;
   private FlowLayout thelayout;

   public simpleproblem() 
   {
      explanation = new JLabel("Resize the window then enter text:");
      entrybox = new JTextField(15);
      thelayout = new FlowLayout();
      setLayout(thelayout);
      add(explanation);
      add(entrybox);
   }

   public static void main( String args[] ) {
      simpleproblem entertext = new simpleproblem();
      entertext.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      entertext.setSize( 400,200 );
      entertext.setVisible( true );
   }
}















&lt;/pre&gt;</description>
    <dc:creator>Schaaf, Jonathan P (GE Healthcare</dc:creator>
    <dc:date>2012-04-11T22:23:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5218">
    <title>Re: [PATCH 2/2] FvwmPager: add an option for wrapping too long window titles.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5218</link>
    <description>&lt;pre&gt;
On Sun, 8 Apr 2012 22:02:35 +0100, Thomas Adam &amp;lt;thomas&amp;lt; at &amp;gt;fvwm.org&amp;gt; wrote:

All those fixed.


You mean disregard word boundaries and just fill each line completely?
I'd rather not do that, word wrapping looks better to me (at least in my
setup, compare [1] and [2]). I can of course make it configurable if you
want, it's just a matter of adding one condition to the inner while().

[1] http://i.imgur.com/EfZ9d.jpg
[2] http://i.imgur.com/u6GuS.jpg

&lt;/pre&gt;</description>
    <dc:creator>Anton Khirnov</dc:creator>
    <dc:date>2012-04-09T06:09:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5217">
    <title>Re: [PATCH 2/2] FvwmPager: add an option for wrapping too long window titles.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5217</link>
    <description>&lt;pre&gt;
I really don't think having an option for this is necessary.  It should just
be the default.  Please re-roll this patch assuming that, since I don't have
the time to mangle it myself.  But see comments below to include other
things.


Can you not do this, and instead make declaration and assignment different
things?  Whilst this is still valid for block-wise code for C89, it doesn't
match the albeit loose coding style we're meant to have, and whilst I'm
entirely guilty of it myself, there's already surrounding code which does
the "preferred" thing, so I'd rather see:

char *cur, *next, *end;
...
cur = t-&amp;gt;whatever;



4 as a magic number?  Use a #define somewhere, please.


So if I'm reading the above correctly, you first scan the string looking for
spaces and use that as the tokenising for making the text flow, otherwise if
that fails, you then check if it's too large a string without a space and
wrap it as best you can?  I think it would be better to just reflow the
entire string, and not worry about the spaces, so that if you had this as a
window title:

"This is my window"

And a width in FvwmPager of 10, then I would rather see it wrapped as:

"This is my
window"

&lt;/pre&gt;</description>
    <dc:creator>Thomas Adam</dc:creator>
    <dc:date>2012-04-08T21:02:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5216">
    <title>Re: [PATCH 1/2] Flocale: fix counting UTF-8 bytes.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5216</link>
    <description>&lt;pre&gt;
This looks OK to me.  Will apply.

&lt;/pre&gt;</description>
    <dc:creator>Thomas Adam</dc:creator>
    <dc:date>2012-04-08T20:50:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5215">
    <title>[PATCH 2/2] FvwmPager: add an option for wrapping too long window titles.</title>
    <link>http://permalink.gmane.org/gmane.comp.window-managers.fvwm.devel/5215</link>
    <description>&lt;pre&gt;---
 NEWS                             |    3 ++
 modules/FvwmPager/FvwmPager.1.in |    4 ++
 modules/FvwmPager/FvwmPager.c    |    5 +++
 modules/FvwmPager/x_pager.c      |   62 ++++++++++++++++++++++++++++++++++++-
 4 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index 44248bd..c69d694 100644
--- a/NEWS
+++ b/NEWS
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -6,6 +6,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; Changes in CVS HEAD (not yet released)
 
 * New features:
 
+  - FvwmPager now accepts a "WrapLabels" option for wrapping window
+    labels.
+
 * Bug fixes:
   - Made signals registered with FVWM unblocking.
   - The "UnderMouse" option to PositionPlacement now honors the EWMH
diff --git a/modules/FvwmPager/FvwmPager.1.in b/modules/FvwmPager/FvwmPager.1.in
index 8da0d0c..1c3b9cc 100644
--- a/modules/FvwmPager/FvwmPager.1.in
+++ b/modules/FvwmPager/FvwmPager.1.in
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -206,6 +206,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; desk. This turns off label hilighting.
 Causes the pager to show the labels of all visible desks. Useful
 for canceling the effect of the \fIShapeLabels\fP option.
 
+.IP "*FvwmPager: WrapLabels"
+Causes the pager to wrap window labels when they do not fit into
+the window width.
+
 .IP "*FvwmPager: Font \fIfont-name\fP"
 Specified a font to use to label the desktops.  If \fIfont_name\fP
 is "none" then no desktop labels will be displayed.
diff --git a/modules/FvwmPager/FvwmPager.c b/modules/FvwmPager/FvwmPager.c
index f03ab0d..21edbcb 100644
--- a/modules/FvwmPager/FvwmPager.c
+++ b/modules/FvwmPager/FvwmPager.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -133,6 +133,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int StartIconic = 0;
 int MiniIcons = 0;
 int LabelsBelow = 0;
 int ShapeLabels = 0;
+int WrapLabels  = 0;
 int Rows = -1, Columns = -1;
 int desk1=0, desk2 =0;
 int ndesks = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2012,6 +2013,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void ParseOptions(void)
     {
       ShapeLabels = 0;
     }
+    else if (StrEquals(resource, "WrapLabels"))
+    {
+      WrapLabels = 1;
+    }
     else if (StrEquals(resource, "Rows"))
     {
       sscanf(arg1,"%d",&amp;amp;Rows);
diff --git a/modules/FvwmPager/x_pager.c b/modules/FvwmPager/x_pager.c
index 68a6943..2b2d359 100644
--- a/modules/FvwmPager/x_pager.c
+++ b/modules/FvwmPager/x_pager.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -62,6 +62,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern int StartIconic;
 extern int MiniIcons;
 extern int LabelsBelow;
 extern int ShapeLabels;
+extern int WrapLabels;
 extern int ShowBalloons, ShowPagerBalloons, ShowIconBalloons;
 extern char *BalloonFormatString;
 extern char *WindowLabelFormat;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2739,6 +2740,58 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void BorderIconWindow(PagerWindow *t)
     t, t-&amp;gt;IconView, t-&amp;gt;icon_view_width, t-&amp;gt;icon_view_height);
 }
 
+/* draw the window label with simple greedy wrapping */
+static void label_window_wrap(PagerWindow *t)
+{
+  char *cur = t-&amp;gt;window_label, *next = cur;
+  char *end = cur + strlen(cur);
+  int space_width = FlocaleTextWidth(FwindowFont, " ", 1);
+  int cur_width = 0;
+
+  while (*cur) {
+    while (*next) {
+      int width;
+      char *p = strchr(next, ' ');
+
+      if (!p)
+        p = end;
+
+      width = FlocaleTextWidth(FwindowFont, next, p - next );
+      if (width &amp;gt; t-&amp;gt;pager_view_width - cur_width - space_width - 4)
+        break;
+      cur_width += width + space_width;
+      next = *p ? p + 1 : p;
+    }
+
+    if (cur == next) {
+      /* word too large for window */
+      while (*next) {
+        int len   = FlocaleStringNumberOfBytes(FwindowFont, next);
+        int width = FlocaleTextWidth(FwindowFont, next, len);
+
+        if (width &amp;gt; t-&amp;gt;pager_view_width - cur_width - 4 &amp;amp;&amp;amp; cur != next)
+          break;
+
+        next      += len;
+        cur_width += width;
+      }
+    }
+
+    FwinString-&amp;gt;str = safemalloc(next - cur + 1);
+    strncpy(FwinString-&amp;gt;str, cur, next - cur);
+    FwinString-&amp;gt;str[next - cur] = 0;
+
+    FlocaleDrawString(dpy, FwindowFont, FwinString, 0);
+
+    free(FwinString-&amp;gt;str);
+    FwinString-&amp;gt;str = NULL;
+
+    FwinString-&amp;gt;y += FwindowFont-&amp;gt;height;
+    cur = next;
+    cur_width = 0;
+  }
+}
+
 static void do_label_window(PagerWindow *t, Window w)
 {
   int cs;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2776,7 +2829,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void do_label_window(PagerWindow *t, Window w)
   {
     if (FftSupport &amp;amp;&amp;amp; FwindowFont != NULL &amp;amp;&amp;amp; FwindowFont-&amp;gt;fftf.fftfont != NULL)
       XClearWindow(dpy, w);
-    FwinString-&amp;gt;str = t-&amp;gt;window_label;
     FwinString-&amp;gt;win = w;
     FwinString-&amp;gt;gc = Scr.NormalGC;
     FwinString-&amp;gt;flags.has_colorset = False;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2787,7 +2839,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void do_label_window(PagerWindow *t, Window w)
     }
     FwinString-&amp;gt;x = 2;
     FwinString-&amp;gt;y = FwindowFont-&amp;gt;ascent+2;
-    FlocaleDrawString(dpy, FwindowFont, FwinString, 0);
+
+    if (WrapLabels)
+      label_window_wrap(t);
+    else {
+      FwinString-&amp;gt;str = t-&amp;gt;window_label;
+      FlocaleDrawString(dpy, FwindowFont, FwinString, 0);
+    }
   }
 }
 
&lt;/pre&gt;</description>
    <dc:creator>Anton Khirnov</dc:creator>
    <dc:date>2012-04-04T15:18:01</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.window-managers.fvwm.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.window-managers.fvwm.devel</link>
  </textinput>
</rdf:RDF>

