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  5030a359b273b1aa88f7cb7d064cd546f86a5bb0 (commit)
       via  ea618199a0ac17849736333e27bbeaa26e8f2617 (commit)
      from  000601850a03e765f054a91075c18220e0e55d6a (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/5030a359b273b1aa88f7cb7d064cd546f86a5bb0

commit 5030a359b273b1aa88f7cb7d064cd546f86a5bb0
Author: Brad Jorsch <[email protected]>
Date:   Tue Feb 18 21:41:22 2014 -0500

    Set no_focusable for "notification" and "tooltip" windows
    
    Notification popups, and tooltips for that matter, shouldn't be taking
    focus away from apps the user is actually interacting with.

diff --git a/src/wmspec.c b/src/wmspec.c
index 779a9efc..46351f23 100644
--- a/src/wmspec.c
+++ b/src/wmspec.c
@@ -1204,6 +1204,7 @@ static Bool handleWindowType(WWindow *wwin, Atom type, 
int *layer)
                wwin->client_flags.skip_switchpanel = 1;
                wwin->client_flags.dont_move_off = 1;
                wwin->client_flags.no_appicon = 1;
+               wwin->client_flags.no_focusable = 1;
                wwin->flags.net_skip_pager = 1;
        } else if (wwin->type == net_wm_window_type_notification) {
                wwin->client_flags.no_titlebar = 1;
@@ -1219,6 +1220,7 @@ static Bool handleWindowType(WWindow *wwin, Atom type, 
int *layer)
                wwin->client_flags.dont_move_off = 1;
                wwin->client_flags.no_hide_others= 1;
                wwin->client_flags.no_appicon = 1;
+               wwin->client_flags.no_focusable = 1;
                wwin->flags.net_skip_pager = 1;
        } else if (wwin->type == net_wm_window_type_dnd) {
                wwin->client_flags.no_titlebar = 1;

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

commit ea618199a0ac17849736333e27bbeaa26e8f2617
Author: David Maciejak <[email protected]>
Date:   Tue Feb 18 13:19:12 2014 +0800

    wrlib: Added support for webp image
    
    This patch is adding support for google webp image format, if you
    don't know it a quick recap is to say that according to their tests
    it's better than png and jpeg.
    
    Follow the link below for some more details:
    https://developers.google.com/speed/webp/

diff --git a/configure.ac b/configure.ac
index 171172e9..b85b5294 100644
--- a/configure.ac
+++ b/configure.ac
@@ -678,6 +678,15 @@ AC_ARG_ENABLE([tiff],
     [enable_tiff=auto])
 WM_IMGFMT_CHECK_TIFF
 
+dnl WEBP Support
+dnl ===========
+AC_ARG_ENABLE([webp],
+    [AS_HELP_STRING([--disable-webp], [disable WEBP support through libwebp])],
+    [AS_CASE(["$enableval"],
+        [yes|no], [],
+        [AC_MSG_ERROR([bad value $enableval for --enable-webp])] )],
+    [enable_webp=auto])
+WM_IMGFMT_CHECK_WEBP
 
 dnl PPM Support
 dnl ===========
@@ -685,7 +694,6 @@ dnl ===========
 # We are not using any external library like libppm
 supported_gfx="$supported_gfx builtin-PPM"
 
-
 # Choice of the default format for icons
 AS_IF([test "x$enable_tiff" != "xno"],
     [ICONEXT="tiff"],
diff --git a/m4/wm_imgfmt_check.m4 b/m4/wm_imgfmt_check.m4
index 02245d28..0881cdde 100644
--- a/m4/wm_imgfmt_check.m4
+++ b/m4/wm_imgfmt_check.m4
@@ -221,3 +221,23 @@ AS_IF([test "x$enable_xpm" = "xno"],
     ])
 AM_CONDITIONAL([USE_XPM], [test "x$enable_xpm" != "xno"])dnl
 ]) dnl AC_DEFUN
+
+# WM_IMGFMT_CHECK_WEBP
+# -------------------
+#
+# Check for WEBP file support through 'libwebp'
+# The check depends on variable 'enable_webp' being either:
+#   yes  - detect, fail if not found
+#   no   - do not detect, disable support
+#   auto - detect, disable if not found
+#
+# 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
diff --git a/wrlib/Makefile.am b/wrlib/Makefile.am
index db766ae2..48af352a 100644
--- a/wrlib/Makefile.am
+++ b/wrlib/Makefile.am
@@ -60,6 +60,10 @@ else
 libwraster_la_SOURCES += load_xpm_normalized.c
 endif
 
