Commit Graph

5403 Commits

Author SHA1 Message Date
Felipe Magno de Almeida a594413ccb elementary: Rename EAPI macro to ELM_API in Elementary library
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

EAPI was designed to be able to pass
```__attribute__ ((visibility ("default")))``` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
```__atttribute__((visibility("default")))```.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
2020-10-11 13:00:04 -03:00
Felipe Magno de Almeida dc8ece8c41 modules: Rename EAPI macro to MODAPI for modules
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

EAPI was designed to be able to pass
```__attribute__ ((visibility ("default")))``` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
```__atttribute__((visibility("default")))```.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
2020-10-06 17:03:55 -03:00
Felipe Magno de Almeida 19bb35fa0a elementary: Remove use of EOAPI that will get its definition removed
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

EAPI was designed to be able to pass
```__attribute__ ((visibility ("default")))``` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
```__atttribute__((visibility("default")))```.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
2020-09-30 12:57:14 -03:00
Carsten Haitzler 0c79b8f94b efl ui image - dont cancel preload on image if image is an edje object
fixes invalid request on non-image object.
@fix
2020-10-09 13:34:23 +01:00
Hermet Park b6a98bb3be elementary image zoomable: fix non supported oversized image.
Summary:
if image size is larger than system support, photocam can not show the image.

Not like other types of image, photocam is originally designed for huge-size of image,
this result is not allowed by users, we should avoid the worst case as we can do.

This might not be the best idea, so you can improve it if you have a better solution.

Reviewers: kimcinoo

Reviewed By: kimcinoo

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12164
2020-10-05 12:56:03 +09:00
Carsten Haitzler 42c123d1d7 singularize srand in eina_init - only once in one place
simplify down to having a single srand() in eina_init and use urandom
if it works and is there - if not, time(NULL) will do. it's the best
we can...
2020-10-03 20:46:50 +01:00
Vincent Torri 3aeffe0bec elm_config: don't prepend /tmp/ to file name
eina_file_mkstemp() already takes care of this.

Differential Revision: https://phab.enlightenment.org/D12155
2020-09-21 11:26:23 +02:00
Stefan Schmidt ddd0736264 Revert "elm - collection view - check return and fix coverity wanring"
This reverts commit f3fdcf5692.

This commit leads to ninja test timeout. When returning result here the
future will never fire and we will keep spinning.
2020-09-21 11:09:07 +02:00
Carsten Haitzler 1638a79bd6 elm - toiolbar - use correct theme icon for more item
there is a specific thme icon for "more" items when a toolbar
compresses. it literally was not being used. it should use it.
"go-down" that it was using isn't exactly very expressive of what this
item does...

@fix
2020-09-21 09:35:06 +01:00
Carsten Haitzler f3fdcf5692 elm - collection view - check return and fix coverity wanring
fix CID 1405808
2020-09-19 20:38:12 +01:00
Vincent Torri 364323881c elm_config: remove useless init|shutdown of ecore_win32 and eocore_cocoa (done in ecore_evas module), and useless wayland variable
ecore_win32 and ecore_cocoa was init. wayland variable was also unused

Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D12149
2020-09-18 09:04:00 -04:00
Jaehyun Cho cb059ea0af elm_gesture_layer: fix crash caused by elm_gesture_layer_cb_del in cb
elm_gesture_layer_cb_del can be called in Elm_Gesture_Event_Cb cb set by
elm_gesture_layer_cb_set and cb_info of the cb is free in the cb.

This causes crash if cb_info is searched with EINA_INLIST_FOREACH.
2020-09-07 15:18:12 +09:00
Carsten Haitzler 5d058c98fd elm cnp - make matchers const and static too 2020-09-05 15:03:44 +01:00
Marcel Hollerbach f8ef50eaaa elm_cnp: adjust image type to real format
we should never say that we have image/png etc. if we do not have the
respective format. Otherwise we are just confusing the other client.

With this you can copy things from elm to thunderbird / libreoffice
writer / firefox / telegram / chromium.

Please note if you test this: Start *a new xorg session* it was
discovered that xorg clients tent to be totally confused if there was a
protocol error before, or some wrong mime type was delivered before,
thunderbird even likes to crash if this is not done.

This should at some point be extended to more image types.
2020-09-05 09:43:43 +02:00
Myoungwoon Roy, Kim add087837c docs: Add the missing API page name to elementary and evas
I had found missing API reference page name. There should be page name to each API defgroup

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12128
2020-09-03 11:17:53 +02:00
Marcel Hollerbach f9ade56cf8 efl_ui_focus_manager_calc: fix CID
coverity was complaining that the DIRECTION ACCESS macro might access
over a negative direction. However, complement of a 2D direction is
always a 2D direction. But coverity cannot detect that.
2020-09-01 14:12:31 +02:00
Marcel Hollerbach 0817c49e75 efl: remove unused functions
these are not used, if they are used again in the future, they can be
get back via git.
2020-09-01 14:12:31 +02:00
Marcel Hollerbach 5f73d13047 efl: remove bool and string pointer mixup 2020-09-01 14:12:31 +02:00
Carsten Haitzler d5d7c55302 elm icon/thumb - fix handling of a wider range of video extns
the xetension list for video files was far too small. it menas it
missed many kinds of video files. this fixes that to have a much wider
range/list.

