This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project wmaker-crm.git.

The branch, next has been updated
       via  e1146e56e08af2a66aecedffc6ff31d8ddcb25f3 (commit)
       via  7d6ecb51f66b65221a5df56f2e4907f7a65f4ee4 (commit)
      from  be1c2a01dc8af1fcef6bf1b80c5a4038603d24b7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://repo.or.cz/w/wmaker-crm.git/commit/e1146e56e08af2a66aecedffc6ff31d8ddcb25f3

commit e1146e56e08af2a66aecedffc6ff31d8ddcb25f3
Author: Christophe CURIS <christophe.cu...@free.fr>
Date:   Mon Dec 15 23:49:29 2014 +0100

    configure: rewrote the detection for WebP image library
    
    Unfortunately, the detection was broken because the header is using a hack
    on the function name to provide compatibility between different versions of
    the API, which means the usual link test, which uses a known name of a
    symbol, cannot work without also using the header to get the hack applied
    on the function's name.
    
    The new detection mechanism now simply check for both header and link at
    the same time, so we're probably safe until a Major API change is decided,
    in which case we will also have to update WRaster's code anyway.
    
    Signed-off-by: Christophe CURIS <christophe.cu...@free.fr>

diff --git a/m4/wm_imgfmt_check.m4 b/m4/wm_imgfmt_check.m4
index cad2d727..d07e618f 100644
--- a/m4/wm_imgfmt_check.m4
+++ b/m4/wm_imgfmt_check.m4
@@ -187,14 +187,34 @@ AC_DEFUN_ONCE([WM_IMGFMT_CHECK_TIFF],
 # the variable 'supported_gfx'
 # When not found, append info to variable 'unsupported'
 AC_DEFUN_ONCE([WM_IMGFMT_CHECK_WEBP],
-[WM_LIB_CHECK([WEBP], ["-lwebp"], [VP8DecodeLayer], [$XLFLAGS $XLIBS],
-    [wm_save_CFLAGS="$CFLAGS"
-     AS_IF([wm_fn_lib_try_compile "webp/decode.h" "" "return 0" ""],
-         [],
-         [AC_MSG_ERROR([found $CACHEVAR but could not find appropriate header 
- are you missing libwebp-dev package?])])
-     CFLAGS="$wm_save_CFLAGS"],
-    [supported_gfx], [GFXLIBS])dnl
-]) dnl AC_DEFUN
+[AS_IF([test "x$enable_webp" = "xno"],
+    [unsupported="$unsupported WebP"],
+    [AC_CACHE_CHECK([for WebP support library], [wm_cv_imgfmt_webp],
+        [wm_cv_imgfmt_webp=no
+         dnl
+         dnl The library is using a special trick on the functions to provide
+         dnl compatibility between versions, so we cannot try linking against
+         dnl a symbol without first using the header to handle it
+         wm_save_LIBS="$LIBS"
+         LIBS="$LIBS -lwebp"
+         AC_TRY_LINK(
+             [@%:@include <webp/decode.h>],
+             [WebPGetFeatures(NULL, 1024, NULL);],
+             [wm_cv_imgfmt_webp="-lwebp"])
+         LIBS="$wm_save_LIBS"
+         AS_IF([test "x$enable_webp$wm_cv_imgfmt_webp" = "xyesno"],
+              [AC_MSG_ERROR([explicit WebP support requested but no library 
found])])dnl
+        ])
+     AS_IF([test "x$wm_cv_imgfmt_webp" = "xno"],
+         [unsupported="$unsupported WebP"
+          enable_webp="no"],
+         [supported_gfx="$supported_gfx WebP"
+          WM_APPEND_ONCE([$wm_cv_imgfmt_webp], [GFXLIBS])dnl
+          AC_DEFINE([USE_WEBP], [1],
+              [defined when valid Webp library with header was found])])dnl
+    ])
+AM_CONDITIONAL([USE_WEBP], [test "x$enable_webp" != "xno"])dnl
+])
 
 
 # WM_IMGFMT_CHECK_XPM

http://repo.or.cz/w/wmaker-crm.git/commit/7d6ecb51f66b65221a5df56f2e4907f7a65f4ee4

commit 7d6ecb51f66b65221a5df56f2e4907f7a65f4ee4
Author: Christophe CURIS <christophe.cu...@free.fr>
Date:   Mon Dec 15 23:22:21 2014 +0100

    wmaker: rewrote the update of _NET_WORKAREA property
    
    As reported by Moritz, the Qt toolkit (and maybe a few other ones) are
    using the content of this property, but WindowMaker did not set it properly
    so for examples the menus in KDE could fail to display in multi-screen
    configuration (probably because the toolkit is using the property to make
    sure the menu stays in the visible area).
    
    The original code just assumed it was safe to use the usable area of the
    1st screen in the list, but unfortunately it is not that simple.
    
    The new code calculates a rectangle that contains the usable region from
    all the screens, so the toolkit gets a more accurate value.
    
    Signed-off-by: Christophe CURIS <christophe.cu...@free.fr>

