Commit Graph

52920 Commits

Author SHA1 Message Date
Jean-Philippe Andre 437ae4a3d3 elm_test: Add a test case for Emojis
Yay to full color characters. The list of selected emojis is
quite random. Some more could be added.

Just two remarks:
- Aren't they supposed to scale down?
- Why is my grinning face always ugly?
2017-03-08 19:21:24 +09:00
Jean-Philippe Andre 49e7a8ee69 evas gl: Add missing GLES 3.1 definitions
Evas_GL_API supports the GLES 3.1 functions but the required
macros were not present. Thanks Brokenshakles for the tip.
2017-03-08 18:36:03 +09:00
Youngbok Shin a7b501d947 naviframe: keep unfocusable state of item before finishing item push/pop
If item pop was started without focus at a naviframe object
and the naviframe object got focus before finising item pop,
the naviframe object could give focus to its first object of prev item.
It could ruin focus orders and failed to restore previous focused
object in the item.
To keep consistency of focus policy, same logic will be applied to
item push scenario.
@fix

Change-Id: Ia74bdce3620bd59622ef32a0cedf5fbd84815400
2017-03-08 17:26:59 +09:00
Jean-Philippe Andre 99d21f6d9c evas: Print CRI message in case of bad event usage
This will abort E when using Bryce and EINA_LOG_ABORT is enabled
(it is enabled by default when running a non-release version of E).
That's on purpose, as that code needs fixing :)

Ref T3144
2017-03-08 17:04:57 +09:00
Jean Guyomarc'h b9ab5f68af ecore_evas_cocoa: remove a lot of useless code
I still don't know what's going on with the rendering problems, but
at least now  I have less dead code in my way...
2017-03-08 08:59:59 +01:00
Jean Guyomarc'h 1c772ddd3d ecore_evas_cocoa: set the render func at initialization 2017-03-08 08:59:59 +01:00
Jean Guyomarc'h 85110c7dd9 ecore_evas: process mouse move even when there is no cursor 2017-03-08 08:59:59 +01:00
Jean-Philippe Andre 8b9361e75c tests: Don't print garbage
GLView tends to print some random garbage when using the
GLView Gears test. That's because we're allocating and printing
a 0 byte buffer. Don't do that.
2017-03-08 15:51:02 +09:00
Jean-Philippe Andre 265c851a8f evas gl: Fix version detection for GLES 3.1
It was assumed that GLES 3 would only work with EGL but in fact
OpenGL 4.3 & 4.5 are supersets of GLES 3.0 & 3.1 respectively. So
GLX should also support GLES 3.0 or GLES 3.1 for evas gl, if the
driver supports it, of course.

Of course while doing this patch things didn't go like they were
supposed to go. I'm currently using NVIDIA's proprietary driver,
that conveniently provides EGL with GLES 3.2. But wait, there's
a catch: GL_VERSION is "OpenGL ES 3.2 NVIDIA" except that none
of the functions of GLES 3.1 or GLES 3.2 are actually supported.
Those functions are only present in the GLX/OpenGL variant of the
driver. Thanks so much for making my life easier...

So yeah, this patch contains a hack for those invalid versions
of GLES 3.x. What was supposed to be a small fix became a huge
mess.

Also add a comment about the possibly invalid auto-upgrade from
GLES 2 to GLES 3.