@fix
2020-09-01 12:26:01 +01:00
Vincent Torri 07d6a25c20 elm_theme: more secure check extension as '.edj' and not 'edj'
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12121
2020-08-31 11:16:40 +02:00
Shinwoo Kim b954640db8 efl_ui_image: update orientation immediately
Summary:
It is able to get orientation information of inlined image object.
This information should be same during its life time.

The inlined image object got correct information only after size
calculation, so there is a kind of timing issue.

An example will be attached for more details.

I am not sure what the regression bug mentioned on D6855, but
this will keep compatibility of behavior.

Actually it seems that the compatibility was broken by D9686
which does not call _efl_ui_image_sizing_eval immediately.

Test Plan: {F3947703}

Reviewers: Hermet, jsuya, herb

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12114
2020-08-28 14:54:11 +09:00
WooHyun Jung ece7010a4a elm_config: rescale is needed when font or font size is changed
Summary:
This patch fixes the issue that any application is not rescaled
when font or font size is changed by elementary_config.

Test Plan:
1. run elementary_test
2. run elementary_config
3. change the font in elementary_config
4. check the button size in elementary_test

Reviewers: id213sin, ali.alzyod, devilhorns, raster

Reviewed By: devilhorns, raster

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12117
2020-08-28 10:16:29 +09:00
Carsten Haitzler 5437afea1a elm access - fix enum cast warning - checked values 2020-08-25 13:21:25 +01:00
Carsten Haitzler 3ae4f76247 edje - fix enum cast warning - checked values 2020-08-25 13:21:25 +01:00
Carsten Haitzler be71903937 elm - efl ui text - fix enum return to use right enum 2020-08-25 13:21:25 +01:00
Carsten Haitzler e8109c678d elm - main - fix enum cast warnings - checked values 2020-08-25 13:21:25 +01:00
Carsten Haitzler c640dd7d18 elm - flip - fix enum cast warnings - cheked values match 2020-08-25 13:21:25 +01:00
Carsten Haitzler d54d4fb9c8 elm cnp/dnd - use right evas device enum for seat 2020-08-25 13:21:25 +01:00
Carsten Haitzler c565403bda elm scroller - fix mapping of block enums - was broken 2020-08-25 13:21:25 +01:00
Carsten Haitzler ea1d4ecfdb elm - focus legacy - fix enum implicit casts with explicit - valid
these casts are valid (i checked) to make them explicit and remove
warnings
2020-08-25 13:21:25 +01:00
Carsten Haitzler fbbde6e8a8 elm - efl ui widget - fix enum warnings with valid casts 2020-08-25 13:21:25 +01:00
Carsten Haitzler 70d0fcfc90 elm image - zoomable - fix enum warnings with valid casts 2020-08-25 13:21:25 +01:00
Carsten Haitzler f6e33361ed elm - efl ui win - fix enum handling with explicit casts where needed
warnings and cash enums to show we really do keep enums in sync
2020-08-25 13:21:25 +01:00
Myoungwoon Roy, Kim 463291548d docs: Correct the wrong API group name in elm_win and elm_glview
I found wrong API group name in elm_win and elm_glview and fixed them.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12075
2020-08-17 10:32:27 +02:00
Alastair Poole c26f56aef9 elm_code: Selection start (with keyboard) fix.
When starting a selection we were jumping two characters. This
change resolves that.
2020-08-10 14:15:08 +01:00
Alastair Poole 39f21df493 elm_code: Always render N new lines (buffer).
If we don't have a buffer here you CAN lose the race when scrolling.
As there is a check later in the flow, we can just use a padding
of 64 instead of checking the range. This ensures that scrolling is
smooth and content is always rendered throughout an aggressive
scroll.
2020-08-10 11:17:32 +01:00
Wonki Kim efdd1b166e elm_access: fix a potentional error of null deref
Summary: this is a patch to fix a potentional error by null dereferencing.

Reviewers: jsuya, kimcinoo, bu5hm4n

Reviewed By: jsuya

Subscribers: kimcinoo, bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12092
2020-08-05 17:03:02 +09:00
Ali Alzyod f126c7f06c efl_ui_textbox: preserve changing user color set
Summary:
setting color inside the constructor call will be override in theme apply because it happen later.
txt = efl_add(EFL_UI_TEXTBOX_CLASS, win,
               efl_text_color_set(efl_added, 0, 255, 0, 255));

Now we will preserve user choice, to not change it during theme apply.

Test Plan: ninja test

