It is proper when the EVAS_CALLBACK_RESIZE is called instead of _pan_smart_resize.
When the _pan_smart_resize is called, the geometry of an object is not changed.
So the widget use the signal can miss-calculate the size.
https://phab.enlightenment.org/T133
list_itc and grid_itc are static variables, but they were managed by file_selector instance.
For example, they are allocated two times and first allocated classes are dangling
when two file selector are created.
This patch moves their init/deinit logic to constructor/destructor of file selector class.
and vice versa. Avoids some warnings in clang and it helps see that
these are actually different types.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
elm_gesture_layer_cb_add/del functions have been added to provide this
functionality.
elm_gesture_layer_cb_set provided only one callback and so was
overriding the callback with the new one.
For ABI compatibility, some rules were needed:
- when set function is called with NULL, all the callbacks of the state will be
removed (old behavior respect)
- try to use set or add/del exclusively with a preference to the new
APIs. This is because of the first rule and because it will be more correct.
- if you remove a callback, only one instance of this callback of this
type/state for this gesture will be removed, by comparing func and data.
It means that if you register twice the same callback/data, it will be added
twice and you will have to remove also twice too.
Because _timer_init() can be called multiple times,
sd->timer should be cleard if we will not add new timer
This fixes https://phab.enlightenment.org/T178
Thanks brian.lovin for the report.
stacking become a lot more complex when re-order mode was added, group
headers and more, so simple raise/lower wasn't enough, so this adds 2
stacking markers (rectangles) and objects are stacked above or below
these 2 markers. that basically provides 4 possible stacking slots
that are easy to address, and if you also still raise/lower you get 6
slots. use these markers for stacking so items go into a fixed
stacking layer when they stack around.
We still report the topmost/leftmost page, but DURING animations we
return which of the competing pages on the top, left edge get the
majority of their regions in the viewport.
If _pointer_even_make is false pe stays NULL and might get dereferenced
later. Instead we return now if _pointer_event_make fails.
Thanks to Tom for consulting with the gesture layer code.
px and py might not be set if X support is not compiled in and
ecore_x_pointer_xy_get() is not called. In that case make sure they are
not used uninitialized.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
For example, colors_set changed RGBA five times (The first is in colors_set itself,
the others are in _hsl_to_rgb which called by _rectangle_redraw).
First, this patch splits _rectangle_redraw to 3 separate functions,
_update_colorbars, _update_hsla_from_colorbar and _update_ergb.
So only proper functions will be called instead of _rectangle_redraw.
Second, SIG_CHANGED will be called when RGBA was only changed.
When several mouse move events arrive with the same timestamps, the
calculation done to get an average of movement will try to divide things
by zero. This fix will make it ignore this calculation and just go back
to assuming that there's only one last move event.
Such behavior can happen on wayland backend, when using the X11 backend
for Weston, since it will process several X events in one loop iteration
and send all of them with the same timestamp.
Summary: This patch fixes a segfault that happens when you create a flipselector theme without an "elm.top" part.
Reviewers: cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D156
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
THE LAST COMMIT OF ELM_SAFE_FREE STREAM.
I double checked all of my previous commits but if there is any issue, please contact me on irc #edevelop with SeoZ or SeoZ[galaxyS3].
Thanks.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
In this commit, I used ELM_SAFE_FREE even inside shutdown function.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
1. ELM_FREE_FUNC -> ELM_SAFE_FREE
2. There were a lot of suggestions and consideration in the mailing list.
ELM_SAFE_FREE will be used only when it checks the pointer, deletes it, and initializes it to NULL.
ex)
if (timer)
{
ecore_timer_del(timer);
timer = NULL;
}
=>
ELM_SAFE_FREE(timer, ecore_timer_del);
My first aim was to remove many human mistakes but it looks like people want more optimized code in a code level.
So this macro will be used only for reducing 5 lines of code into 1 line.
Otherwise, I will just call xxx_del() manually.
3. ELM_SAFE_FREE can be used for other del or free functions such as ecore_job_del, ecore_animator_del, eina_stringshare_del, free, ...
Apps like setting want to change gesture tap timeout value on runtime.
So I added below APIs.
elm_config_glayer_long_tap_start_timeout_set/get
elm_config_glayer_double_tap_timeout_set/get
As document mentioned, "changed" should be emitted when the color value is changed.
So, this patch emits "changed" signal when color value is really changed.
In addition, fixed some formatting issue of test_colorselector.
There are pros and cons but this
1. reduces human mistakes.
2. enhances readability.
3. enhances code quality.
4. removes future bug.
5. was adopted from enlightenment.
This is not all. I will work on enhancing elementary more and more.
When we call elm_entry_markup_filter_remove() with internally defined filter callbacks,
it doesn't work. So we need a one of pointer for saving the address of data.
10 Elm_Entry_Filter_Limit_Size lim;
11 lim.max_char_count = 20;
12 lim.max_byte_count = 0;
13 elm_entry_markup_filter_append(en, elm_entry_filter_limit_size,
&lim);
14
15 elm_entry_markup_filter_remove(en, elm_entry_filter_limit_size,
&lim);
16 lim.max_char_count = 50;
17 lim.max_byte_count = 0;
18 elm_entry_markup_filter_append(en, elm_entry_filter_limit_size,
&lim);
In this code, we expect to see the filter of entry will be renewed.
But elm_entry_markup_filter_remove() doesn't work.
Because, markup_filter does not hold the address of data when we use
the filter callback which is defined in elm_entry.c
_filter_new() in elm_entry.c
You can see that _filter_new allocates new pointer and names as lim2.
lim2 is saved in data of _Elm_Entry_Markup_Filter. So the address of
data doesn't equal to the input data.