Scenario:
- Same signal/function/data registered twice on e.g mouse_down
- On mouse_down, register mouse_move and mouse_up
- On mouse_up, unregister mouse_move
Result: mouse_move still invoked after mouse_up
Reason:
- When the mouse_move callback deletion is required, the cb is
flagged as deleted but is not freed as walking_list blocks.
- When the second (and same) has to be deleted, it will try to delete
the first again because the delete_me flag is not checked.
This patch fixes it by checking the delete_me flag when determining the
candidate.
@fix
while the window map event seemed like a reasonable place to unset
the withdrawn state at the time, studies and further tests have proven
that the direct show callback is even more reasonable and effective
ref T2745
according to ICCCM 4.1.4:
Newly created top-level windows are in the Withdrawn state.
Once the window has been provided with suitable properties,
the client is free to change its state...
...
Only the client can effect a transition into or out of the Withdrawn state
given that no external force can (according to spec) transition a
window out of the withdrawn state, this must be done at a reasonable
point. mapping the window seems like a reasonable point to me.
fix T2745
ref 5954289c6c
@fix
Summary:
Edje entry: Make cursors to null after free
To prevent any illegal access of cursors
can lead to crash
@fix
Test Plan: NA
Reviewers: tasn
Reviewed By: tasn
Subscribers: shilpasingh, cedric
Differential Revision: https://phab.enlightenment.org/D3093
@feature
this makes the gl engine by default not do bounding box, but instead
try and smartly merge nearby update regions. this means multiple
render passes IF your drivers support buffer age, but it seems to
actually help. in my test case on nvidia drivers which support buffer
age, i saw compositor cpu overhead drop by about 30%
marking images as dirty is only meant to have the pixle get callback
called IF rendered. you ADD update regions to get it to be called.
this is how it has always meant to work, but evas image objects where
adding updates just if dirty. this ends up with e as a compositor
redrawing ENTIRE eindows if even a single blinking cursor is blinking.
oh so bad.
@fix
Summary:
Evas_Smart_Data retrieved from eo_data_scope_get might be NULL
in case the input Evas_Object is not valid Evas_Object.
The smart data gets dereferenced and can cause a crash if its NULL
Hence return in case smart data is NULL.
@fix
Signed-off-by: Mrunal Sovani <mrunal.s@samsung.com>
Reviewers: raster, Hermet, tasn
Reviewed By: tasn
Subscribers: singh.amitesh, cedric, sachin.dev
Differential Revision: https://phab.enlightenment.org/D3106
Summary:
Bug reproduce if delete evas_gl_3d_shaders.x and try re-build.
Source file include.shd for generation shader code consist m4 macro definitions.
After this revision https://phab.enlightenment.org/D3056 order of the quatation
marks in function pcf was broken.
@fix
Reviewers: cedric, Hermet
Reviewed By: Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3085
this optimizes draw ctxt cutouts by skipping small ones and
remembering the last cutout added so it isn't double-added as well as
extending the minimum cutout array to 512 and going up in blocks of
512 instead of 128. also optimize the clipping code a bit more.
this move evas tiler that does update handling to use fully correct
regions using region.[xh]. this also removed old unused regionbuf code
and a bunch of commented out code no longer needed. much simpler now
and easier to maintain.
Summary:
The assignment of NULL will have no effect on the caller. So removed that statment.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3095
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
strcat will look for the null-terminator, interpret that as the end of the string, and append the new text there, overwriting the null-terminator in the process, and writing a new null-terminator at the end of the concatenation. buf is uninitialized, so it might start with NULL, or it might not have NULL anywhere within it. So this might produce undefined behaviour. So replaced with strncpy.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3094
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Checking if client is NULL before freeing is not of much use. If it is NULL, it would have crashed before when it was dereferenced in printf. So checking NULL before dereferencing.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3088
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Its value is never modified directly and should not be modifiled by mistake
in future.
@fix
Reviewers: Hermet, raster, reutskiy.v.v, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3104
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This doesn't quite work yet as path sanitization needs to be done for it to
work correctly. For now this code path is disabled and will be enabled once
all paths are correctly sanitized.
Summary:
If the connection between server and client has problems, wl_display_dispatch
an return negative value. i.e. when enlightenment has been killed accidently.
In this case, app can enter into infinite loop.
Signed-off-by: Boram Park <boram1288.park@samsung.com>
Reviewers: stefan_schmidt, zmike, gwanglim, raster, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3078
Summary:
If the connection between server and client has problems, wl_display_dispatch
an return negative value. i.e. when enlightenment has been killed accidently.
In this case, app can enter into infinite loop.
Signed-off-by: Boram Park <boram1288.park@samsung.com>
Reviewers: stefan_schmidt, zmike, gwanglim, raster, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3077
Before, ipc_server_data(fd handler callback) is not runned between
evas_render_pre callback and evas_render_post callback.
but after async mode, hd handler can be called between render_pre and render_post.
we should remove buffer which can be used render thread, after render finished
Summary:
When we call dbus_connection_send_with_reply, the dbus_pending
can be NULL. In this case, the next call dbus_pending_call_set_notify
will cause application crash.
We should check if dbus_pending is NULL before calling dbus API.
@fix
Reviewers: cedric
Subscribers: englebass, cedric, seoz
Differential Revision: https://phab.enlightenment.org/D3081
Summary:
The keys Home/End/PgUp/PgDown are changes the entry cursor
position in the same way as arrow keys. For unified behavior
callback "cursor,changed,manual", added emitting signal for
those keys events.
Reviewers: tasn, cedric, herdsman, thiepha
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3055
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's.
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's.
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's.
TODO:
* separate edje_edit_state_container_padding_get/set
* separate edje_edit_state_container_align_set/set
* separate edje_edit_part_item_position_get/set
* separate edje_edit_part_item_span_get/set
Summary: Implement basic kqueue/kevent backend for eio. When it comes to tracking directory changes, this backend falls back to the polling one.
Test Plan: Ran Enlightenment for several days and some other EFL apps without any issue.
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Projects: #e_on_freebsd, #efl
Differential Revision: https://phab.enlightenment.org/D2983
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
If realloc fails, it returns NULL. Then whatever the memory the ignore_list was pointing to would be leaked. So freeing it now.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: stefan_schmidt, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3012
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Previous implementation assumed that fallback interface path should be changed
on every method call. This is generally not needed since real request
path can be obtained directly from dbus message passed as method call
paremeter.
This patch reverts this behaviour and additionally fix broken Property and Introspect
interface handling of fallback interface.
Reviewers: raster, lucasdemarchi, cedric
Subscribers: cedric, seoz
Differential Revision: https://phab.enlightenment.org/D3016
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
@feature
Test Plan:
eina_tmpstr_strftime API can be used to create a temporary string
which is updated with strftime output
eina_tmpstr_steal can be used to get actual string set in eina_tmpstr
Reviewers: cedric
Subscribers: rajeshps, cedric, govi
Differential Revision: https://phab.enlightenment.org/D3048
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
edje_edit_save_all includes source code generation that is way more expensive
than save itself. User should be able to save manually with or without sources
Reviewers: cedric, Hermet, seoz, reutskiy.v.v
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3051
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
IFD offset is 4 byte.
But just one byte is checked for it in previous patch.
Reviewers: Hermet, jypark, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3053
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>