Yet another patch. This one sets the _NET_DESKTOP_VIEWPORT hint correctly (one coordinate set per desktop).
/Kim
diff -ur -X excl-cvs.list e16-cvs.org/e/src/ewmh.c e16/e/src/ewmh.c --- e16-cvs.org/e/src/ewmh.c 2003-03-31 20:47:24.000000000 +0200 +++ e16/e/src/ewmh.c 2003-04-02 22:47:01.000000000 +0200 @@ -327,14 +327,22 @@ void EWMH_SetDesktopViewport(void) { - CARD32 val[2]; - int ax, ay; + CARD32 *p_coord; + int n_coord, i; EDBUG(6, "EWMH_SetDesktopViewport"); - GetCurrentArea(&ax, &ay); - val[0] = ax * root.w; - val[1] = ay * root.h; - _ATOM_SET_CARD32(_NET_DESKTOP_VIEWPORT, root.win, val, 2); + n_coord = 2 * mode.numdesktops; + p_coord = Emalloc(n_coord * sizeof(CARD32)); + if (p_coord) + { + for (i = 0; i < mode.numdesktops; i++) + { + p_coord[2*i] = desks.desk[i].current_area_x * root.w; + p_coord[2*i+1] = desks.desk[i].current_area_y * root.h; + } + _ATOM_SET_CARD32(_NET_DESKTOP_VIEWPORT, root.win, p_coord, n_coord); + Efree(p_coord); + } EDBUG_RETURN_; }