bugfixes for dirtools and different font heights

  • From: Tommy Pettersson <ptp@xxxxxxxxxxxxxx>
  • To: wilyfans@xxxxxxxxxxxxx
  • Date: Wed, 22 Dec 2004 01:09:30 +0100

Here comes some small fixes for wily 0.13.41.9libs:


The common tools for dirtags get set to the file tag tools.
There's only a dot's difference in the defaults, but WDIRTAG
won't have any effect at all and WFILETAG will show up in
dir tags too.

(I just found it's been reported on the list several times
already, but here's a reminder... :-)

diff -rN -u diff-old/wily-9libs/wily/file.c diff-new/wily-9libs/wily/file.c
--- diff-old/wily-9libs/wily/file.c     Tue Dec 21 23:31:51 2004
+++ diff-new/wily-9libs/wily/file.c     Tue Dec 21 21:53:10 2004
@@ -202,7 +202,7 @@
        
        sprintf (buf, "%s %s | %s %s ", d->label, 
                d->names? "Get":"", 
-               filetools, specific);
+               common, specific);
        tag_set(d->tag, buf);
 }
 
 
A function argument name is wrong in this comment.

diff -rN -u diff-old/wily-9libs/wily/search.c diff-new/wily-9libs/wily/search.c
--- diff-old/wily-9libs/wily/search.c   Tue Dec 21 23:31:51 2004
+++ diff-new/wily-9libs/wily/search.c   Tue Dec 21 21:53:10 2004
@@ -62,8 +62,8 @@
 }
 
 /*
- * If we can find 's' in 't' (start looking at 'pos'), return true and
- * set 'pos' to the location of the start of the string.  Otherwise,
+ * If we can find 's' in 't' (start looking at 'r'), return true and
+ * set 'r' to the location of the start of the string.  Otherwise,
  * return false.
  */
 Bool


This is more complicated.  There are more than one way to
fix it, but I think this is the easiest.

In snapheight() a tile that has shrunk so it can't show
at least one line of text in its body snaps so it shows no
body at all.  In setrects() a body view is deemed to be not
visible if its height is less than tagheight, which happens
to be the same size as one text line with borders.

But if the font is changed (which doesn't change tagheight)
to one with smaller height, snapheight() can fit a text line
and won't snap the window, while setrects() thinks it's too
small and won't show it, so there's just a blank area.

If the font is changed to one with bigger height and the
window is small, a mouse click on the wrong spot will crash
wily, but I have not investigated this so I don't know for
sure what happens and exactly when.

There are more things to this that I don't fully understand
yet.  There are different ways in the code to decide if a tile
or view is big or small enough, and they don't always agree.
If assertions are turned on, they will fire in various places
with small windows and a smaller or bigger fonts than the
"tag" font.

The "dangerous" size is between 'tagheight' and
'fontheight+borders', so I just let snapheight() snap the
tile if it's smaller than any of them.

diff -rN -u diff-old/wily-9libs/wily/vgeom.c diff-new/wily-9libs/wily/vgeom.c
--- diff-old/wily-9libs/wily/vgeom.c    Tue Dec 21 23:31:51 2004
+++ diff-new/wily-9libs/wily/vgeom.c    Tue Dec 21 21:53:10 2004
@@ -70,7 +70,7 @@
        
        if (v->scroll) {
                lines = (h - brdr) / fh;
-               if (lines == 0)
+               if ((lines == 0) || (h < tagheight))
                        return 0;
                else
                        return h;


Here's a wrong name in a comment.

diff -rN -u diff-old/wily-9libs/wily/tile.c diff-new/wily-9libs/wily/tile.c
--- diff-old/wily-9libs/wily/tile.c     Tue Dec 21 23:31:51 2004
+++ diff-new/wily-9libs/wily/tile.c     Tue Dec 21 21:53:10 2004
@@ -227,7 +227,7 @@
                }
        }
        
-       /* move t->min up a bit? */
+       /* move t->max up a bit? */
        diff = t->max - (l->cmax - after);
        if (diff>0) {
                move= MIN(available, diff);

-- 
Tommy Pettersson <ptp@xxxxxxxxxxxxxx>

Other related posts:

  • » bugfixes for dirtools and different font heights