* 1.7.3 release
+2012-12-09 Cedric Bail
+
+ * Fix build without IPv6.
+
+2012-12-12 Daniel Willmann
+
+ * Fix possible memory corruption in xrandr EDID functions.
+
+2012-12-12 Nicolas Aguirre
+
+ * Fix build on win32
+
+2012-12-17 Vincent Torri
+
+ * Add XML output to doc
+ * Add installation rule for doc
+
+2012-12-19 Luis Felipe Strano Moraes
+
+ * Backport 81304 which fixes memory errors on ecore_evas_extn
+
+2012-12-19 Christopher Michael
+
+ * Fix XCB compile with screensaver support
+
+2012-12-20 Carsten Haitzler (The Rasterman)
+
+ * Fixed 24bpp ximage convert back from 24bpp to 32bpp in
+ ecore-x. Only shows itself in qemu/kvm.
+
+
+2012-12-21 Luis Felipe Strano Moraes
+
+ * 1.7.4 release
pkgconfig_DATA += ecore-wayland.pc
endif
-.PHONY: doc coverage
+.PHONY: doc install-doc coverage
# Documentation
@echo "entering doc/"
make -C doc doc
+install-doc:
+ @echo "entering doc/"
+ make -C doc install-doc
+
# Unit tests
if EFL_ENABLE_TESTS
uninstall-pkgconfigDATA
-.PHONY: doc coverage
+.PHONY: doc install-doc coverage
# Documentation
@echo "entering doc/"
make -C doc doc
+install-doc:
+ @echo "entering doc/"
+ make -C doc install-doc
+
# Unit tests
@EFL_ENABLE_TESTS_TRUE@check-local:
+Ecore 1.7.4
+
+Changes since Ecore 1.7.3:
+--------------------------
+
+Fixes:
+ * Fix XCB compile with screensaver support
+ * Fix build without IPv6.
+ * Fix possible memory corruption in xrandr EDID functions.
+ * Backport 81304, which fixes memory errors in ecore_evas_extn
+ * Fix big rendering/conversion problem in kvm/qemu 24bpp.
+
+
Ecore 1.7.3
Changes since Ecore 1.7.2:
-Ecore 1.7.0
+Ecore 1.7.4
******************************************************************************
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for ecore 1.7.3.
+# Generated by GNU Autoconf 2.68 for ecore 1.7.4.
#
# Report bugs to <enlightenment-devel@lists.sourceforge.net>.
#
# Identity of this package.
PACKAGE_NAME='ecore'
PACKAGE_TARNAME='ecore'
-PACKAGE_VERSION='1.7.3'
-PACKAGE_STRING='ecore 1.7.3'
+PACKAGE_VERSION='1.7.4'
+PACKAGE_STRING='ecore 1.7.4'
PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
PACKAGE_URL=''
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ecore 1.7.3 to adapt to many kinds of systems.
+\`configure' configures ecore 1.7.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ecore 1.7.3:";;
+ short | recursive ) echo "Configuration of ecore 1.7.4:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ecore configure 1.7.3
+ecore configure 1.7.4
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ecore $as_me 1.7.3, which was
+It was created by ecore $as_me 1.7.4, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='ecore'
- VERSION='1.7.3'
+ VERSION='1.7.4'
cat >>confdefs.h <<_ACEOF
cat >>confdefs.h <<_ACEOF
-#define VERS_MIC 3
+#define VERS_MIC 4
_ACEOF
#define VERS_REV 0
_ACEOF
-version_info="8:3:7"
+version_info="8:4:7"
release_info=""
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ecore $as_me 1.7.3, which was
+This file was extended by ecore $as_me 1.7.4, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ecore config.status 1.7.3
+ecore config.status 1.7.4
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
m4_define([v_maj], [1])
m4_define([v_min], [7])
-m4_define([v_mic], [3])
+m4_define([v_mic], [4])
m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n' | sed 's/Unversioneddirectory/0/' | tr -d '\n']))
m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))])
##-- When released, remove the dnl on the below line
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = YES
-GENERATE_XML = NO
+GENERATE_XML = YES
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
MAINTAINERCLEANFILES = Makefile.in ecore.dox
-.PHONY: doc
+.PHONY: doc install-doc
PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc
doc-clean:
rm -rf html/ latex/ man/ xml/ $(top_builddir)/$(PACKAGE_DOCNAME).tar*
-doc: all doc-clean
+doc-build: all
$(efl_doxygen)
- cp $(srcdir)/img/* html/
- cp $(srcdir)/img/* latex/
+ cp img/* html/
+ cp img/* latex/
+
+doc: doc-build
rm -rf $(PACKAGE_DOCNAME).tar*
mkdir -p $(PACKAGE_DOCNAME)/doc
- cp -R html/ latex/ man/ $(PACKAGE_DOCNAME)/doc
+ cp -R html/ latex/ man/ xml/ $(PACKAGE_DOCNAME)/doc
tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/
bzip2 -9 $(PACKAGE_DOCNAME).tar
rm -rf $(PACKAGE_DOCNAME)/
clean-local: doc-clean
+install-doc: doc-build
+ install -d $(docdir)
+ cp -R html latex man xml $(docdir)
+
+uninstall-local:
+ rm -rf $(docdir)/html $(docdir)/latex $(docdir)/man $(docdir)/xml
+
else
doc:
@echo "Documentation not built. Run ./configure --help"
+install-doc: doc
+
endif
EXTRA_DIST = Doxyfile.in $(wildcard img/*.*) e.css head.html foot.html ecore.dox.in examples.dox
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+@EFL_BUILD_DOC_FALSE@uninstall-local:
@EFL_BUILD_DOC_FALSE@clean-local:
clean: clean-am
ps-am:
-uninstall-am:
+uninstall-am: uninstall-local
.MAKE: install-am install-strip
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- uninstall uninstall-am
+ uninstall uninstall-am uninstall-local
-.PHONY: doc
+.PHONY: doc install-doc
@EFL_BUILD_DOC_TRUE@doc-clean:
@EFL_BUILD_DOC_TRUE@ rm -rf html/ latex/ man/ xml/ $(top_builddir)/$(PACKAGE_DOCNAME).tar*
-@EFL_BUILD_DOC_TRUE@doc: all doc-clean
+@EFL_BUILD_DOC_TRUE@doc-build: all
@EFL_BUILD_DOC_TRUE@ $(efl_doxygen)
-@EFL_BUILD_DOC_TRUE@ cp $(srcdir)/img/* html/
-@EFL_BUILD_DOC_TRUE@ cp $(srcdir)/img/* latex/
+@EFL_BUILD_DOC_TRUE@ cp img/* html/
+@EFL_BUILD_DOC_TRUE@ cp img/* latex/
+
+@EFL_BUILD_DOC_TRUE@doc: doc-build
@EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME).tar*
@EFL_BUILD_DOC_TRUE@ mkdir -p $(PACKAGE_DOCNAME)/doc
-@EFL_BUILD_DOC_TRUE@ cp -R html/ latex/ man/ $(PACKAGE_DOCNAME)/doc
+@EFL_BUILD_DOC_TRUE@ cp -R html/ latex/ man/ xml/ $(PACKAGE_DOCNAME)/doc
@EFL_BUILD_DOC_TRUE@ tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/
@EFL_BUILD_DOC_TRUE@ bzip2 -9 $(PACKAGE_DOCNAME).tar
@EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME)/
@EFL_BUILD_DOC_TRUE@clean-local: doc-clean
+@EFL_BUILD_DOC_TRUE@install-doc: doc-build
+@EFL_BUILD_DOC_TRUE@ install -d $(docdir)
+@EFL_BUILD_DOC_TRUE@ cp -R html latex man xml $(docdir)
+
+@EFL_BUILD_DOC_TRUE@uninstall-local:
+@EFL_BUILD_DOC_TRUE@ rm -rf $(docdir)/html $(docdir)/latex $(docdir)/man $(docdir)/xml
+
@EFL_BUILD_DOC_FALSE@doc:
@EFL_BUILD_DOC_FALSE@ @echo "Documentation not built. Run ./configure --help"
+@EFL_BUILD_DOC_FALSE@install-doc: doc
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-cocoa
Description: E core library, Cocoa module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-con
Description: E core library, Con module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-directfb
Description: E core library, DirectFB module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-evas
Description: E core library, Evas module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-fb
Description: E core library, FB module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-file
Description: E core library, File module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-imf-evas
Description: E core library, IMF Evas module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-imf
Description: E core library, IMF module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-input-evas
Description: E core library, Input module Evas extension
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-input
Description: E core library, Input module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-ipc
Description: E core library, IPC module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-psl1ght
Description: E core library, PSL1GHT module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-sdl
Description: E core library, SDL module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-wayland
Description: E core library, Wayland module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-win32
Description: E core library, Win32 module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-wince
Description: E core library, WinCE module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore-x
Description: E core library, X module
+PACKAGE_TARNAME=@PACKAGE_TARNAME@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
+docdir=@docdir@
Name: ecore
Description: Ecore event abstraction library
Summary: Enlightened Core X interface library
Name: ecore
-Version: 1.7.3
+Version: 1.7.4
Release: %{_rel}
License: BSD
Group: User Interface/X
msgstr ""
"Project-Id-Version: ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-12-07 11:42-0200\n"
+"POT-Creation-Date: 2012-12-21 03:38-0800\n"
"PO-Revision-Date: 2011-10-23 01:28+0100\n"
"Last-Translator: Daniel Kolesa <quaker66@gmail.com>\n"
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
msgstr ""
"Project-Id-Version: ecore 0.9.9.063-2\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-12-07 11:42-0200\n"
+"POT-Creation-Date: 2012-12-21 03:38-0800\n"
"PO-Revision-Date: 2010-01-03 21:52+GMT\n"
"Last-Translator: Fabian Nowak <timystery@arcor.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: ecore 1.7.3\n"
+"Project-Id-Version: ecore 1.7.4\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-12-07 11:42-0200\n"
+"POT-Creation-Date: 2012-12-21 03:38-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-12-07 11:42-0200\n"
+"POT-Creation-Date: 2012-12-21 03:38-0800\n"
"PO-Revision-Date: 2011-11-20 22:42+0200\n"
"Last-Translator: George Rizopoulos <george.rizopoulos.1@gmail.com>\n"
"Language-Team: Greek\n"
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-12-07 11:42-0200\n"
+"POT-Creation-Date: 2012-12-21 03:38-0800\n"
"PO-Revision-Date: 2010-07-11 11:01+0400\n"
"Last-Translator: batden <batden@orange.fr>\n"
"Language-Team: Enlightenment French Team <pourunmondesansgourou@gmail.com>\n"
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-12-07 11:42-0200\n"
+"POT-Creation-Date: 2012-12-21 03:38-0800\n"
"PO-Revision-Date: 2009-10-27 19:36+0100\n"
"Last-Translator: quaker66 <quaker66@gmail.com>\n"
"Language-Team: none\n"
msgstr ""
"Project-Id-Version: Ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-12-07 11:42-0200\n"
+"POT-Creation-Date: 2012-12-21 03:38-0800\n"
"PO-Revision-Date: 2011-09-03 15:48+0100\n"
"Last-Translator: Heimen Stoffels <vistausss@gmail.com>\n"
"Language-Team: <vistausss@gmail.com>\n"
msgstr ""
"Project-Id-Version: ecore\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-12-07 11:42-0200\n"
+"POT-Creation-Date: 2012-12-21 03:38-0800\n"
"PO-Revision-Date: 2012-08-23 00:30+0100\n"
"Last-Translator: Sérgio Marques <smarquespt@gmail.com>\n"
"Language-Team: \n"
msgstr ""
"Project-Id-Version: ecore 1.0\n"
"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2012-12-07 11:42-0200\n"
+"POT-Creation-Date: 2012-12-21 03:38-0800\n"
"PO-Revision-Date: 2011-02-24 16:54+0100\n"
"Last-Translator: r1to <renato.rener@gmail.com>\n"
"Language-Team: Slovenian <sl@li.org>\n"
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
+#include <fcntl.h>
#include <ctype.h>
#ifdef __OpenBSD__
# include <sys/types.h>
if BUILD_ECORE_WIN32
ECORE_WIN32_INC = -I$(top_srcdir)/src/lib/ecore_win32
-ECORE_WIN32_LIB = $(top_builddir)/src/lib/ecore_win32/libecore_win32.la
+ECORE_WIN32_LIB = $(top_builddir)/src/lib/ecore_win32/libecore_win32.la -lgdi32
else
ECORE_WIN32_INC =
ECORE_WIN32_LIB =
@BUILD_ECORE_WIN32_FALSE@ECORE_WIN32_INC =
@BUILD_ECORE_WIN32_TRUE@ECORE_WIN32_INC = -I$(top_srcdir)/src/lib/ecore_win32
@BUILD_ECORE_WIN32_FALSE@ECORE_WIN32_LIB =
-@BUILD_ECORE_WIN32_TRUE@ECORE_WIN32_LIB = $(top_builddir)/src/lib/ecore_win32/libecore_win32.la
+@BUILD_ECORE_WIN32_TRUE@ECORE_WIN32_LIB = $(top_builddir)/src/lib/ecore_win32/libecore_win32.la -lgdi32
@BUILD_ECORE_SDL_FALSE@ECORE_SDL_INC =
@BUILD_ECORE_SDL_TRUE@ECORE_SDL_INC = -I$(top_srcdir)/src/lib/ecore_sdl @SDL_CFLAGS@
@BUILD_ECORE_SDL_FALSE@ECORE_SDL_LIB =
_ecore_evas_extn_plug_image_obj_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Ecore_Evas *ee = data;
- if (ee) ecore_evas_free(ee);
+ ecore_evas_free(ee);
}
static void
if (extn)
{
Ecore_Event_Handler *hdl;
+ Ipc_Data_Update *ipc;
if (extn->file.have_lock)
_ecore_evas_socket_unlock(ee);
shmfile_close(extn->file.shmfile);
}
+ EINA_LIST_FREE(extn->file.updates, ipc)
+ free(ipc);
+
EINA_LIST_FREE(extn->ipc.handlers, hdl)
ecore_event_handler_del(hdl);
free(extn);
}
static void
-_ecore_evas_extn_cb_free(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
- Ecore_Evas *ee;
-
- ee = data;
- if (ee->driver) _ecore_evas_free(ee);
-}
-
-static void
_ecore_evas_extn_cb_key_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
Ecore_Evas *ee = data;
evas_object_image_data_update_add(ee->engine.buffer.image,
ipc->x, ipc->y,
ipc->w, ipc->h);
+ free(ipc);
}
}
break;
EVAS_CALLBACK_MULTI_MOVE,
_ecore_evas_extn_cb_multi_move, ee);
evas_object_event_callback_add(ee->engine.buffer.image,
- EVAS_CALLBACK_FREE,
- _ecore_evas_extn_cb_free, ee);
- evas_object_event_callback_add(ee->engine.buffer.image,
EVAS_CALLBACK_KEY_DOWN,
_ecore_evas_extn_cb_key_down, ee);
evas_object_event_callback_add(ee->engine.buffer.image,
ee = ecore_event_window_match(ev->window);
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
+
if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
_ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
+ ee->in = EINA_TRUE;
+
return ECORE_CALLBACK_PASS_ON;
}
ee = ecore_event_window_match(ev->window);
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
- if (!ee->in)
- {
- if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
- ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
- evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
-// _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
- ee->in = EINA_TRUE;
- }
+
+ if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
+ ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
+ evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
+ _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
+ ee->in = EINA_TRUE;
+
return ECORE_CALLBACK_PASS_ON;
}
unsigned int mask;
unsigned int serial;
Ecore_Fd_Handler *fd_hdl;
+ Ecore_Idle_Enterer *idle_enterer;
struct wl_list inputs;
struct wl_list outputs;
/* local function prototypes */
static Eina_Bool _ecore_wl_shutdown(Eina_Bool close);
+static Eina_Bool _ecore_wl_cb_idle_enterer(void *data);
static Eina_Bool _ecore_wl_cb_handle_data(void *data, Ecore_Fd_Handler *hdl);
static void _ecore_wl_cb_handle_global(void *data, struct wl_registry *registry, unsigned int id, const char *interface, unsigned int version __UNUSED__);
static Eina_Bool _ecore_wl_xkb_init(Ecore_Wl_Display *ewd);
_ecore_wl_disp->fd = wl_display_get_fd(_ecore_wl_disp->wl.display);
- _ecore_wl_disp->fd_hdl =
- ecore_main_fd_handler_add(_ecore_wl_disp->fd,
- ECORE_FD_READ | ECORE_FD_WRITE,
- _ecore_wl_cb_handle_data, _ecore_wl_disp,
+ _ecore_wl_disp->fd_hdl =
+ ecore_main_fd_handler_add(_ecore_wl_disp->fd,
+ ECORE_FD_READ,
+ _ecore_wl_cb_handle_data, _ecore_wl_disp,
NULL, NULL);
+ _ecore_wl_disp->idle_enterer =
+ ecore_idle_enterer_add(_ecore_wl_cb_idle_enterer, _ecore_wl_disp);
+
wl_list_init(&_ecore_wl_disp->inputs);
wl_list_init(&_ecore_wl_disp->outputs);
if (_ecore_wl_disp->fd_hdl)
ecore_main_fd_handler_del(_ecore_wl_disp->fd_hdl);
+ if (_ecore_wl_disp->idle_enterer)
+ ecore_idle_enterer_del(_ecore_wl_disp->idle_enterer);
if (close)
{
return _ecore_wl_init_count;
}
-static Eina_Bool
+static Eina_Bool
+_ecore_wl_cb_idle_enterer(void *data)
+{
+ Ecore_Wl_Display *ewd;
+ int ret;
+
+ if (!(ewd = data)) return ECORE_CALLBACK_RENEW;
+
+ ret = wl_display_flush(ewd->wl.display);
+ if ((ret < 0) && (errno == EAGAIN))
+ {
+ ecore_main_fd_handler_active_set(ewd->fd_hdl,
+ (ECORE_FD_READ | ECORE_FD_WRITE));
+ }
+ else if (ret < 0)
+ {
+ /* FIXME: need do error processing? */
+ }
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool
_ecore_wl_cb_handle_data(void *data, Ecore_Fd_Handler *hdl)
{
Ecore_Wl_Display *ewd;
+ int ret;
/* LOGFN(__FILE__, __LINE__, __FUNCTION__); */
if (ecore_main_fd_handler_active_get(hdl, ECORE_FD_READ))
wl_display_dispatch(ewd->wl.display);
else if (ecore_main_fd_handler_active_get(hdl, ECORE_FD_WRITE))
- wl_display_flush(ewd->wl.display);
+ {
+ ret = wl_display_flush(ewd->wl.display);
+ if (ret == 0)
+ ecore_main_fd_handler_active_set(hdl, ECORE_FD_READ);
+ else if ((ret == -1) && (errno != EAGAIN))
+ {
+ /* FIXME: need do error processing? */
+ }
+ }
return ECORE_CALLBACK_RENEW;
}
if (((vis->_class == XCB_VISUAL_CLASS_TRUE_COLOR) ||
(vis->_class == XCB_VISUAL_CLASS_DIRECT_COLOR)) &&
- (im->depth >= 24) && (vis->red_mask == 0xff0000) &&
- (vis->green_mask == 0x00ff00) && (vis->blue_mask == 0x0000ff))
+ (im->bpp == 4) &&
+ (vis->red_mask == 0xff0000) &&
+ (vis->green_mask == 0x00ff00) &&
+ (vis->blue_mask == 0x0000ff))
{
#ifdef WORDS_BIGENDIAN
if (im->xim->byte_order == XCB_IMAGE_ORDER_MSB_FIRST) return EINA_TRUE;
rgb565,
bgr565,
rgbx555,
+ rgb888,
+ bgr888,
argbx888,
abgrx888,
rgba888x,
else if ((vis->_class == XCB_VISUAL_CLASS_TRUE_COLOR) ||
(vis->_class == XCB_VISUAL_CLASS_DIRECT_COLOR))
{
- if ((vis->red_mask == 0x00ff0000) &&
- (vis->green_mask == 0x0000ff00) &&
- (vis->blue_mask == 0x000000ff))
- mode = argbx888;
- else if ((vis->red_mask == 0x000000ff) &&
+ if (sbpp == 24)
+ {
+ if ((vis->red_mask == 0x00ff0000) &&
(vis->green_mask == 0x0000ff00) &&
- (vis->blue_mask == 0x00ff0000))
- mode = abgrx888;
- else if ((vis->red_mask == 0xff000000) &&
- (vis->green_mask == 0x00ff0000) &&
- (vis->blue_mask == 0x0000ff00))
- mode = rgba888x;
- else if ((vis->red_mask == 0x0000ff00) &&
- (vis->green_mask == 0x00ff0000) &&
- (vis->blue_mask == 0xff000000))
- mode = bgra888x;
- else if ((vis->red_mask == 0x0003f000) &&
- (vis->green_mask == 0x00000fc0) &&
- (vis->blue_mask == 0x0000003f))
- mode = argbx666;
- else if ((vis->red_mask == 0x0000f800) &&
- (vis->green_mask == 0x000007e0) &&
- (vis->blue_mask == 0x0000001f))
- mode = rgb565;
- else if ((vis->red_mask == 0x0000001f) &&
- (vis->green_mask == 0x000007e0) &&
- (vis->blue_mask == 0x0000f800))
- mode = bgr565;
- else if ((vis->red_mask == 0x00007c00) &&
- (vis->green_mask == 0x000003e0) &&
- (vis->blue_mask == 0x0000001f))
- mode = rgbx555;
+ (vis->blue_mask == 0x000000ff))
+ mode = rgb888;
+ else if ((vis->red_mask == 0x000000ff) &&
+ (vis->green_mask == 0x0000ff00) &&
+ (vis->blue_mask == 0x00ff0000))
+ mode = bgr888;
+ else
+ return EINA_FALSE;
+ }
else
- return EINA_FALSE;
+ {
+ if ((vis->red_mask == 0x00ff0000) &&
+ (vis->green_mask == 0x0000ff00) &&
+ (vis->blue_mask == 0x000000ff))
+ mode = argbx888;
+ else if ((vis->red_mask == 0x000000ff) &&
+ (vis->green_mask == 0x0000ff00) &&
+ (vis->blue_mask == 0x00ff0000))
+ mode = abgrx888;
+ else if ((vis->red_mask == 0xff000000) &&
+ (vis->green_mask == 0x00ff0000) &&
+ (vis->blue_mask == 0x0000ff00))
+ mode = rgba888x;
+ else if ((vis->red_mask == 0x0000ff00) &&
+ (vis->green_mask == 0x00ff0000) &&
+ (vis->blue_mask == 0xff000000))
+ mode = bgra888x;
+ else if ((vis->red_mask == 0x0003f000) &&
+ (vis->green_mask == 0x00000fc0) &&
+ (vis->blue_mask == 0x0000003f))
+ mode = argbx666;
+ else if ((vis->red_mask == 0x0000f800) &&
+ (vis->green_mask == 0x000007e0) &&
+ (vis->blue_mask == 0x0000001f))
+ mode = rgb565;
+ else if ((vis->red_mask == 0x0000001f) &&
+ (vis->green_mask == 0x000007e0) &&
+ (vis->blue_mask == 0x0000f800))
+ mode = bgr565;
+ else if ((vis->red_mask == 0x00007c00) &&
+ (vis->green_mask == 0x000003e0) &&
+ (vis->blue_mask == 0x0000001f))
+ mode = rgbx555;
+ else
+ return EINA_FALSE;
+ }
}
for (row = 0; row < h; row++)
{
break;
case 24:
+ s8 = ((unsigned char *)(((unsigned char *)src) + ((y + row) * sbpl))) + (x * (sbpp / 8));
+ switch (mode)
+ {
+ case rgb888:
+ while (dp < de)
+ {
+ *dp = 0xff000000 | (s8[2] << 16) | (s8[1] << 8) | s8[0];
+ s8 += 3; dp++;
+ }
+ break;
+ case bgr888:
+ while (dp < de)
+ {
+ *dp = 0xff000000 | (s8[0] << 16) | (s8[1] << 8) | s8[2];
+ s8 += 3; dp++;
+ }
+ break;
+ default:
+ return EINA_FALSE;
+ break;
+ }
+ break;
+
case 32:
s32 = ((unsigned int *)(((unsigned char *)src) +
((y + row) * sbpl))) + x;
break;
}
break;
- break;
default:
return EINA_FALSE;
edid_name = (const char *)block +
_ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK_CONTENT;
name =
- malloc(sizeof(char) *
- _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX);
+ malloc(_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX + 1);
if (!name) return NULL;
strncpy(name, edid_name,
- (_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX - 1));
+ _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX);
name[_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX] = 0;
for (p = name; *p; p++)
if ((*p < ' ') || (*p > '~')) *p = 0;
(_ecore_xcb_conn,
((xcb_screen_t *)_ecore_xcb_screen)->root,
-9999, -9999, 1, 1, 0,
- XCB_WINDOW_CLASS_INPUT_ONLY.
+ XCB_WINDOW_CLASS_INPUT_ONLY,
XCB_COPY_FROM_PARENT, XCB_COPY_FROM_PARENT,
0, mask_list);
return EINA_TRUE;
im->bpp = 1;
else if (im->xim->bits_per_pixel <= 16)
im->bpp = 2;
- else
+ else if (im->xim->bits_per_pixel <= 24)
+ im->bpp = 3;
+ else
im->bpp = 4;
}
if (!im->xim) _ecore_x_image_shm_create(im);
if (((vis->class == TrueColor) ||
(vis->class == DirectColor)) &&
- (im->depth >= 24) &&
+ (im->bpp == 4) &&
(vis->red_mask == 0xff0000) &&
(vis->green_mask == 0x00ff00) &&
(vis->blue_mask == 0x0000ff))
rgb565,
bgr565,
rgbx555,
+ rgb888,
+ bgr888,
argbx888,
abgrx888,
rgba888x,
else if ((vis->class == TrueColor) ||
(vis->class == DirectColor))
{
- if ((vis->red_mask == 0x00ff0000) &&
- (vis->green_mask == 0x0000ff00) &&
- (vis->blue_mask == 0x000000ff))
- mode = argbx888;
- else if ((vis->red_mask == 0x000000ff) &&
+ if (sbpp == 24)
+ {
+ if ((vis->red_mask == 0x00ff0000) &&
(vis->green_mask == 0x0000ff00) &&
- (vis->blue_mask == 0x00ff0000))
- mode = abgrx888;
- else if ((vis->red_mask == 0xff000000) &&
- (vis->green_mask == 0x00ff0000) &&
- (vis->blue_mask == 0x0000ff00))
- mode = rgba888x;
- else if ((vis->red_mask == 0x0000ff00) &&
- (vis->green_mask == 0x00ff0000) &&
- (vis->blue_mask == 0xff000000))
- mode = bgra888x;
- else if ((vis->red_mask == 0x0003f000) &&
- (vis->green_mask == 0x00000fc0) &&
- (vis->blue_mask == 0x0000003f))
- mode = argbx666;
- else if ((vis->red_mask == 0x0000f800) &&
- (vis->green_mask == 0x000007e0) &&
- (vis->blue_mask == 0x0000001f))
- mode = rgb565;
- else if ((vis->red_mask == 0x0000001f) &&
- (vis->green_mask == 0x000007e0) &&
- (vis->blue_mask == 0x0000f800))
- mode = bgr565;
- else if ((vis->red_mask == 0x00007c00) &&
- (vis->green_mask == 0x000003e0) &&
- (vis->blue_mask == 0x0000001f))
- mode = rgbx555;
+ (vis->blue_mask == 0x000000ff))
+ mode = rgb888;
+ else if ((vis->red_mask == 0x000000ff) &&
+ (vis->green_mask == 0x0000ff00) &&
+ (vis->blue_mask == 0x00ff0000))
+ mode = bgr888;
+ else
+ return EINA_FALSE;
+ }
else
- return EINA_FALSE;
+ {
+ if ((vis->red_mask == 0x00ff0000) &&
+ (vis->green_mask == 0x0000ff00) &&
+ (vis->blue_mask == 0x000000ff))
+ mode = argbx888;
+ else if ((vis->red_mask == 0x000000ff) &&
+ (vis->green_mask == 0x0000ff00) &&
+ (vis->blue_mask == 0x00ff0000))
+ mode = abgrx888;
+ else if ((vis->red_mask == 0xff000000) &&
+ (vis->green_mask == 0x00ff0000) &&
+ (vis->blue_mask == 0x0000ff00))
+ mode = rgba888x;
+ else if ((vis->red_mask == 0x0000ff00) &&
+ (vis->green_mask == 0x00ff0000) &&
+ (vis->blue_mask == 0xff000000))
+ mode = bgra888x;
+ else if ((vis->red_mask == 0x0003f000) &&
+ (vis->green_mask == 0x00000fc0) &&
+ (vis->blue_mask == 0x0000003f))
+ mode = argbx666;
+ else if ((vis->red_mask == 0x0000f800) &&
+ (vis->green_mask == 0x000007e0) &&
+ (vis->blue_mask == 0x0000001f))
+ mode = rgb565;
+ else if ((vis->red_mask == 0x0000001f) &&
+ (vis->green_mask == 0x000007e0) &&
+ (vis->blue_mask == 0x0000f800))
+ mode = bgr565;
+ else if ((vis->red_mask == 0x00007c00) &&
+ (vis->green_mask == 0x000003e0) &&
+ (vis->blue_mask == 0x0000001f))
+ mode = rgbx555;
+ else
+ return EINA_FALSE;
+ }
}
for (row = 0; row < h; row++)
{
break;
case 24:
+ s8 = ((unsigned char *)(((unsigned char *)src) + ((y + row) * sbpl))) + (x * (sbpp / 8));
+ switch (mode)
+ {
+ case rgb888:
+ while (dp < de)
+ {
+ *dp = 0xff000000 | (s8[2] << 16) | (s8[1] << 8) | s8[0];
+ s8 += 3; dp++;
+ }
+ break;
+ case bgr888:
+ while (dp < de)
+ {
+ *dp = 0xff000000 | (s8[0] << 16) | (s8[1] << 8) | s8[2];
+ s8 += 3; dp++;
+ }
+ break;
+ default:
+ return EINA_FALSE;
+ break;
+ }
+ break;
+
case 32:
s32 = ((unsigned int *)(((unsigned char *)src) + ((y + row) * sbpl))) + x;
switch (mode)
break;
}
break;
- break;
default:
return EINA_FALSE;
const char *edid_name;
edid_name = (const char *)block + _ECORE_X_RANDR_EDID_OFFSET_DESCRIPTOR_BLOCK_CONTENT;
- name = malloc(sizeof(char) * _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX);
+ name = malloc(_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX + 1);
if (!name) return NULL;
- strncpy(name, edid_name, (_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX - 1));
+ strncpy(name, edid_name, _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX);
name[_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX] = 0;
for (p = name; *p; p++)
{
* TODO: Two of these in a row, in the third and fourth slots,
* seems to be specified by SPWG: http://www.spwg.org/
*/
- ascii = malloc(sizeof(char) * _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX);
+ ascii = malloc(_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX + 1);
if (!ascii) return NULL;
- strncpy(ascii, edid_ascii, (_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX - 1));
+ strncpy(ascii, edid_ascii, _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX);
ascii[_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX] = 0;
for (p = ascii; *p; p++)
{
* TODO: Two of these in a row, in the third and fourth slots,
* seems to be specified by SPWG: http://www.spwg.org/
*/
- serial = malloc(sizeof(char) * _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX);
+ serial = malloc(_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX + 1);
if (!serial) return NULL;
- strncpy(serial, edid_serial, (_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX - 1));
+ strncpy(serial, edid_serial, _ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX);
serial[_ECORE_X_RANDR_EDID_DISPLAY_DESCRIPTOR_BLOCK_CONTENT_LENGTH_MAX] = 0;
for (p = serial; *p; p++)
{