[waimea] Re: Cairo 1.0.2 compliant
Mathieu Berland
mathieubrlnd at yahoo.fr
Mon Jan 30 01:07:45 EET 2006
Me again :-)
I can't believe I'm so stupid !!!
I made a quick 'ps axf' just to be sure that Gdm doesn't use special
arguments to launch waimea and, oh, surprise, I see /usr/bin/waimea but
my ./configure give /usr/local/bin as the installation prefix. In a
conclusion, my old /usr/bin/waimea from Debian works and my patched
/usr/local/bin/waimea desn't.
I'm so sorry...
Le 29 janv. 06, à 23:41, Mathieu Berland a écrit :
> Hi, some of you sent me mails about troubles with this patch. I made
> some other tests and no, it doesn't work as expected under Xephyr,
> Xnest, and even X. In fact, I discovered I've no problem because I
> launch Waimea from Gdm, don't ask me why.
>
> By the way, I registered on this mailing list a few day ago and I
> did't see that similar patches have already been done last september,
> sorry.
>
>
>
> Le 25 janv. 06, à 20:43, Mathieu Berland a écrit :
>
>> Hi all,
>>
>> I made a patch from the last dist tarball for waimea to build with
>> Cairo 1.0.2.
>>
>> (last dist tarball seems to be here :
>> http://lists.freedesktop.org/archives/waimea/2006-January/000193.html
>> )
>>
>> Note that I've only made the diff in the source directory (no
>> autoconf and others...). I've named this version 0.6.0, if David
>> agree ;-)
>>
>> And..... note that I don't know anything to Cairo ! I've made the
>> modifications from the great '<old function>_deprecated_by_<new
>> function>' macros. Waimea builds and works on my Debian
>> powerpc-unstable GNU/Linux but I'm not sure of what I've made.
>>
>> Regards.
>>
>>
>>
>> =========================================================
>>
>> diff -urN waimea-0.5.1/src/Event.cc waimea-0.6.0/src/Event.cc
>> --- waimea-0.5.1/src/Event.cc 2006-01-18 20:11:41.000000000 +0100
>> +++ waimea-0.6.0/src/Event.cc 2006-01-21 14:48:55.000000000 +0100
>> @@ -146,18 +146,6 @@
>> if (*it == dw) it = __render_list.erase(it);
>> else it++;
>> }
>> -
>> - static cairo_t *cr = NULL;
>> - if (cr == NULL) {
>> - cr = cairo_create();
>> - /* XXX: cairo need a call to this function for text
>> - support to be initialized, will probably
>> dissapear soon. */
>> - cairo_set_target_drawable(cr, waimea->display,
>> -
>> DefaultRootWindow(waimea->display));
>> - }
>> -
>> - dw->renderWindow(cr);
>> -
>> } else {
>> FD_ZERO(&rfds);
>> FD_SET(xfd, &rfds);
>> diff -urN waimea-0.5.1/src/Render.cc waimea-0.6.0/src/Render.cc
>> --- waimea-0.5.1/src/Render.cc 2006-01-18 20:11:41.000000000 +0100
>> +++ waimea-0.6.0/src/Render.cc 2006-01-18 21:25:20.000000000 +0100
>> @@ -364,21 +364,21 @@
>> if (crsurface) {
>> groupsurface =
>> cairo_surface_create_similar(crsurface,
>> - CAIRO_FORMAT_ARGB32,
>> +
>> CAIRO_CONTENT_COLOR_ALPHA,
>> width, height);
>> } else if (parent_surface) {
>> groupsurface =
>> cairo_surface_create_similar(parent_surface,
>> - CAIRO_FORMAT_ARGB32,
>> +
>> CAIRO_CONTENT_COLOR_ALPHA,
>> width, height);
>> } else {
>> if (ws->waimea->client_side_rendering) {
>> data = new unsigned char[width * height *
>> sizeof(WaPixel)];
>> memset (data, 0, width * height * sizeof(WaPixel));
>> groupsurface =
>> - cairo_surface_create_for_image((char *) data,
>> -
>> CAIRO_FORMAT_ARGB32,
>> - width, height,
>> width * 4);
>> + cairo_image_surface_create_for_data(data,
>> +
>> CAIRO_FORMAT_ARGB32,
>> + width,
>> height, width * 4);
>> } else {
>> GC gc;
>> XGCValues gcv;
>> @@ -400,8 +400,8 @@
>> }
>> }
>>
>> - cairo_set_target_surface(cr, groupsurface);
>> - cairo_default_matrix(cr);
>> + cr = cairo_create(groupsurface);
>> + cairo_identity_matrix(cr);
>> cairo_set_operator(cr, RENDER_OPERATOR_DEFAULT);
>> list<RenderOp *>::iterator oit = operations.begin();
>> for (; oit != operations.end(); oit++) {
>> @@ -419,13 +419,14 @@
>> }
>>
>> if (crsurface) {
>> - cairo_set_target_surface(cr, crsurface);
>> + cr = cairo_create(crsurface);
>> cairo_set_operator(cr, RENDER_OPERATOR_DEFAULT);
>> if (xrop_set) cairo_set_operator(cr, xrop);
>> cairo_translate(cr, x, y);
>> cairo_rotate(cr, rotation);
>> - cairo_set_alpha(cr, opacity);
>> - cairo_show_surface(cr, cache_surface->crsurface, width,
>> height);
>> + cairo_paint_with_alpha(cr, opacity);
>> + cairo_set_source_surface(cr, cache_surface->crsurface,
>> width, height);
>> + cairo_paint(cr);
>> }
>>
>> if (return_surface)
>> @@ -822,11 +823,8 @@
>> if (rx != ry) {
>> cairo_matrix_t *matrix;
>>
>> - matrix = cairo_matrix_create ();
>> cairo_matrix_scale (matrix, ry / rx, 1.0);
>> cairo_pattern_set_matrix (pattern, matrix);
>> -
>> - cairo_matrix_destroy (matrix);
>> }
>> } break;
>> case GroupPatternType: {
>> @@ -842,13 +840,13 @@
>> group->return_surface = NULL;
>> group->parent_surface = NULL;
>>
>> - cairo_default_matrix(cr);
>> + cairo_identity_matrix(cr);
>> cairo_move_to(cr, 0.0, 0.0);
>> pattern =
>> cairo_pattern_create_for_surface(subsurface->crsurface);
>> subsurface->unref();
>> cairo_restore(cr);
>> } else {
>> - cairo_set_rgb_color (cr, 1.0, 1.0, 1.0);
>> + cairo_set_source_rgb(cr, 1.0, 1.0, 1.0);
>> return;
>> }
>> } break;
>> @@ -857,23 +855,23 @@
>> int stops = 0;
>> list<WaColorStop *>::iterator it = color_stops.begin();
>> for (; it != color_stops.end(); ++it) {
>> - cairo_pattern_add_color_stop (pattern, (*it)->offset,
>> - (*it)->color->red,
>> - (*it)->color->green,
>> - (*it)->color->blue,
>> - (*it)->color->alpha);
>> + cairo_pattern_add_color_stop_rgba (pattern, (*it)->offset,
>> + (*it)->color->red,
>> + (*it)->color->green,
>> + (*it)->color->blue,
>> + (*it)->color->alpha);
>> stops++;
>> }
>>
>> if (stops == 0) {
>> - cairo_pattern_add_color_stop (pattern, 0.0, 0.0, 0.0, 0.0, 1.0);
>> - cairo_pattern_add_color_stop (pattern, 1.0, 1.0, 1.0, 1.0, 1.0);
>> + cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0.0, 0.0,
>> 1.0);
>> + cairo_pattern_add_color_stop_rgba (pattern, 1.0, 1.0, 1.0, 1.0,
>> 1.0);
>> }
>>
>> cairo_pattern_set_filter (pattern, filter);
>> cairo_pattern_set_extend (pattern, extend);
>>
>> - cairo_set_pattern (cr, pattern);
>> + cairo_set_source (cr, pattern);
>>
>> cairo_pattern_destroy (pattern);
>> }
>> @@ -1098,7 +1096,7 @@
>> fill_color.setcairo_color(cr);
>> if (fill_pattern)
>> fill_pattern->setcairo_pattern(dwo, cr, NULL, w, h);
>> - cairo_set_alpha(cr, fill_color.alpha);
>> + cairo_paint_with_alpha(cr, fill_color.alpha);
>> cairo_fill(cr);
>> cairo_restore(cr);
>> }
>> @@ -1417,7 +1415,7 @@
>> if (name) delete [] name;
>> if (bg_group) bg_group->unref();
>> clear();
>> - if (font) cairo_font_destroy(font);
>> + if (font) cairo_font_face_destroy(font);
>> }
>>
>> void RenderOpText::clear(void) {
>> @@ -1592,20 +1590,14 @@
>> calc_length(bottom_spacing, bottom_spacing_u, dwo->ws->vdpi, h,
>> &bottom_space);
>>
>> - cairo_default_matrix(cr);
>> + cairo_identity_matrix(cr);
>>
>> if (!font) {
>> - cairo_select_font(cr, family, slant, weight);
>> - /* font = cairo_current_font(cr);
>> - if (!font)
>> - return;
>> -
>> - cairo_font_reference (font);
>> - */
>> + cairo_select_font_face(cr, family, slant, weight);
>> } else
>> - cairo_set_font (cr, font);
>> + cairo_set_font_face (cr, font);
>>
>> - cairo_scale_font (cr, font_size);
>> + cairo_set_font_size (cr, font_size);
>>
>> if (is_static)
>> text = utf8;
>> @@ -1645,7 +1637,7 @@
>> str[end_offset] = '\0';
>> sinfo->text = str;
>>
>> - cairo_text_extents(cr, (unsigned char *) sinfo->text,
>> &extents);
>> + cairo_text_extents(cr, sinfo->text, &extents);
>> str_y_pos = extents.height - extents.y_bearing;
>> str_width = extents.width;
>> str_height = extents.height;
>> @@ -1658,9 +1650,9 @@
>> if (textptr[end_offset] == '\t') {
>> double tab, with_space;
>> if (space_width < 0.0) {
>> - cairo_text_extents(cr, (unsigned char *) "1 1",
>> &extents);
>> + cairo_text_extents(cr, "1 1", &extents);
>> with_space = extents.width;
>> - cairo_text_extents(cr, (unsigned char *) "11",
>> &extents);
>> + cairo_text_extents(cr, "11", &extents);
>> space_width = with_space - extents.width;
>> }
>> tab = ceil((linfo->width + space_width) / tab_space);
>> @@ -1731,13 +1723,13 @@
>> cairo_save(cr);
>>
>> text_region = cairo_surface_create_similar(
>> - cairo_current_target_surface(cr), CAIRO_FORMAT_ARGB32,
>> + cairo_get_target(cr), CAIRO_CONTENT_COLOR_ALPHA,
>> (unsigned int) ceil(width), (unsigned int) ceil(height));
>>
>> - cairo_set_target_surface(cr, text_region);
>> + cr = cairo_create(text_region);
>>
>> if (bg_group) {
>> - bg_group->parent_surface = cairo_current_target_surface(cr);
>> + bg_group->parent_surface = cairo_get_target(cr);
>> bg_group->return_surface = &subsurface;
>> cairo_save(cr);
>> bg_group->render(dwo, cr, NULL, (unsigned int) ceil(width),
>> @@ -1750,9 +1742,9 @@
>> cairo_pattern_t *pattern;
>>
>> cairo_save(cr);
>> - cairo_surface_set_repeat(subsurface->crsurface, true);
>> pattern =
>> cairo_pattern_create_for_surface(subsurface->crsurface);
>> - cairo_set_pattern(cr, pattern);
>> + cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT);
>> + cairo_set_source(cr, pattern);
>> cairo_pattern_destroy(pattern);
>> cairo_rectangle(cr, 0.0, 0.0, ceil(width), ceil(height));
>> cairo_fill(cr);
>> @@ -1777,7 +1769,7 @@
>> if (stroke || fill_pattern) {
>> cairo_move_to(cr, (int) (left_space + (*sit)->x +
>> pos_x),
>> (int) (y_off + y_pos));
>> - cairo_text_path(cr, (unsigned char *) (*sit)->text);
>> + cairo_text_path(cr, (*sit)->text);
>> cairo_move_to(cr, 0.0, 0.0);
>> draw(dwo, cr, crsurface, WA_ROUND_U(width),
>> WA_ROUND_U(height));
>> @@ -1787,12 +1779,12 @@
>> cairo_move_to(cr, (int) (left_space + (*sit)->x +
>> pos_x +
>> shadow_x_offset),
>> (int) (y_off + y_pos +
>> shadow_y_offset));
>> - cairo_show_text(cr, (unsigned char *) (*sit)->text);
>> + cairo_show_text(cr, (*sit)->text);
>> }
>> fill_color.setcairo_color(cr);
>> cairo_move_to(cr, (int) (left_space + (*sit)->x +
>> pos_x),
>> (int) (y_off + y_pos));
>> - cairo_show_text(cr, (unsigned char *) (*sit)->text);
>> + cairo_show_text(cr, (*sit)->text);
>> }
>> }
>>
>> @@ -1804,8 +1796,9 @@
>> if (x || y) cairo_translate(cr, x, y);
>> if (xrop_set) cairo_set_operator(cr, xrop);
>> if (rotation) cairo_rotate(cr, rotation);
>> - cairo_show_surface(cr, text_region, (unsigned int) ceil(width),
>> + cairo_set_source_surface(cr, text_region, (unsigned int)
>> ceil(width),
>> (unsigned int) ceil(height));
>> + cairo_paint(cr);
>>
>> cairo_surface_destroy(text_region);
>>
>> @@ -1848,7 +1841,7 @@
>> calcPositionAndSize(w, h, dwo->ws->hdpi, dwo->ws->vdpi, &x, &y,
>> &width, &height);
>>
>> - if (color.alpha == 1.0) cairo_set_operator(cr,
>> CAIRO_OPERATOR_SRC);
>> + if (color.alpha == 1.0) cairo_set_operator(cr,
>> CAIRO_OPERATOR_SOURCE);
>> if (xrop_set) cairo_set_operator(cr, xrop);
>> color.setcairo_color(cr);
>> cairo_rectangle(cr, x, y, width, height);
>> @@ -1934,54 +1927,58 @@
>>
>> switch (scale) {
>> case ImageNormalScaleType:
>> - cairo_default_matrix(cr);
>> + cairo_identity_matrix(cr);
>>
>> if (width != img->width || height != img->height) {
>> if (xrop_set) cairo_set_operator(cr, xrop);
>> - cairo_operator_t op = cairo_current_operator(cr);
>> + cairo_operator_t op = cairo_get_operator(cr);
>>
>> - cairo_surface_t *target =
>> cairo_current_target_surface(cr);
>> + cairo_surface_t *target = cairo_get_target(cr);
>> cairo_surface_t *scaled =
>> - cairo_surface_create_similar(target,
>> CAIRO_FORMAT_ARGB32,
>> + cairo_surface_create_similar(target,
>> CAIRO_CONTENT_COLOR_ALPHA,
>> (int) width + 2,
>> (int) height + 2);
>> - cairo_set_target_surface(cr, scaled);
>> + cr = cairo_create(scaled);
>> cairo_scale(cr, (double) width / (img->width -
>> ((img->width > 1)?
>> 1: 0)),
>> (double) height / (img->height -
>> ((img->height > 1)?
>> 1: 0)));
>> - cairo_surface_set_filter(img->crsurface, filter);
>> - cairo_set_operator(cr, CAIRO_OPERATOR_SRC);
>> - cairo_show_surface(cr, img->crsurface,
>> - img->width + 1, img->height + 1);
>> - cairo_set_target_surface(cr, target);
>> - cairo_default_matrix(cr);
>> + pattern =
>> cairo_pattern_create_for_surface(img->crsurface);
>> + cairo_pattern_set_filter(pattern, filter);
>> + cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
>> + cairo_set_source_surface(cr, img->crsurface,
>> + img->width + 1, img->height
>> + 1);
>> + cairo_paint(cr);
>> + cr = cairo_create(target);
>> + cairo_identity_matrix(cr);
>> cairo_translate(cr, x, y);
>> cairo_set_operator(cr, op);
>> - cairo_show_surface(cr, scaled, (int) width + 2,
>> - (int) height + 2);
>> + cairo_set_source_surface(cr, scaled, (int) width + 2,
>> + (int) height + 2);
>> + cairo_paint(cr);
>> cairo_surface_destroy(scaled);
>> } else {
>> if (xrop_set) cairo_set_operator(cr, xrop);
>> cairo_translate(cr, x, y);
>> cairo_rotate(cr, rotation);
>> - cairo_show_surface(cr, img->crsurface,
>> - img->width + 1, img->height + 1);
>> + cairo_set_source_surface(cr, img->crsurface,
>> + img->width + 1, img->height
>> + 1);
>> + cairo_paint(cr);
>> }
>> break;
>> case ImageTileScaleType: {
>> - cairo_default_matrix(cr);
>> - cairo_surface_set_repeat(img->crsurface, true);
>> + cairo_identity_matrix(cr);
>> cairo_translate(cr, x, y);
>> cairo_rectangle(cr, 0, 0, width, height);
>> cairo_move_to(cr, 0.0, 0.0);
>> - cairo_default_matrix(cr);
>> + cairo_identity_matrix(cr);
>> pattern =
>> cairo_pattern_create_for_surface(img->crsurface);
>> - cairo_set_pattern(cr, pattern);
>> + cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT);
>> + cairo_set_source(cr, pattern);
>> cairo_pattern_destroy(pattern);
>> if (xrop_set) cairo_set_operator(cr, xrop);
>> cairo_fill(cr);
>> - cairo_surface_set_repeat(img->crsurface, false);
>> + cairo_pattern_set_extend(pattern, CAIRO_EXTEND_NONE);
>> } break;
>> }
>>
>> @@ -2275,16 +2272,19 @@
>> cairo_operator_t crop;
>> } operator_map[] = {
>> { "clear", CAIRO_OPERATOR_CLEAR },
>> - { "src", CAIRO_OPERATOR_SRC },
>> - { "dst", CAIRO_OPERATOR_DST },
>> +
>> + { "source", CAIRO_OPERATOR_SOURCE },
>> { "over", CAIRO_OPERATOR_OVER },
>> - { "overreverse", CAIRO_OPERATOR_OVER_REVERSE },
>> { "in", CAIRO_OPERATOR_IN },
>> - { "inreverse", CAIRO_OPERATOR_IN_REVERSE },
>> { "out", CAIRO_OPERATOR_OUT },
>> - { "outreverse", CAIRO_OPERATOR_OUT_REVERSE },
>> { "atop", CAIRO_OPERATOR_ATOP },
>> - { "atopreverse", CAIRO_OPERATOR_ATOP_REVERSE },
>> +
>> + { "dest", CAIRO_OPERATOR_DEST },
>> + { "destover", CAIRO_OPERATOR_DEST_OVER },
>> + { "destin", CAIRO_OPERATOR_DEST_IN },
>> + { "destout", CAIRO_OPERATOR_DEST_OUT },
>> + { "destatop", CAIRO_OPERATOR_DEST_ATOP },
>> +
>> { "xor", CAIRO_OPERATOR_XOR },
>> { "add", CAIRO_OPERATOR_ADD },
>> { "saturate", CAIRO_OPERATOR_SATURATE }
>> diff -urN waimea-0.5.1/src/Render.hh waimea-0.6.0/src/Render.hh
>> --- waimea-0.5.1/src/Render.hh 2006-01-18 20:11:41.000000000 +0100
>> +++ waimea-0.6.0/src/Render.hh 2006-01-18 20:55:39.000000000 +0100
>> @@ -247,8 +247,8 @@
>> double getOpacity(void) { return alpha; }
>>
>> inline void setcairo_color(cairo_t *cr) {
>> - cairo_set_rgb_color(cr, red, green, blue);
>> - cairo_set_alpha(cr, alpha);
>> + cairo_set_source_rgb(cr, red, green, blue);
>> + cairo_paint_with_alpha(cr, alpha);
>> }
>>
>> double red, green, blue, alpha;
>> @@ -503,7 +503,7 @@
>> HorizontalAlignment text_halign;
>> WaColor shadow_color;
>> char *family;
>> - cairo_font_t *font;
>> + cairo_font_face_t *font;
>> RenderGroup *bg_group;
>> cairo_font_weight_t weight;
>> cairo_font_slant_t slant;
>> diff -urN waimea-0.5.1/src/Screen.cc waimea-0.6.0/src/Screen.cc
>> --- waimea-0.5.1/src/Screen.cc 2006-01-18 20:11:41.000000000 +0100
>> +++ waimea-0.6.0/src/Screen.cc 2006-01-18 20:17:41.000000000 +0100
>> @@ -1561,10 +1561,10 @@
>>
>> if (waimea->client_side_rendering) {
>> data = rgba;
>> - surface = cairo_surface_create_for_image((char *) rgba,
>> - CAIRO_FORMAT_ARGB32,
>> - width, height,
>> - width *
>> sizeof(WaPixel));
>> + surface = cairo_image_surface_create_for_data(rgba,
>> +
>> CAIRO_FORMAT_ARGB32,
>> + width, height,
>> + width *
>> sizeof(WaPixel));
>> } else {
>> pixmap = XCreatePixmap(display, id, width, height, 32);
>> XImage *image = XCreateImage(display, visual, 32, ZPixmap, 0,
>> diff -urN waimea-0.5.1/src/Style.cc waimea-0.6.0/src/Style.cc
>> --- waimea-0.5.1/src/Style.cc 2006-01-18 20:11:41.000000000 +0100
>> +++ waimea-0.6.0/src/Style.cc 2006-01-18 20:34:21.000000000 +0100
>> @@ -647,9 +647,9 @@
>> (bgsurface)? bgsurface->height: 0,
>> p_x, p_y, w, h);
>> root_surface =
>> - cairo_surface_create_for_image((char *) root_data,
>> - CAIRO_FORMAT_ARGB32,
>> - w, h, w *
>> sizeof(WaPixel));
>> + cairo_image_surface_create_for_data(root_data,
>> +
>> CAIRO_FORMAT_ARGB32,
>> + w, h, w *
>> sizeof(WaPixel));
>> } else {
>> root_pixmap = ws->getRootBgPixmap(
>> (bgsurface)? bgsurface->pixmap: None,
>> @@ -679,13 +679,14 @@
>> sb->style->parent_surface = NULL;
>>
>> if (root_surface) {
>> - cairo_set_target_surface(cr, root_surface);
>> + cr = cairo_create(root_surface);
>> cairo_set_operator(cr, RENDER_OPERATOR_DEFAULT);
>> if (sb->style->xrop_set)
>> cairo_set_operator(cr, sb->style->xrop);
>> - cairo_set_alpha(cr, sb->style->opacity);
>> - cairo_default_matrix(cr);
>> - cairo_show_surface(cr, return_surface->crsurface, w, h);
>> + cairo_paint_with_alpha(cr, sb->style->opacity);
>> + cairo_identity_matrix(cr);
>> + cairo_set_source_surface(cr, return_surface->crsurface,
>> w, h);
>> + cairo_paint(cr);
>> }
>>
>> if (shape) {
>> @@ -695,9 +696,9 @@
>> shape_data = new unsigned char[w * h *
>> sizeof(WaPixel)];
>> memset (shape_data, 0, w * h * sizeof(WaPixel));
>> alpha_surface =
>> - cairo_surface_create_for_image((char *)
>> shape_data,
>> -
>> CAIRO_FORMAT_ARGB32,
>> - w, h, w *
>> sizeof(WaPixel));
>> + cairo_image_surface_create_for_data(shape_data,
>> +
>> CAIRO_FORMAT_ARGB32,
>> + w, h, w *
>> sizeof(WaPixel));
>> } else {
>> GC gc;
>> XGCValues gcv;
>> @@ -715,15 +716,16 @@
>> ws->colormap);
>> }
>>
>> - cairo_set_target_surface(cr, alpha_surface);
>> + cr = cairo_create(alpha_surface);
>>
>> if (sb->style->shapemask) {
>> cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
>> sb->style->shapemask->render(this, cr,
>> alpha_surface, w, h);
>> } else {
>> cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
>> - cairo_set_alpha(cr, sb->style->opacity);
>> - cairo_show_surface(cr, return_surface->crsurface, w,
>> h);
>> + cairo_paint_with_alpha(cr, sb->style->opacity);
>> + cairo_set_source_surface(cr,
>> return_surface->crsurface, w, h);
>> + cairo_paint(cr);
>> }
>>
>> if (ws->waimea->client_side_rendering) {
>>
>> =========================================================
>>
>
>
>
>
>
>
> _______________________________________________________________________
> ____
> Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les
> tarifs exceptionnels pour appeler la France et l'international.
> Téléchargez sur http://fr.messenger.yahoo.com
> _______________________________________________
> waimea mailing list
> waimea at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/waimea
>
___________________________________________________________________________
Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.
Téléchargez sur http://fr.messenger.yahoo.com
More information about the waimea
mailing list