This adds a test case in elm_test, but only to verify that
elm_glview_version_add(3) actually works. We need a proper GLES 3
test case, eventually (and 3.1, 3.2 of course).
2017-03-08 15:44:39 +09:00
Jean-Philippe Andre 9dcf2d3965 evas: Set thread name for preload
This can be useful during debugging.
2017-03-08 11:25:40 +09:00
Jean Guyomarc'h 566b23dcb8 ecore_evas/x: don't mark as unused a used parameter 2017-03-07 20:23:12 +01:00
Jean Guyomarc'h 6f80616a4d ecore_evas/cocoa: fix cursor's visibility
Fixes T5238
2017-03-07 20:23:12 +01:00
Cedric BAIL 4e1567b41e ecore: switch back to use ecore_thread_wait.
We need to make sure that we wait properly on the animator thread
otherwise we end up with the animator finish callback being called
later on during the shutdown process which means trouble.
2017-03-07 11:08:52 -08:00
Daniel Kolesa bf7b3e5dfc docgen: include C usage snippet on event pages 2017-03-07 17:15:24 +01:00
Daniel Kolesa 2b02dd56fd docgen: better event C info, show private/protected in listing 2017-03-07 16:42:22 +01:00
Chris Michael 927dc167ec ecore-wl2: Remove some debugging printouts
These prints were left over from
5b9374583e and should not have been pushed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-03-07 08:19:26 -05:00
Jaehyun Cho f3647f24d5 edje_cc_parse: Support edje_cc in path containing space character
Previously, edje_cc in a path containing space character was not
supported. (e.g. "/usr/local/s p a c e/bin/edje_cc")

Now, to resolve above issue, edje_cc path is treated with double
quotation marks.

On Windows, if command begins with double quotation marks, then the
first and the last double quotation marks may be either deleted or not.
(See "help cmd" on Windows.)
Therefore, to preserve the string between the first and the last double
quotation marks, "cmd /S /C" and additional outer double quotation marks
are added.
2017-03-07 19:46:19 +09:00
Ivan Furs 3d6212b8f2 removing duplicates winsock2.h
Summary:
winsock2.h included in Ecore.h
But Ecore.h ' is included in
/bin/efreet/efreet_desktop_cache_create.c
src/bin/efreet/efreet_mime_cache_create.c
src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c

Reviewers: NikaWhite, cedric, raster, an.kroitor

Reviewed By: raster

