Hi all

I case you are wondering why this bug is marked as release critical,
here a some more information and solutions.

First of all i intend to adopt wbar [1] and i have already filed a
request for sponsorship. [2]

Bart set the severity of #575087 to "grave" and asked me to consider to
prepare a fix for Wheezy. [3]

My response [4] hasn't changed fundamentally yet because no additional
information were added to the bug report.

1. I still think the bug isn't release critical.
2. My packaged version of wbar, 2.3.4, fixes all outstanding
   bugs including this one.
3. I have prepared another fix for the
   "broken-path-to-a-font-file-problem" and attached it.

I can't reproduce that wbar 1.3.3 fails silently on a default
installation.

$ aptitude install wbar
$ cp /usr/share/wbar/dot.wbar ~/.wbar
$ wbar -pos top -isize 48

This installs wbar, gnome-extra-icons and fonts-dustin and starts wbar
at the top of the screen. After that you can change the icons and the
font by editing the config file.

Both bug reporters had most likely installed wbar without recommended
packages. Only in this case wbar will refuse to start and throw an
exception. You must obviously set a correct path in your .wbar config file.

I agree this is not the most user friendly behaviour but this issue
doesn't exist anymore in 2.3.4 and wbar deals more gracefully with it.

Therefore i suggest to upload 2.3.4 to Wheezy. It fixes a lot of minor
bugs which aren't even mentioned here and is in general more user friedly.

A partial solution to the problem is to avoid throwing an exception
in case a wrong font path was set. My attached patch is small and
would fix this issue.

If you insist this bug is RC then please consider uploading version
2.3.4 to Unstable and unblocking it for Wheezy or if at all please use
the attached patch.

Regards
Markus