Reviewers: woohyun, bu5hm4n, zmike, segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11942
2020-08-05 13:33:03 +09:00
Ali Alzyod 45c6212d20 elm_entry/efl.ui.textbox: use common key shortcuts
Summary:
**key** value comes from keyboard down callbacks are common, regardless of language/layout but **keyname** is dependent on layout(in X11, in Wayland Can not be produced).
This common fix for both.

For example if keyboard layout in arabic then:
Ctrl+A  will not work (in X11)

This one enhances D11606

Reviewers: woohyun, bu5hm4n, zmike

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11695
2020-08-05 11:32:11 +09:00
Ali Alzyod 5d3497e506 efl.ui.textbox: Keyboard Enter will add paragraph separator
Summary:
efl.ui.textbox: Keyboard Enter will add paragraph separator and \n

because of D9064 Textbox multiline can work with paragraph separator

Reviewers: woohyun, segfaultxavi, bu5hm4n, zmike

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11201
2020-08-05 11:22:14 +09:00
junsu choi 2d7667aa44 efl_ui_timepicker: Add null check for efl_text_get
Prevent null access of the string passed from efl_text_get.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12085
2020-08-04 14:52:35 +02:00
SangHyeon Jade Lee 279cc45132 elm : fix return of gengrid item swap anim to prevent animation memory leak.
Summary:
this is memory leak fix on gengrid item move.
when animation reached 1.0, it finish all animation and returns EINA_FALSE to delete current animation.

Test Plan: N/A

Reviewers: eagleeye

Reviewed By: eagleeye

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12083
2020-08-04 14:30:18 +09:00
Carsten Haitzler 87bcc82976 efl ui image - fix scal to fill - broken with non-rect src images
@fix
2020-08-02 16:26:09 +01:00
Marcel Hollerbach 8d034f08e8 efl_ui_focus_manager: reduce the amount of relying on events
with this commit we are not replying on event invocations anymore, but
rather on direct flag observation in the focus manager itself.

This reduces the amount of events that are emitted as a consequence to
elements beeing marked dirty segnificantly.

startup time of elementary_test goes from 0.50 to 0.46s.

Differential Revision: https://phab.enlightenment.org/D12072
2020-07-31 10:17:42 +02:00
Carsten Haitzler 534457c51d elm - genlist/grid - call realized/unrealized item func cb after eo cb 2020-07-21 08:56:16 +01:00
Carsten Haitzler b158abfabb elm - genlist+gird - use item specific realize/unrealize not eo callback
this saves a lot of cpu overhead to specialize this with func ptrs in
the widget item struct instead of everyone listening on the parent
gengrid/genlist widget and eo having to walk lots of callbacks and
call them all...

major optimization

@opt
2020-07-20 22:24:31 +01:00
Carsten Haitzler 2a2da5254c win - x io errors really just have to exit, so call the iorr cb + exit
from xlib man page:

The XSetIOErrorHandler sets the fatal I/O error  handler. Xlib  calls
the  program's  supplied error handler if any sort of system call error
occurs (for example, the connection to the server was lost). This  is
assumed  to be a fatal condition, and the called routine should not re‐
turn.  If the I/O error handler does return, the client process exits.

@fix
2020-07-20 14:33:52 +01:00
Marcel Hollerbach a931e41823 efl: make all _class_get() functions const
please note, not the return type, but the function.
When appending __attribute__((const)) to a function, the compiler is
told that its enough to call this function once in a function.

This is quite often happening when we are efl_data_scope_get and
efl_super in a function that is different from a implemented function.

The compiler now starts to remove the calls that aggressivly that we
need to ensure that these calls are not removed, which means, the static
function calls, and the eo init are now checking the return value of
these functions, to ensure that they are called.

Please note that you now have to be carefull when your app calls
eo_shutdown, if it does so, you *must* call it at the end of a function,
or never call class_get after that anymore.

Overall this improves elm test runs 0.1s which is fair i guess, the main
thing that is faster is textrendering, where is also the point where
this is the most beneficial.

Please note, this replaces 42 occurences of double _class_get() ... THAT
is a sign!

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D12057
2020-07-20 11:27:53 +02:00
Taehyub Kim 903e2832ba efl_ui_image: remove the unnecessary code in efl_file_unload
Summary:
we don't need the image preload api call in efl_file_unload,
this make the unexpected SIG_LOAD_ERROR emit, when elm_image_memfile_set() is called.

@fix

Reviewers: Hermet, jsuya, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12056
2020-07-17 10:08:43 +09:00
Alastair Poole f0aede6052 elm_code: cursor visbility fix.
If the widget is scrollable on the x axis, the cursor was being
displayed in some rare cases when scrolling and the code widget
did not cover the whole window region. e.g. a filepanel to the
left of the widget could potentially have the cursor erroneously
shown. This fixes as per the y axis hide.

@fix
2020-07-14 12:16:30 +01:00