+if USE_WEBP
+libwraster_la_SOURCES += load_webp.c
+endif
+
 AM_CPPFLAGS = $(DFLAGS) @HEADER_SEARCH_PATH@
 
 libwraster_la_LIBADD = @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ @LIBXMU@ -lm
diff --git a/wrlib/imgformat.h b/wrlib/imgformat.h
index 07b021a4..98e8c3d2 100644
--- a/wrlib/imgformat.h
+++ b/wrlib/imgformat.h
@@ -38,7 +38,8 @@ typedef enum {
        IM_PNG     =  3,
        IM_PPM     =  4,
        IM_JPEG    =  5,
-       IM_GIF     =  6
+       IM_GIF     =  6,
+       IM_WEBP    =  7
 } WRImgFormat;
 
 /* How many image types we have. */
diff --git a/wrlib/load.c b/wrlib/load.c
index 061a50de..e834c9e8 100644
--- a/wrlib/load.c
+++ b/wrlib/load.c
@@ -3,6 +3,7 @@
  * Raster graphics library
  *
  * Copyright (c) 1997-2003 Alfredo K. Kojima
+ * Copyright (c) 2014 Window Maker Team
  *
  *  This library is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU Library General Public
@@ -37,6 +38,10 @@
 #include <png.h>
 #endif
 
+#ifdef USE_WEBP
+#include <webp/decode.h>
+#endif
+
 #include "wraster.h"
 #include "imgformat.h"
 
@@ -92,6 +97,9 @@ char **RSupportedFileFormats(void)
 #ifdef USE_GIF
        tmp[i++] = "GIF";
 #endif
+#ifdef USE_WEBP
+       tmp[i++] = "WEBP";
+#endif
        tmp[i] = NULL;
 
        return tmp;
@@ -190,6 +198,12 @@ RImage *RLoadImage(RContext * context, const char *file, 
int index)
                break;
 #endif                         /* USE_GIF */
 
+#ifdef USE_WEBP
+       case IM_WEBP:
+               image = RLoadWEBP(file, index);
+               break;
+#endif                         /* USE_WEBP */
+
        case IM_PPM:
                image = RLoadPPM(file);
                break;
@@ -264,6 +278,11 @@ char *RGetImageFileFormat(const char *file)
                return "GIF";
 #endif                         /* USE_GIF */
 
+#ifdef USE_WEBP
+       case IM_WEBP:
+               return "WEBP";
+#endif                         /* USE_WEBP */
+
        case IM_PPM:
                return "PPM";
 
@@ -275,7 +294,7 @@ char *RGetImageFileFormat(const char *file)
 static WRImgFormat identFile(const char *path)
 {
        FILE *file;
-       unsigned char buffer[7];
+       unsigned char buffer[17];
        size_t nread;
 
        assert(path != NULL);
@@ -319,5 +338,28 @@ static WRImgFormat identFile(const char *path)
        if (buffer[0] == 'G' && buffer[1] == 'I' && buffer[2] == 'F' && 
buffer[3] == '8')
                return IM_GIF;
 
+#ifdef USE_WEBP
+       /* check for WEBP */
+       if (buffer[ 0] == 'R' &&
+                     buffer[ 1] == 'I' &&
+                     buffer[ 2] == 'F' &&
+                     buffer[ 3] == 'F' &&
+                     buffer[ 8] == 'W' &&
+                    buffer[ 9] == 'E' &&
+                     buffer[10] == 'B' &&
+                     buffer[11] == 'P' &&
+                     buffer[12] == 'V' &&
+                     buffer[13] == 'P' &&
+                     buffer[14] == '8' &&
+#if WEBP_DECODER_ABI_VERSION < 0x0003 /* old versions don't support WEBPVP8X 
and WEBPVP8L */
+                       buffer[15] == ' ')
+#else
+                       (buffer[15] == ' ' || buffer[15] == 'X' || buffer[15] 
== 'L'))
+#endif
+#endif
+
+       return IM_WEBP;
+
+
        return IM_UNKNOWN;
 }