[1] http://bugs.debian.org/678865
[2] http://bugs.debian.org/688310
[3] http://bugs.debian.org/688310#14
[4] http://bugs.debian.org/688310#19
diff -u wbar-1.3.3+dfsg2/debian/changelog wbar-1.3.3+dfsg2/debian/changelog
--- wbar-1.3.3+dfsg2/debian/changelog
+++ wbar-1.3.3+dfsg2/debian/changelog
@@ -1,3 +1,11 @@
+wbar (1.3.3+dfsg2-1.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Wbar won't refuse to start anymore if a font path isn't set correctly.
+    This is a partial solution to fix #575087. 
+    
+ -- Markus Koschany <a...@gambaru.de>  Sat, 29 Sep 2012 13:54:47 +0200
+
 wbar (1.3.3+dfsg2-1) unstable; urgency=low
 
   * Repacked again to get rid of non-free icons (Closes: #540612)
only in patch2:
unchanged:
--- wbar-1.3.3+dfsg2.orig/SuperBar.cc
+++ wbar-1.3.3+dfsg2/SuperBar.cc
@@ -1,17 +1,19 @@
 #include "SuperBar.h"
 #include "SuperIcon.h"
+#include <stdlib.h>
+#include <iostream>
 
 using namespace std;
 
 /* Super Constructor *//*{{{*/
-SuperBar::SuperBar(XWin *win, string barImg, string barFont, int iSize, int 
iDist, 
-    float zFactor, float jFactor, int bOrient, int bPosition, int nAnim, int 
barAlfa, 
+SuperBar::SuperBar(XWin *win, string barImg, string barFont, int iSize, int 
iDist,
+    float zFactor, float jFactor, int bOrient, int bPosition, int nAnim, int 
barAlfa,
     int unfocusAlfa, int filtSel, unsigned int filtCol, bool dfont) :
 
-    Bar(win, barImg, iSize, iDist, zFactor, jFactor, bOrient, bPosition, 
nAnim), 
-    font(NULL), drawfont(dfont), rest_w(0), filtSel(filtSel), filtRed((filtCol 
& 0x00ff0000)>>16), 
+    Bar(win, barImg, iSize, iDist, zFactor, jFactor, bOrient, bPosition, 
nAnim),
+    font(NULL), drawfont(dfont), rest_w(0), filtSel(filtSel), filtRed((filtCol 
& 0x00ff0000)>>16),
     filtGreen((filtCol & 0x0000ff00)>>8), filtBlue(filtCol & 0x000000ff),
-    filtAlfa((filtCol & 0xff000000)>>24), unfocusAlfa(unfocusAlfa), 
barAlfa(barAlfa) { 
+    filtAlfa((filtCol & 0xff000000)>>24), unfocusAlfa(unfocusAlfa), 
barAlfa(barAlfa) {
 
     int textW, textH;
 
@@ -21,8 +23,11 @@
     if( !barFont.empty() ){
        ADD_FONT_PATH(getenv("HOME"));
        if( !(font = LOAD_FONT(barFont.c_str())) )
-           throw (barFont + " -> Couldn't load font.").c_str();
-       USE_FONT(font);
+       {
+           std::cout << ("Problem loading font file.") << " " << barFont << 
std::endl;
+           return;
+        }
+        USE_FONT(font);
 
        imlib_get_text_size("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM", &textW, &textH);
        font_restore = CREATE_IMAGE(textW, 2*textH);
@@ -94,7 +99,7 @@
            imlib_filter_set_blue (0, 0, 0, 0, 0, 0);
 
        imlib_filter_set_alpha(0, 0, filtAlfa, 0, 0, 0); // new
-       imlib_filter_divisors(255, filtRed!=0?3*255/filtRed:1, 
+       imlib_filter_divisors(255, filtRed!=0?3*255/filtRed:1,
                filtGreen!=0?3*255/filtGreen:1, filtBlue!=0?3*255/filtBlue:1);
 #endif
 
@@ -103,7 +108,7 @@
     /* Set alfa to the Bar */
     if(barAlfa != -1){
        fAlfaBar = imlib_create_filter(0);
-       imlib_context_set_filter(fAlfaBar); 
+       imlib_context_set_filter(fAlfaBar);
        imlib_filter_set_alpha(0, 0, barAlfa, 0, 0, 0);
        imlib_filter_divisors(100, 0, 0, 0);
 
@@ -115,7 +120,7 @@
     /* Alfa the bar when loose focus */
     if(unfocusAlfa != -1){
        fAlfaUnfocus = imlib_create_filter(0);
-       imlib_context_set_filter(fAlfaUnfocus); 
+       imlib_context_set_filter(fAlfaUnfocus);
        imlib_filter_set_alpha(0, 0, unfocusAlfa, 0, 0, 0);
        imlib_filter_divisors(100, 0, 0, 0);
     }
@@ -187,7 +192,7 @@
     if(font && drawfont)
        if(rest_w > 0 ){
            USE_IMAGE(buffer);
-           BLEND_IMAGE(font_restore, 0, 0, rest_w, rest_h, 
+           BLEND_IMAGE(font_restore, 0, 0, rest_w, rest_h,
                rest_x, rest_y, rest_w, rest_h);
            rest_w = 0;
        }
@@ -221,8 +226,8 @@
                tw = cur_ic->y - (cur_ic->textW - cur_ic->size)/2;
                th = cur_ic->x + cur_ic->size - cur_ic->textH;
            }
-           rest_x = tw; rest_y = th; 
-           rest_w = cur_ic->textW + 1; 
+           rest_x = tw; rest_y = th;
+           rest_w = cur_ic->textW + 1;
            rest_h = cur_ic->textH + 1;
        }
     }
@@ -235,7 +240,7 @@
     /* Blend Icons */
     for(size_t a=0; a<icons.size(); a++){
        cur_ic = (SuperIcon*)icons[a];
-       
+
        /* If Icon needs update => blend it */
        if(cur_ic->need_update == 1){
 
@@ -276,10 +281,10 @@
            }
 
            if(orientation == 0)
-               BLEND_IMAGE(cur_im, 0, 0, cur_ic->osize, cur_ic->osize, 
+               BLEND_IMAGE(cur_im, 0, 0, cur_ic->osize, cur_ic->osize,
                    cur_ic->x, cur_ic->y, cur_ic->size, cur_ic->size);
            else
-               BLEND_IMAGE(cur_im, 0, 0, cur_ic->osize, cur_ic->osize, 
+               BLEND_IMAGE(cur_im, 0, 0, cur_ic->osize, cur_ic->osize,
                    cur_ic->y, cur_ic->x, cur_ic->size, cur_ic->size);
 
 
@@ -314,7 +319,7 @@
        icons.back() = icons[zoomed_icon];
        icons[zoomed_icon] = cur_ic;
     }
-    
+
     /* Show the buffer */
     SET_BLEND(0);
     RENDER_TO_DRAWABLE(0, 0);

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to