Subscribers: artem.popov, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4687
2017-03-07 13:59:54 +09:00
Jean-Philippe Andre aacd25ef6b evas: Fix layer usage count and deletion
When using smart objects (quite likely, isn't it?), the internal
layer usage count was not perfectly tracked. This was especially
true if layer_set() was called on a (top-level) smart object.
As a consequence, there could be no objects in the layer but the
usage would still be > 0. Thus, the layer was not deleted, not
removed from the inlist of layers, and efl_gfx_stack_above_get()
could return NULL as the layer above a certain object was empty.

Fixes T5201
2017-03-07 11:04:34 +09:00
Cedric Bail 500401364d elementary: fix tests build. 2017-03-06 17:03:19 -08:00
Jean Guyomarc'h ccbab08a4b ecore: fix build when debugging threads 2017-03-07 00:52:28 +01:00
Ivan Furs 8a10ef10cb eina_file: delete handle->fm(handel of function CreateFileMapping)
Summary: CreateFileMapping return handle. The handle before use is always closed. This handle can be immediately closed after use.

Reviewers: cedric, raster, vtorri, rimmed, an.kroitor, FurryMyad, NikaWhite

Reviewed By: raster

Subscribers: artem.popov, cedric, jpeg

Tags: #windows

Differential Revision: https://phab.enlightenment.org/D4699
2017-03-06 19:18:46 +09:00
Ivan Furs f7c1ac94f7 eet_lib: changed unlink to eina_file_unlink
Summary: changed unlink to eina_file_unlink

Reviewers: cedric, raster, an.kroitor, rimmed, FurryMyad, NikaWhite, vtorri

Subscribers: artem.popov, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4698
2017-03-06 18:02:11 +09:00
Jean-Philippe Andre 1bfce47bf3 evas: Fix non-disappearance of text entry cursor
The mouse cursor in a text entry tends to not disappear even when
the mouse moves out of the entry. This seems to happen more when
the cursor was visible for a single frame only (although I'm not
100% sure about this condition).

One important difference with previous versions of EFL is that
the cursor is now part of the theme, so it is an image object
and not set by the compositor (it looks vastly different).

Anyway, when processing the list of pending_objects, we look at
the flags render_pre and rect_del which were (re)set during the
previous frame. Those flags are then (re)set during phase 1 which
happens after processing the pending objects list... only if
needed. So, phase 1 sets the condition to invalidate the current
lists of objects but that condition is checked for before phase 1.

This patch adds a check on delete_me which should hopefully make
it a rare enough case, for performance, but still force correct
rendering.

This is all spaghetti code, sorry if this explanation also reads
like pasta.

Note that exactness tests may still be broken because earlier
versions of EFL simply did not have the cursor inside the canvas
itself.

Fixes T5231
2017-03-06 17:04:26 +09:00
Jean-Philippe Andre 38446d8daf tests: Remove CPU affinity from all threads
I believe that all the threads created in our test suite should
be spawned without any special CPU affinity. The default parameter
is not 0 (corresponds to the first CPU, known as CPU 0) but -1.

Similarily the default priority is NORMAL (1), not 0 (URGENT).

This also affects two unused code paths: evas render2 and gl preload.

@fix
2017-03-06 17:03:47 +09:00
Jiyoun Park a6c0e9b067 ecore_evas_extn: add shared lock mode to the ecore_extn.
Currently, ecore_evas_extn only use exclusive lock.
so if there are many ecore_extn_plugs , there is competition among the ecore_extn_plugs.
since the ecore_extn_plugs dont need to use exclusive lock, add the shred lock mode.
2017-03-06 12:39:53 +09:00
Andy Williams c19d3b402a elm_code: Fix missing syntax for .eo files
This was accidentally removed in the transition from edi.
using text/x-eolian which is not well reported by the FS yet.
@fix
2017-03-04 15:42:33 +00:00
Derek Foreman 3c3808acc5 ecore_evas_wayland: fix session recovery crash with async render
We need a display unset path for software render to prevent an async
render completing after a disconnect from posting a frame and crashing
us.

As of this commit both software and gl session recovery work for me.

fix T5005

 #SessionRecoveryWorksHere
2017-03-03 13:30:01 -06:00
Derek Foreman 706a1a33a4 ecore_evas_wayland: Use surface from engine info
Calling ecore_wl2_window_surface_get() has the side effect of creating
a new wayland surface if we don't already have one.  If we do that
during a session recovery, we can try to create a new surface while
we have no connection to a compositor - that's Bad.

So we just use the one we already have stored - which we NULL out on
disconnect.
2017-03-03 13:30:01 -06:00
Derek Foreman f53f873b58 wayland_egl: recreate outbuf on session restore
If we get an eng_update with no outbuf, try to create one.
2017-03-03 13:30:00 -06:00
Derek Foreman 18224858f3 wayland_egl: Destroy the outbuf when we lose our surface
This way we properly shut down when we get disconnected from the
compositor, and can reconnect later.
2017-03-03 13:30:00 -06:00
Derek Foreman eacd67498c wayland_egl: Don't crash when asked to dump with no outbuf
Another session recovery corner case.
2017-03-03 13:30:00 -06:00
Derek Foreman 1639e99305 wayland_egl: Don't crash if gl context queried when no outbuf
We can get here on session restore when we haven't had a chance
to recreate the outbuf yet.
2017-03-03 13:30:00 -06:00
Derek Foreman 49e7932c86 gl_generic: Add null checks in some cache functions
When wayland session recovery happens, we can end up down this path
with no gl context when elm reprocesses its config file.

That callback fires long before we've re-set up our wayland connection
so we can't possibly have a valid gl context yet.

Prevent that from crashing.
2017-03-03 13:30:00 -06:00
Mike Blumenkrantz e263cbf9d0 Revert "ecore: forcefully flush pending event when ecore_shutdown is called."
This reverts commit 2c6808e4ee.

this breaks a number of expectations and guarantees in efl:

* causes unexpected event iteration during app startup before main loop begins
  - leads to event loss
* causes unexpected event iteration during app shutdown after main loop quits
  - leads to invalid memory access
* causes recursive event iteration during event handler callbacks
  - leads to ?????????????????????????????????????????????????????????????????

all of these can be easily seen by running enlightenment, and all of these cause
unexpected behaviors in enlightenment including, but not limited to, a lot of crashes

fix T5232
2017-03-03 11:56:04 -05:00
Daniel Kolesa 3d3ea8dd92 docgen: run types/vars together with classes in parallel script 2017-03-03 17:51:50 +01:00
Daniel Kolesa 0a252c4463 docgen: add a simple script that does doc generation in parallel 2017-03-03 17:46:40 +01:00
Daniel Kolesa bfeddb8e09 docgen: only parse the necessary class when generating only one 2017-03-03 17:34:40 +01:00
Daniel Kolesa 7ef2e4dfd4 docgen: do not generate foreign classes' functions and events
Only generate the classes' own funcs/events (and overridden). Let other
classes generate their own stuff. This prevents some files from being
generated multiple times, which more than halves generation time.
2017-03-03 16:36:47 +01:00
Daniel Kolesa 81c84999fd docgen: add a pass to generate individual classes 2017-03-03 16:35:03 +01:00
Daniel Kolesa bc7561d8d5 docgen: add clist pass to list all classes 2017-03-03 16:18:21 +01:00
Daniel Kolesa ea436e49d1 docgen: initial support for multipass gen 2017-03-03 16:16:05 +01:00
Daniel Kolesa 79f10fc0a0 docgen: move stats and keyref build into later stage
That way we can multipass the doc build without worrying about stats.
2017-03-03 15:53:59 +01:00
Jiyoun Park ffa2d37462 ecore_evas_wayland: remove useless code 2017-03-03 12:44:35 +09:00
Jiyoun Park 89c6a316f6 ecore_evas_wayland: remove useless code 2017-03-03 11:28:52 +09:00
Jiyoun Park fb730c1fd7 ecore_evas_wayland: fix bug ee's width and height were updated wrong place.
ecore evas manages the width and height using the ee->w/h and ee->req.w/h.
but sometimes only ee->req value can be updated.
2017-03-03 11:06:50 +09:00
Jihoon Kim 591db71120 ecore_imf/xim: Fix memory leak
64 bytes in 1 blocks are definitely lost in loss record 152 of 258
   at 0x4C2AB80: malloc (vg_replace_malloc.c:296)
   by 0xC786A77: ??? (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
   by 0xC78747B: _XimDecodeIMATTRIBUTE (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
   by 0xC77A7EF: ??? (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
   by 0xC767771: XGetIMValues (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
   by 0x113CFE09: ???
   by 0x113D08F7: ???
   by 0x83DD329: ecore_imf_context_client_window_set (ecore_imf_context.c:240)
   by 0x530779D: _edje_entry_real_part_init (edje_entry.c:2937)
   by 0x5311C20: _edje_object_file_set_internal (edje_load.c:1079)
   by 0x5328665: _edje_object_efl_file_mmap_set (edje_smart.c:438)
   by 0x775BD3A: efl_file_mmap_set (in /usr/local/lib/libefl.so.1.18.4)
2017-03-03 10:12:30 +09:00
Marcel Hollerbach 097f9cfe5f ecore_thread: do not override the data field of a thread
otherwise a currently executed ecore_thread is going to pass a complete
wrong data to its callbacks.

fix T5175
fix T5173
2017-03-02 20:13:58 +01:00
Guilherme Iscaro 347c75fbe3 Efl.Canvas.Object: Multi-seat API should not be exposed to legacy.
Summary: This new kind of APIs should be EO only.

Reviewers: jpeg, cedric, barbieri, bdilly, stefan_schmidt

Reviewed By: cedric, barbieri

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4696

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-03-02 11:06:20 -08:00
Daniel Kolesa 3f5e1b4e1e docgen: add info about protected/private methods/properties in listing 2017-03-02 16:34:22 +01:00