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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 [email protected]
if you want to unsubscribe, or site admin [email protected] if you receive
no reply.
--
wmaker-crm.git ("The Window Maker window manager")
--
To unsubscribe, send mail to [email protected].