diff --git a/src/wmspec.c b/src/wmspec.c
index 89d8fac6..9b56f96f 100644
--- a/src/wmspec.c
+++ b/src/wmspec.c
@@ -702,25 +702,67 @@ void wNETWMUpdateActions(WWindow *wwin, Bool del)
 
 void wNETWMUpdateWorkarea(WScreen *scr)
 {
-       long *area;
-       int count, i;
+       WArea total_usable;
+       int nb_workspace;
 
-       if (!scr->netdata || scr->workspace_count == 0 || !scr->usableArea)
+       if (!scr->netdata) {
+               /* If the _NET_xxx were not initialised, it not necessary to do 
anything */
                return;
+       }
 
-       count = scr->workspace_count * 4;
-       area = wmalloc(sizeof(long) * count);
+       if (!scr->usableArea) {
+               /* If we don't have any info, we fall back on using the 
complete screen area */
+               total_usable.x1 = 0;
+               total_usable.y1 = 0;
+               total_usable.x2 = scr->scr_width;
+               total_usable.y2 = scr->scr_height;
+
+       } else {
+               int i;
+
+               /*
+                * the _NET_WORKAREA is supposed to contain the total area of 
the screen that
+                * is usable, so we merge the areas from all xrandr sub-screens
+                */
+               total_usable = scr->usableArea[0];
+
+               for (i = 1; i < wXineramaHeads(scr); i++) {
+                       /* The merge is not subtle because _NET_WORKAREA does 
not need more */
+                       if (scr->usableArea[i].x1 < total_usable.x1)
+                               total_usable.x1 = scr->usableArea[i].x1;
+
+                       if (scr->usableArea[i].y1 < total_usable.y1)
+                               total_usable.y1 = scr->usableArea[i].y1;
+
+                       if (scr->usableArea[i].x2 > total_usable.x2)
+                               total_usable.x2 = scr->usableArea[i].x2;
+
+                       if (scr->usableArea[i].y2 > total_usable.y2)
+                               total_usable.y2 = scr->usableArea[i].y2;
+               }
 
-       for (i = 0; i < scr->workspace_count; i++) {
-               area[4 * i + 0] = scr->usableArea[0].x1;
-               area[4 * i + 1] = scr->usableArea[0].y1;
-               area[4 * i + 2] = scr->usableArea[0].x2 - scr->usableArea[0].x1;
-               area[4 * i + 3] = scr->usableArea[0].y2 - scr->usableArea[0].y1;
        }
 
-       XChangeProperty(dpy, scr->root_win, net_workarea, XA_CARDINAL, 32,
-                               PropModeReplace, (unsigned char *)area, count);
-       wfree(area);
+       /* We are expected to repeat the information for each workspace */
+       if (scr->workspace_count == 0)
+               nb_workspace = 1;
+       else
+               nb_workspace = scr->workspace_count;
+
+       {
+               long property_value[nb_workspace * 4];
+               int i;
+
+               for (i = 0; i < nb_workspace; i++) {
+                       property_value[4 * i + 0] = total_usable.x1;
+                       property_value[4 * i + 1] = total_usable.y1;
+                       property_value[4 * i + 2] = total_usable.x2 - 
total_usable.x1;
+                       property_value[4 * i + 3] = total_usable.y2 - 
total_usable.y1;
+               }
+
+               XChangeProperty(dpy, scr->root_win, net_workarea, XA_CARDINAL, 
32, PropModeReplace,
+                               (unsigned char *) property_value, nb_workspace 
* 4);
+       }
 }
 
 Bool wNETWMGetUsableArea(WScreen *scr, int head, WArea *area)

-----------------------------------------------------------------------

Summary of changes:
 m4/wm_imgfmt_check.m4 |   36 ++++++++++++++++++++------
 src/wmspec.c          |   68 +++++++++++++++++++++++++++++++++++++++---------
 2 files changed, 83 insertions(+), 21 deletions(-)


repo.or.cz automatic notification. Contact project admin crma...@gmail.com
if you want to unsubscribe, or site admin ad...@repo.or.cz if you receive
no reply.
-- 
wmaker-crm.git ("The Window Maker window manager")


-- 
To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.

Reply via email to