X-Git-Url: https://git.decadent.org.uk/gitweb/?p=ion3.git;a=blobdiff_plain;f=ioncore%2Finfowin.c;h=66029b2a41ff5ad675769d8e0f9dc4d5d3b0758c;hp=463b16e8a5eb277f1d6407e676eab85fd82fe14c;hb=HEAD;hpb=803afbc1cd633f6c025bcd9537e9b7e9aedadd0d diff --git a/ioncore/infowin.c b/ioncore/infowin.c index 463b16e..66029b2 100644 --- a/ioncore/infowin.c +++ b/ioncore/infowin.c @@ -1,12 +1,9 @@ /* * ion/ioncore/infowin.h * - * Copyright (c) Tuomo Valkonen 1999-2007. + * Copyright (c) Tuomo Valkonen 1999-2009. * - * Ion is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. + * See the included file LICENSE for details. */ #include @@ -19,6 +16,7 @@ #include "resize.h" #include "gr.h" #include "event.h" +#include "strings.h" /*{{{ Init/deinit */ @@ -53,8 +51,6 @@ bool infowin_init(WInfoWin *p, WWindow *parent, const WFitParams *fp, if(p->brush==NULL) goto fail3; - p->wwin.region.flags|=REGION_SKIP_FOCUS; - /* Enable save unders */ attr.save_under=True; XChangeWindowAttributes(ioncore_g.dpy, p->wwin.win, CWSaveUnder, &attr); @@ -198,10 +194,26 @@ static void infowin_resize(WInfoWin *p) * Set contents of the info window. */ EXTL_EXPORT_MEMBER -void infowin_set_text(WInfoWin *p, const char *str) +void infowin_set_text(WInfoWin *p, const char *str, int maxw) { - infowin_do_set_text(p, str); - + bool set=FALSE; + + if(str==NULL){ + INFOWIN_BUFFER(p)[0]='\0'; + }else{ + if(maxw>0 && p->brush!=NULL){ + char *tmp=grbrush_make_label(p->brush, str, maxw); + if(tmp!=NULL){ + infowin_do_set_text(p, tmp); + free(tmp); + set=TRUE; + } + } + + if(!set) + infowin_do_set_text(p, str); + } + infowin_resize(p); /* sometimes unnecessary */