Mikhael Goikhman wrote:

I don't think this patch improves anything, borders look differently bad.
See 2 screenshots (a bit ugly), before and after applying your patch:

  
http://fvwm-themes.sourceforge.net/tmp/FvwmConsole-BorderStyle-TiledPixmap-orig.png

  
http://fvwm-themes.sourceforge.net/tmp/FvwmConsole-BorderStyle-TiledPixmap-patch.png

OK, please see the correct patch attached.

Regards,

Evgeny
--- borders.c.orig      2004-09-01 17:42:04.000000000 +0300
+++ borders.c   2005-08-30 14:17:51.000000000 +0300
@@ -1536,6 +1536,13 @@
        Pixmap p;
        Window w;
        Bool free_bg_pixmap = False;
+       frame_title_layout_t title_layout;
+       
+       int border_width, title_height;
+
+       frame_get_titlebar_dimensions(fw, frame_g, NULL, &title_layout);
+       title_height = title_layout.title_g.height;
+       border_width = fw->boundary_width;
 
        /* make a pixmap */
        border_get_part_geometry(fw, part, sidebar_g, &part_g, &w);
@@ -1551,8 +1558,40 @@
        relative_g.y = part_g.y;
        border_get_border_background(
                &bg, cd, &part_g, &relative_g, &free_bg_pixmap, w);
-       bg.pixmap.g.x = 0;
-       bg.pixmap.g.y = 0;
+       switch (part)
+       {
+       case PART_BORDER_E:
+               bg.pixmap.g.x = (frame_g->width - border_width);
+               break;
+       case PART_BORDER_NE:
+       case PART_BORDER_SE:
+               bg.pixmap.g.x = (frame_g->width - border_width - title_height);
+               break;
+       case PART_BORDER_N:
+       case PART_BORDER_S:
+               bg.pixmap.g.x = (border_width + title_height);
+               break;
+       default:
+               bg.pixmap.g.x = 0;
+               break;
+       }
+       switch (part)
+       {
+       case PART_BORDER_S:
+               bg.pixmap.g.y = (frame_g->height - border_width);
+               break;
+       case PART_BORDER_SW:
+       case PART_BORDER_SE:
+               bg.pixmap.g.y = (frame_g->height - border_width - title_height);
+               break;
+       case PART_BORDER_W:
+       case PART_BORDER_E:
+        bg.pixmap.g.y = (border_width + title_height);
+               break;
+       default:
+               bg.pixmap.g.y = 0;
+               break;
+       }
        /* set the geometry for drawing the Tiled pixmap; maybe add the relief
         * as offset? */
        pix_g.x = 0;

Reply via email to