diff --git a/wrlib/load_webp.c b/wrlib/load_webp.c
new file mode 100644
index 00000000..d69a107f
--- /dev/null
+++ b/wrlib/load_webp.c
@@ -0,0 +1,137 @@
+/* load_webp.c - load WEBP image from file
+ *
+ * Raster graphics library
+ *
+ * Copyright (c) 2014 Window Maker Team
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ *  MA 02110-1301, USA.
+ */
+
+#include <config.h>
+
+#include <X11/Xlib.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <webp/decode.h>
+
+#include "wraster.h"
+#include "imgformat.h"
+
+RImage *
+RLoadWEBP(const char *file_name)
+{
+       FILE *file;
+       RImage *image = NULL;
+       char buffer[20];
+       int raw_data_size;
+       int start;
+       int r;
+       uint8_t *raw_data;
+       WebPBitstreamFeatures features;
+       uint8_t *ret = NULL;
+
+       file = fopen(file_name, "rb");
+       if (!file) {
+               RErrorCode = RERR_OPEN;
+               return NULL;
+       }
+       start = ftell(file);
+
+       if (!fread(buffer, sizeof(buffer), 1, file)) {
+               RErrorCode = RERR_BADIMAGEFILE;
+               fclose(file);
+               return NULL;
+       }
+
+
+       if (!(buffer[0] == 'R' &&
+             buffer[1] == 'I' &&
+             buffer[2] == 'F' &&
+             buffer[3] == 'F' &&
+             buffer[8] == 'W' &&
+             buffer[9] == 'E' &&
+             buffer[10] == 'B' &&
+             buffer[11] == 'P' &&
+             buffer[12] == 'V' && buffer[13] == 'P' && buffer[14] == '8' &&
+#if WEBP_DECODER_ABI_VERSION < 0x0003  /* old versions don't support WEBPVP8X 
and WEBPVP8L */
+             buffer[15] == ' ')) {
+#else
+             (buffer[15] == ' ' || buffer[15] == 'X' || buffer[15] == 'L'))) {
+#endif
+               RErrorCode = RERR_BADFORMAT;
+               fclose(file);
+               return NULL;
+       }
+
+
+       fseek(file, 0, SEEK_END);
+       raw_data_size = ftell(file);
+
+       if (raw_data_size <= 0) {
+               fprintf(stderr, "Failed to find the WEBP image sizen");
+               return NULL;
+       }
+
+       fseek(file, start, SEEK_SET);
+
+       raw_data = (uint8_t *) malloc(raw_data_size);
+
+       if (!raw_data) {
+               fprintf(stderr, "Failed to allocate enought buffer for WEBPn");
+               return NULL;
+       }
+
+       r = fread(raw_data, 1, raw_data_size, file);
+
+       if (r != raw_data_size) {
+               fprintf(stderr, "Failed to read WEBPn");
+               return NULL;
+       }
+
+       if (WebPGetFeatures(raw_data, raw_data_size, &features) !=
+           VP8_STATUS_OK) {
+               fprintf(stderr, "WebPGetFeatures has failedn");
+               return NULL;
+       }
+
+       if (features.has_alpha) {
+               image = RCreateImage(features.width, features.height, True);
+               if (!image)
+                       return NULL;
+               ret =
+                   WebPDecodeRGBAInto(raw_data, raw_data_size, image->data,
+                                      features.width * features.height * 4,
+                                      features.width * 4);
+       } else {
+               image = RCreateImage(features.width, features.height, False);
+               if (!image)
+                       return NULL;
+               ret =
+                   WebPDecodeRGBInto(raw_data, raw_data_size, image->data,
+                                     features.width * features.height * 3,
+                                     features.width * 3);
+       }
+
+       if (!ret) {
+               fprintf(stderr, "Failed to decode WEBPn");
+               return NULL;
+       }
+
+       fclose(file);
+       return image;
+}

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

Summary of changes:
 configure.ac          |   10 +++-
 m4/wm_imgfmt_check.m4 |   20 +++++++
 src/wmspec.c          |    2 +
 wrlib/Makefile.am     |    4 ++
 wrlib/imgformat.h     |    3 +-
 wrlib/load.c          |   44 +++++++++++++++-
 wrlib/load_webp.c     |  137 +++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 217 insertions(+), 3 deletions(-)
 create mode 100644 wrlib/load_webp.c


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].

Reply via email to