Summary:
According to D3710 new field "camera" in edc was added for IMAGE parts.
It is the name of the CAMERA part to set its viewport as a source of image if no image name is given.
Reviewers: raster, Hermet, cedric
Reviewed By: cedric
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D3777
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
The default scrollable flag of popup can be different in each profiles.
So I added the scrollable configuration of popup.
@feature
Test Plan:
1. Before
1) elementary_test -to popup
2) resize window to smaller
3) Click 15th item, "popup-center-title + genlist content + 1 button"
4) Then popup will show, but its list is very long, only small part of popup could be shown.
2. After Patch
1) change "popup_scroller" value to 1 in base.src, then run elementary_test -to popup or ELM_POPUP_SCROLLABLE=1 elemantary_test -to popup
2) resize window to smaller
3) Click 15th item, "popup-center-title + genlist content + 1 button"
4) Then popup will show, popup's genlist will be in scroller, so entire popup can be shown.
Reviewers: jaehwan, id213sin, cedric, raster, singh.amitesh, SanghyeonLee, Hermet
Subscribers: Hermet, minkyu, herb, jpeg
Differential Revision: https://phab.enlightenment.org/D3856
Support inheritance for part states on the edc code generate time.
Only for general attributes are supported, except relative and
map blocks.
Added functions for calculation coefficient of similarity
between two different states of the same part.
NB: No real major changes, just removal of an extra 'if' block. If
getenv of wayland display fails, we hard-code the default wayland
display name so subsequent check for 'if (n)' is erroneous
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Summary: if there is no env var AND no name, connection to wayland-0
Reviewers: raster, jpeg, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3945
all quickpanel APIs were only supported in X.
quickpanel property can be managed by name property.
zone set canbe managed by aux_hint
minor, and major set are not used anymore
This reverts commit 2ddbc5fc9a.
You cannot change default behaviour of released code!
In this way you make applications behave differently on different
efl version.
This patch cleans up various unused variables and unused function
parameters when not building for X11.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
These functions are only used if we are compiled with X11 support, so add
an #ifdef to remove it from wayland builds
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
These handlers are only used when building for X11, not for Wayland,
so conditionally compile them in/out
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
When we compile efl using --with-x11=none, then
_tempfile_new and _tmpinfo_free end up being undefined, however these
functions are used by wayland too so they need to be defined regardless.
@fix
As not everyone needs/wants extra eye-candy, add a check for
EFL_WAYLAND_DISABLE_WWW environment variable to be able to disable
wobbly windows support
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Reporting of mouse axis values should not be multiplied by 10. This
will cause serious jumps in wheel events. Loosely based on
1a339c9e59
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Wheels are discrete and scroll in clicks, fingers are continuous and scroll
in fractional pixels.
This change causes wheel based scrolling to be returned in "clicks"
instead of "degrees" - allowing us to roll a single menu item with a click.
It also will allow us to reduce the speed of two finger scrolling without
messing up the speed of wheel scrolling.
In some build environment, anonymous char delcaration can be interpreted
as "unsigned char". Although lk_init can be only 0, 1 or 2 so there
won't be any unexpected result. This change is just to make static code
analyzer happy.
Summary:
Usually, popup have a scroll bar when its content is too long to display in popup's size.
But now, default option is unscrollable.
So change default option and popup's test case.
Reviewers: jaehwan, Hermet, herb
Subscribers: cedric, singh.amitesh, jpeg
Differential Revision: https://phab.enlightenment.org/D3941
Summary:
"clicked" callback must be called when an item is really clicked.
But, toolbar had called it whenever an item was selected.
Even, it could be triggered by "elm_toolbar_item_selected_set()" API.
So, "clicked" callback will be called when only an item is clicked.
Also, it changed confusing names of related internal functions.
@fix
Test Plan: N/A
Reviewers: jaehwan, woohyun, cedric
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3937
Setters and getters like
edje_edit_state_proxy_source_clip_set
edje_edit_state_proxy_source_clip_get
edje_edit_state_proxy_source_visible_set
edje_edit_state_proxy_source_visible_get
Summary:
There is no way to allow/deny the text selection feature.
It is only controlled by disabled state. But, some UX does
not want to allow the text selection on editable entry widget.
@feature
Test Plan:
Run the following test case. You can see "Select Allow" check box.
elementary_test -to entry
Reviewers: tasn, herdsman, cedric, thiepha
Reviewed By: thiepha
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3934
Summary:
genlist content_get sometimes work weird after reusable_content_get pushed.
cached content is shown even content_get function is not exist or
return NULL.
now cache check item_class instead of item style string.
Test Plan: check genlist cache in elementary_test
Reviewers: Hermet, cedric, raster
Subscribers: Jaehyun_Cho, jpeg
Differential Revision: https://phab.enlightenment.org/D3921
Conflicts:
src/lib/elementary/elm_genlist.c
elm uses these flags internally, so failing to set them even if the
windowing system doesn't support the operation can still cause apps to
behave differently
ref 723d4ca8c9
in the case where an engine has no real concept of focus (eg. drm), no engine
functions will be implemented, resulting in calls to focus_set having no effect.
this leads to elm/applications being unable to receive the callbacks they expect
when calls to the overall api are made, resulting in focus being broken
probably this should also be done for the rest of the api functions too
@fix
even though each part want to get the signal regardless of ON_HOLD,
click signal should not emmitted if event flag is set to ON_HOLD.
ON_HOLD means this event is useless, so up event with ON_HOLD flag cannot source of clicked signal.
@fix
Use eina_strbuf to simplify the data preparer for uri.
This helps remove the complex for loop and also
reduce the memory allocated for uri array.
This also removes redundant checking.
We missed tmpstr_del and shutting down eina here. This test segfaults from
time to time on Jenkins. Not sure this was the actual cause but better clean
it up anyway.
Some APIs are move from eo to legacy as in ab3058d3,
but not all api calls are changed. This causes build break
in mac with cocoa backend.
This patch fixes it.
@fix
Summary:
When a new edje program is created, some jobs like lookup part
(Part_Lookup) or compiling embryo script (Code_Program) are queued.
If program is removed, queued jobs should be removed also.
Reviewers: jpeg, cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D3900
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
Writing copy directly to file.
Old way (adding directly to collection cache) leads to possible segfaults
on edje_collection_cache_flush.
Reviewers: reutskiy.v.v, cedric
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3904
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
add a macro to setup eet_data_descriptor for hash with
generic value storage.
Test Plan: make check (test case is included in eet test suite)
Reviewers: cedric, raster
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3925
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
This patch adds an API function that can be used to restrict mouse
movement from going outside a screen
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
When calling elput_input_init we need to check for a valid seat name
being passed in. If no seat name is provided, we will use the default
seat name.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
As we already have MIN & MAX defined in Eina, we no longer need to
include sys/param.h header to get those defines
ref d00643fcc4
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
seat
This patch adds a new API function which can be called to retrieve a
list of existing Elput_Devices on a given Elput_Seat.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds a new API function which can be used to return a list
of existing Elput_Seat objects from a given manager.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
If a NULL mode is passed into ecore_drm_output_mode_set, then we try
to disable the given output. If disabling the output fails, we were
trying to print an ERR message which tried to access the NULL mode.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Eolian had a restriction due to the C++ generator that classes and
namespaces would be named differently. Now that the C++ generator is
fixed, eolian dropped the restriction and we can finally fix the wrong
namespaces in ecore audio.
Fix commit 3e8db298f7 the namepsace changed but
only a few files have been fixed for this. Many files did still not compile
with make examples. I fixed some more but stopped at the cxx files with the hope
that the original author would actually do this.
This is done on an attempt to permanently fix our Windows port. Windows
doesn't have MIN/MAX, so we should always do a ifndef/define in every
piece of code that use it. Of course we always forget and it take times
to notice and fix. We have over the year added it in many private
headers, but as the issue continue to raise again and again, I prefer
to get this fixed in our main header.
Added eina_promise_race function that composes multiple
promise objects into a new promise which is fulfilled
when one of the promises are fulfilled, or fails
when one of the promises have failed.
This patch makes elput handle receiving the key combinations for vt
switching and perform the actual switch itself. This is done so that
ecore_drm2, ecore_fb, etc, etc do not each need their own code to
handle vt switching.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds a new API function to Elput that can be used to switch
to a given VT. This allows drm2 or enlightenment to switch to a given
virtual terminal in response to keybindings.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds support for notifying when a session gets activated or
deactivated. This will be used in drm2 to notify compositor when to
pause/restart rendering during a vt switch
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
As we do not need minor or fd from the dbus message during input
device resume, we can remove these variables
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
When we do dnd with multiple items in genlist, gengrid in dnd test,
the items are correctly transfered.
It is caused by incorrect sent data.
This patch fixes by adding new line separation between items' data.
The one and only valid use case is calling a function directly on
the part handle, like:
func(part_get(obj, "part"), args).
This does not change the actual proxy object lifecycle or resolve
any potential issues, but this should clear up things in terms
of scope for proper (supported) use.
efl_content_get may become efl_part() and return a temporary object,
valid for a single function call. Those are "details" still to be
refined.
Since Efl.Canvas.Image and Efl.Canvas.Scene3d inherit from
Evas.Image, the two CHECK(isa) can not be reached, and also the
cast from eo_data_scope_get() would be invalid (it should return
NULL as those classes have no private data).
Also, I believe the CHECK() for texture3d can not be reached
either since texture3d objects are not evas objects.
Ping @zmike
* use a genlist to speedup and make use of group ability
* manually list the icons (otherwise old and deprecated icons show up)
NOTE: as always this expose a new genlist bug: just change the size
of the icons (with the radio button) and scroll the list...new realized
items get a wrong size.
This allow you to monitor fd and get notification using Eo events. I
have not implemented the buffered read as used by X. I think that if
this is useful, we should just do another class to handle bufferred fd.
This results in wayland wl_output modes having their refresh rates
1000x too high, which has the magical effect of making some native
Qt apps fail with a GTK error when Xwayland crashes on 32-bit systems.
@fix
Fixes T3587
if an application is connected to the session bus, being disconnected
should indicate that the session has been terminated and all applications
in that session should also be terminated
this ensures that no zombie processes will remain after the session bus dies
Add a way for users of the promise owner to get notified when a
promise progress is registered. Also added a convenience composition
function that creates a promise which is fulfilled when another
promise has a progress notification.
This reverts commit a13570c17c.
This doesn't really fix the problem which is hidden by eo capability to not
crash on bad unref. With legacy API you are allowed to do a ecore_timer_del
and also return EINA_FALSE. In that case you have a double eo_del (which is
luckily protected) and a double free (that is not). It does crash on the
double free, but the issue is a lifecycle issue. Will bring a better patch
for this.
Due to dependencies from elementary codegen on the edj files triggered by the
generation of .h and .c, we actually need to provide the edj as it would
otherwise to build edje_cc prior to any make dist.
As the edje file was added after in the git repository, you may have some
timestamp issue to fix before doing a make dist. Try touch on all codegen_example
files.
T3588
The idea here is to provide a "real" fdo icon theme along the icons in the elm edje theme.
To minimize file redundancy the icons are profided directly in a fdo structure and picked
in icon_fdo.edc. Also I'm using all the icons in svg format so that we don't need to provide
all the creazy sizes as per fdo spec.
More icons will comes in the next commits
This commit breaks behaviour!
Re-parenting no longer detaches composite objects, so watch out.
Now you can have an object be a composite object of an object although
it's not its child. This allows widgets to do things like having an
object as the child of a child object while still making it a composite
object to the main object.
With this change, composite objects don't keep a reference to the child,
but instead composite "bonds" are implicitly removed when either the
parent or the child are destructed.
add support for reconnecting wayland applications if the compositor dies
disconnect -> destroy gl ctx + image textures -> block rendering ->
reconnect -> create gl ctx -> create image textures -> unblock rendering ->
sprinkle special seasoning on top -> just like ma used to make
#SamsungFeatures
@feature
in the event that the global gl context changes, all engine image data
must be destroyed and then re-created in order to continue rendering
successfully
this can be null if engine info has not yet been set or if engine info
has been unset, leading to engine crashes. instead of adding null checks in
every engine, better to add the checks to the originating functions
someone with time to kill should go through all the EAPI functions and
add more checks
This patch fixes a compiler warning where eo_del was being called on
an Ecore_Job.
ref c1141c7b0b
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Small patch to add an API function that can be used to set the current
pointer position on a given seat name. This function (typically) will
be used inside an Ecore_Evas to "pointer warp".
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Small patch to add an API function that can be used to retrieve
current pointer position on a given seat name.
@feature
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Summary:
object_find is more generic, so other mechanisms can also reuse the
code.
The object itself has to support the function, so there is no need for
eo_isa which would have a negative performance impact.
The base class implementation calls interface_get on the parent, so a
override of the function can just call the super function to continue in
the recursion.
Test Plan: just run the eo test suite
Reviewers: raster, tasn, jpeg
Reviewed By: tasn, jpeg
Subscribers: felipealmeida, netstar, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3909
If the compositor crashes at just the right time this dispatch can fail
and result in a stuck app spinning in a tight loop. Fix it so we do a
proper shutdown in this case.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
On shutdown we need to set wl_surface to NULL to let the engine know
there's nothing to write to - however we've been setting up an entirely
new outbuf instead of just changing the old one.
The outbuf code should free the surface structure, not the dmabuf
abstraction or a use after free occurs on fallback.
Re-organize some code to make sure we don't rely on anything that may
have already been freed.
Add a wl_surface_commit() to keep the animation timer alive through
the fallback process.
This include is leftover from the porting to Ecore_Wl2. Remove
unused include for old Ecore_Wayland library
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch deprecates the Ecore_Wayland library with a warning to not
use it. This (imo) is a better method of deprecation rather than
adding EINA_DEPRECATED to every function.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Because we were forcing EWAPI in this macro, one couldn't create a class
that is "static" or even just private or the module. The symbol was
always exposed.
Since in C the attributes of a function are set based on the first
declaration, we don't need to specify any attributes in this macro and
we can just rely on them being specified in the declaration. So for
example, for class "foo":
foo.h:
EWAPI const Eo_Class *foo_class_get(...);
foo.c:
const Eo_Class *foo_class_get(...);
Would give the desired results, a class would be EWAPI. This is already
done automatically for all of the classes using Eolian. Because of the
lack of specifiers, the default visibility will now be the default
visibility based on compiler flags and settings.
Thanks to JP for reporting this issue.
This can potentially (but very unlikely) break things.
If we do drag & drop and then do copy & paste, both _wl_selection_receive
and _wl_dnd_receive are called for one action (dnd or cnp). It is reduntdant.
We only need one data received callback to handle two cases dnd and cnp.
We have copy & paste and drag & drop selection types, but we cannot
distinguish between these two types when requesters receive data
from data ready event.
This patch adds a new enum to help selection requesters distinguish
between two selection types and have suitable actions for each type.
If we do drag & drop and then do copy & paste, both _wl_selection_send
and _wl_dnd_send are called for one action (dnd or cnp). It is reduntdant.
We only need one callback to handle two cases dnd and cnp.
we support different types for DnD, but there is no converters.
This patch adds converters for types, so that we can send
different data for different types.
When these changes got it with 0c76f82a31
they used the non existing symbols ecore_promise_value_get and
ecore_promise_then (most likely due to an unfinished refactoring)
Make sure we actually use the correct eina_promise_ symbols and add NULL
for the error callback which is now needed.
partially reverts e4d815dc48
this caused efreetd to crash almost immediately due to non-stringshared
strings being used in a stringshare-only hash data descriptor
fixes the following warnings:
/usr/local/include/efl-1/Efl_Model_Common.h:14:30: warning: redefinition of typedef 'Eina_Promise' is a
C11 feature [-Wtypedef-redefinition]
typedef struct _Eina_Promise Eina_Promise;
^
/usr/local/include/eina-1/eina/eina_promise.h:10:30: note: previous definition is here
typedef struct _Eina_Promise Eina_Promise;
To remove the typedef i had to cleanup the includes of header in
evas_canvas3d_eet.c.
this really needs a better solution since it results in a blank genlist
item space, with the item itself typically located somewhere offscreen due
to caching
the parent/group item is located after its child items in the list of items,
so if an item is appended to the parent's list of items then it must be
prepended to the parent or else it will end up being in the wrong group
@fix
more fixes for the comically unreviewed revision from elm which continues
to cause bugs months after it was pushed
ref 4c86a66f28876b68e92a90c8f741eed1130dd034 (elm)
ref e88423e994
Efl - efl_model_base changed to use eina_promise
Eio - eio_model use efl_model_base with promise
Eldbus - elddbus models use promise now
Elementary - elm_view_list and elm_view_form use new models with promise
updated all related examples and tests
This code is an absolute mess. This is the first step towards fixing that.
This cleanup let me find a bug that would have printed errors when using
Eina_Value so I fixed that too.
It is possible situation when SPACER structure has colors values.
For example:
group { name: "abc";
parts {
part { name: "rect"; type: RECT;
description { "default" 0.0;
color: 7 7 7 255;
}
}
}
}
group { name:"abc_2";
inherit: "abc";
parts {
part { name: "rect"; type: SPACER;
}
}
}
To avoid failing compilation of generated source code, need avoid
generate color source code for a SPACER part.
This fixes the segfault reported by Jack.
The problem was that the object was being reparented and thus
removed from the composition and never added back.
The hicolor fallback requirement is handled by efreet
and the usage of fdo is user specified now not by code.
This means the only (theoretical) way this could be a
problem is if the user removes a theme.
This seems like a good tradeoff to remove the overhead
and enable the apps to switch icons based on config change.
Allow to delete set if it is not used by any part
Function to check if set is used by any part is:
edje_edit_set_usage_list_get
Since it uses same struct as image_used_list_get function, it
can be freed by edje_edit_image_usage_list_free.