Compare commits

...

408 Commits

Author SHA1 Message Date
Mike Blumenkrantz d153532b4a 19.14 NEWS updates 2015-11-30 14:11:38 -05:00
Mike Blumenkrantz 7eb415cc98 19.14 release 2015-11-30 14:10:46 -05:00
Mike Blumenkrantz 626a4944e6 re-swallow bg_object after wallpaper transition has completed
fixes eventing/stacking on bg object
2015-11-25 12:38:28 -05:00
Mike Blumenkrantz 28a40d359f allow more client hooks to bypass delete check
failing to propagate these signals can result in a broken compositor
when a client is deleted before/during an operation
2015-11-24 21:44:58 -05:00
Mike Blumenkrantz 3732a233e2 do not apply max client geometry restriction if max geometry is not set
default values for these is set to a very high value, but it's possible
(and guaranteed) for some clients to set them to a value <= 0, which results
in a broken window
2015-11-24 21:44:50 -05:00
Mike Blumenkrantz 1ae6f76d7d use CSD geometry during move/resize display
this should provide more user-relevant information
2015-11-24 21:44:45 -05:00
Mike Blumenkrantz c685d799c1 avoid setting incorrect geometry during new_client frame calc
in the case where a client has no geometry set, attempting to update
the client's geometry during frame recalc will guarantee that wrong
geometry is set, resulting in a bad first frame
2015-11-24 21:44:38 -05:00
Stafford Horne 38411a8624 e/core: Fix minor mem leak when reading module paths
Summary:
Found this with a quick valgrind session.  For paths that are not directories, if we fail the `ecore_file_is_dir` condition memory will not be freed.

The change is to use the default e_path freeing function.

Test Plan:
Run enlightenment in valgrind.  It should no longer show a mem leak like below.

```
==6912== 8 bytes in 1 blocks are definitely lost in loss record 186 of 5,940
==6912==    at 0x4C28C50: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6912==    by 0x4D8574: e_path_dir_list_get (e_path.c:326)
==6912==    by 0x4D1BA4: e_module_init.part.0 (e_module.c:183)
==6912==    by 0x4D1DA8: e_module_init (e_module.c:153)
==6912==    by 0x4371ED: main (e_main.c:868)
```

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3356
2015-11-19 20:45:39 -05:00
Mike Blumenkrantz 9d426dc1e7 ensure that a deskmirror object does not orphan child objects
ref T2846, T2830
2015-11-19 16:20:33 -05:00
Mike Blumenkrantz 468757c8c1 Revert "e deskmirror - fix loss of mirror object from deskmirror"
This reverts commit bd0c590489.

the m->mirror object can never be deleted except in the case of a client
being removed from the owner desk. removing it at any point will break any
users of the deskmirror api and create other issues

ref T2846
2015-11-19 16:20:27 -05:00
Mike Blumenkrantz 42ad1e640a block task gadget refills while a drag is active
it's impossible to use a pager effectively with a task gadget due to
the constant resizing of the tasks gadget during any kind of window move
2015-11-19 16:20:18 -05:00
Mike Blumenkrantz 92fd6db69f always create compositor mirror objects, ignore pixmap image state
checking pixmap image state in this case resulted in mirrors failing to
be created in some cases when there was no reason to fail

ref T2846
2015-11-19 16:20:05 -05:00
Mike Blumenkrantz 979d4724b9 further improve csd calculations for x11 clients
there was previously a frame in which maximized x11 csd clients would
reposition themselves offscreen before rendering

this is now fixed by adjusting the client geometries either upon
unsetting the csd or re-setting it, allowing the client to retain its
expected positioning without jitters
2015-11-19 16:13:42 -05:00
Mike Blumenkrantz 9539e36707 update E_Client->desk member upon focusing a sticky client
a sticky window previously would always have the desk set for where
it was set as sticky, meaning that anything which tries to access it
will be reading wrong data here.
more useful information to provide is the last desk which the sticky
client was focused on, so update that upon focusing it
2015-11-19 16:07:33 -05:00
Mike Blumenkrantz 858995d6b2 do not refill all tasks bars when a sticky window changes desks 2015-11-19 16:07:21 -05:00
Mike Blumenkrantz 5d4d03ca11 do not add new deskmirror clients on desk_set event if client already exists 2015-11-19 16:03:59 -05:00
Mike Blumenkrantz 7bdbc9c9e4 improve x11 client focusing with mouse-based focus policies on mouse move
in the case that a mouse move event occurs, the compositor should validate
the event to ensure that the mouse cursor is actually over the window that
the event claims to be from

fix T2594
2015-11-12 17:24:46 -05:00
Mike Blumenkrantz ab751d1e73 19.13 NEWS updates 2015-11-12 12:46:55 -05:00
Mike Blumenkrantz 06692431f9 19.13 release 2015-11-12 12:44:30 -05:00
Mike Blumenkrantz 26ccdd3907 null efm icon eio handle in error callback
ref T2829
2015-11-11 13:18:00 -05:00
Mike Blumenkrantz bc2d090572 use unsigned int for client focus tracking freeze state
there's no reason why this should ever be negative
2015-11-10 14:50:34 -05:00
Carsten Haitzler 87edcc861b e deskmirror - fix loss of mirror object from deskmirror
this fixes T2830

@fix
2015-11-10 14:50:25 -05:00
Carsten Haitzler a7b5a06640 ibar - fix shutdown if ibar client menu is up
valgrind pointed out a referencing issue with the ibar client menu on
hover and if e is shut down while this is up. it ends up referencing
an already deleted ibar icon, so delete the menu objects that
reference the icon if icon is deleted.

@fix
2015-11-10 14:50:13 -05:00
Mike Blumenkrantz 014d700f91 check client comp data existence in x11 mirror visibility callbacks 2015-11-09 14:35:22 -05:00
Mike Blumenkrantz 245bb97922 enforce fullscreen client stacking during nocomp end IFF client is fullscreen
previous behavior would result in the nocomp window becoming stuck at a fullscreen
layer when ending nocomp, even if the client was no longer fullscreen

fix T2827
2015-11-09 14:34:09 -05:00
Mike Blumenkrantz eefba09456 disable client menu stacking functions for unstackable windows
any client stacked higher than E_LAYER_CLIENT_ABOVE should never be
user-stacked
2015-11-09 14:32:50 -05:00
Mike Blumenkrantz 755073b5fc Revert "force a software render in all cases when finalizing x11 client iconify"
This reverts commit 280e7e959d.
2015-11-09 14:32:50 -05:00
Mike Blumenkrantz 3e5d970c2f toggle x11 client iconic/mapped state based on mirror visibility
in order to continue rendering an iconic client without breaking icccm,
it's necessary to map the client's window again and unset iconic state
whenever rendering is needed, then re-set states when rendering
stops

ref T2788
2015-11-09 14:32:47 -05:00
Mike Blumenkrantz e8c7f5686c add e_comp_object_mirror_visibility_check()
can be used to check whether visible mirrors exist for a comp object
2015-11-09 14:25:25 -05:00
Mike Blumenkrantz a372c31b84 add counter and smart callbacks for comp object visible mirrors
ref T2788
2015-11-09 14:25:16 -05:00
Mike Blumenkrantz 71b113f44c emit ibox icon signals to the internal edje object of the e_icon 2015-11-09 14:23:43 -05:00
Mike Blumenkrantz c31824c2ef move client iconic hint setting into x11 hide function
e_hints should probably be merged into the x11 compositor entirely
at some point
2015-11-09 14:23:23 -05:00
Mike Blumenkrantz 3a16a86ea3 break out x11 client visibility setting into util functions 2015-11-09 14:23:11 -05:00
Stafford Horne cd2ebfe532 e/ilist: Fix issue with multiselect returning wrong index
Summary:
I noticed this because the description dialog in "Apps > Startup Application"
was never getting properly populated.

Test Plan:
When selecting items in the "Apps > Startup Applications" config the
description should update if a "Comment" field is available in the
.desktop file.

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3297
2015-11-09 14:23:11 -05:00
Stafford Horne 27a798c4f1 e/conf_apps: Fix resizing of "Startup Application" dialog
Summary:
Currently the config dialog in Apps > Startup Applications does not properly
resized as one of the objects is not set to horizontal fill.

Test Plan: 1. Resize "Apps > Startup Applications", it should resize the list with the window

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3296
2015-11-09 14:23:11 -05:00
Mike Blumenkrantz 88726e8df3 adjust efm multi-icon drag positioning by the current pan coords
fixes positioning when dragging multiple icons after scrolling
2015-11-09 14:23:11 -05:00
shorne c7cd4178a7 e/win_config: allow content of some dialogs to resize with the window
Summary:
Currently the dialogs in Winows > Window List Menu and Window Display are
resizable the their content does not resize.  This patch fixes that.

Test Plan: Open windows in window config dialog and ensure they can resize propertly

Reviewers: zmike

Subscribers: raster, cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3275
2015-11-09 14:23:11 -05:00
Mike Blumenkrantz 8589289ff5 add native surface (gl) clients to post render list
forgot to add this when I was redoing it for sw

ref 4d30674ab8
2015-11-09 14:23:08 -05:00
Carsten Haitzler 82e2e93fd2 e exec tracker - fix tracking to update desktop files on efreet change
efreet will send change events meaning out desktop file icons are
invalid now. we have refs but content is junk. update these to new
desktop ptr handles by using the exec key to look up new ones on the
change event. this fixes ibar gainign a bunch of blank unknown icons
when any desktop files are touched on the system or user dirs

@fix
2015-11-09 14:14:42 -05:00
Mike Blumenkrantz ff1ef7281b simplify client SMART/EXPAND maximize
calling e_client_resize_limit() here was misleading since the values
were never used
2015-11-09 14:05:17 -05:00
Carsten Haitzler e311bc2372 e - ibar - fix clash when 2 icons of the same path get added somehow
i encontered a situation where the icon_hash contained a garbage entry
- had been freed already. the only way i can see this happening is if
the desktop file changed path during runtime thus the icon was never
removed from hash on free as string didnt match. store string used
when adding to hash so removal is guarannteed to work and also for
good measure protect against double-adding (and generate a new string
for storage using timestamp which should be unique).

so this fixes a crash i was just looping on.

@fix
2015-11-09 14:04:37 -05:00
Mike Blumenkrantz 9324313948 reject frame theme changes for clients which have CSD 2015-11-09 14:04:29 -05:00
Mike Blumenkrantz dfa3b4060c only apply frame geometry deltas for CSD if the CSD region exists
ref e931e86161
2015-11-09 14:04:24 -05:00
Mike Blumenkrantz 90b0708fb1 remove dead modules from whitelist 2015-11-09 14:04:03 -05:00
Mike Blumenkrantz ffc1f2604a make comp config unresizable...again
ref 5178197f60
2015-11-09 14:03:51 -05:00
Mike Blumenkrantz 1529bebcb0 update csd using deltas of previous values
when applying new csd to a window which already has csd, the previous
csd must be removed in order to apply any new csd offsets in order to
avoid unwanted moving/resizing
2015-11-09 14:03:35 -05:00
Thierry bc09dfeefe mouse_config: fix accel threshold and numerator limits.
man xset =>  If the `threshold' parameter is provided and 0, the
`acceleration' parameter will be used in the exponent of a more
natural and continuous formula, giving precise control for slow motion
but big reach for fast motion, and a progressive transition for motions
in between.  Recommended `acceleration' value in this case is 3/2 to 3,
but not limited to that range.
2015-10-17 12:00:40 -04:00
Mike Blumenkrantz 280e7e959d force a software render in all cases when finalizing x11 client iconify
since ICCCM requires that clients be unmapped while iconified, it's necessary
for the compositor to perform one last render prior to the unmap in order to
ensure that mirror objects will still appear as expected. this render must use
the pixmap buffer data in order to avoid timing issues due to async/deferred
rendering, and it is only necessary for the case of clients rendering with a
native surface

fix T2788
2015-10-15 17:05:15 -04:00
Mike Blumenkrantz 979937cc20 clear x11 client pixmap when returning from iconic
ensure pixmap remains usable during the entire hide process
2015-10-15 17:04:02 -04:00
Mike Blumenkrantz 988df882ea reject deleted clients from x11 sync alarm event callback
E_Client->comp_data is null after a client has been deleted, so
attempting to handle events which require the dereferencing of this
pointer after a client has been deleted will result in a crash

these events should be rejected after delete regardless, since at this
time the compositor has stopped handling events for the client

ref f42c6aa187
2015-10-15 14:02:17 -04:00
Mike Blumenkrantz 72b7860cf6 trap shaped x11 clients and prevent compositor blocking with high rect count
in the case where a shaped window with many rects exists, there is a high
probability of the damage rect count being huge, leading to massive blocking for
each frame as the compositor attempts to fetch all of these rects from the xserver.

instead, the compositor can shortcut this by forcing a full-window damage any time
the rect count is sufficiently high, trading a blocking socket operation for some
amount of (potential) overdraw.

testing in affected scenarios has shown huge improvements: where previously the entire
compositor would lock up, things work as expected now

see https://bugzilla.mozilla.org/show_bug.cgi?id=1214746 for a sample case
2015-10-14 13:05:53 -04:00
Mike Blumenkrantz 8c95402fd9 do not return when x11 damage event returns no rects
ensure first_damage flag is set in all cases
2015-10-14 13:03:49 -04:00
Mike Blumenkrantz 0cec30df72 fix typo in previous damage rect commit 2015-10-14 13:03:49 -04:00
Mike Blumenkrantz 61d51eda56 subtract x11 client damage region even when forcing full override damage
fix T2785
2015-10-13 22:40:55 -04:00
Mike Blumenkrantz 21d2a84c2e force full damage for first frame of x11 override clients
it seems that damages for popup windows in some applications,
namely blink-based browsers, are reported incorrectly, resulting
in sometimes having a blank window
2015-10-13 17:11:53 -04:00
Mike Blumenkrantz f53e85e44c make wake-on-urgent apply for all cases of window urgency
in the case that an urgent window is set as urgent again, wakeup should
still occur
2015-10-09 15:24:37 -04:00
Mike Blumenkrantz eab9d00bb8 don't crash desktop gadget systrays when adjusting image sizing
desktop gadgets (gadman) do not have a shelf, so derefing that pointer
without checking will guarantee a crash
2015-10-08 12:23:22 -04:00
Mike Blumenkrantz 24c2d5fb95 when removing VERTICAL maximize state, also remove LEFT and RIGHT states
LEFT and RIGHT are supersets of VERTICAL which serve no purpose on their own,
so remove them when removing VERTICAL

fix T2770
2015-10-07 15:47:41 -04:00
Mike Blumenkrantz e473715ee5 19.12 NEWS updates 2015-10-06 13:53:24 -04:00
Mike Blumenkrantz 7c1b0d9467 19.12 release 2015-10-06 13:49:24 -04:00
Mike Blumenkrantz 16f20ff336 only use fast-path pixmap size updating after a resize for x11 clients
updating these values after other operations will result in the pixmap size
being set inaccurately, leading to rendering inconsistencies
2015-10-05 17:30:54 -04:00
Mike Blumenkrantz 1bfbff09de repopulate app list dialogs when efreet deskop cache updates
should improve usage when installing/uninstalling apps
2015-10-05 16:02:48 -04:00
Mike Blumenkrantz 3733cb039b attempt to load default e_bindings if initial load fails 2015-10-05 16:02:43 -04:00
Mike Blumenkrantz 89387f8cb8 clear menu cache when saving a menu file
force regeneration of menus after editing them

ref T2271
2015-10-05 16:02:37 -04:00
Mike Blumenkrantz c6e79c0ddc make icon selection dialog resizable in .desktop editor
ref T2271
2015-10-05 16:02:32 -04:00
Mike Blumenkrantz adc5572a1f move configure init after intl init has completed
gettext calls will not return the correct language string until after
setup has completed, leading to untranslatable strings

fix T2760
2015-10-05 13:10:57 -04:00
Peter Kjellerstedt 5dc6d333a3 Add "(drag only)" to title for drag only edge bindings
Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3128
2015-10-04 11:56:35 -04:00
Chidambar Zinnoury a521fe6820 e menus: Fix invalid comparisons.
Fixes CID 1267215 and 1267216.
2015-10-04 11:52:54 -04:00
Mike Blumenkrantz 041fbdb31e fix systray to work with spec-breaking apps, eg. steam
according to the StatusNotifierItem specification, applications
register "service org.freedesktop.StatusNotifierItem-PID-ID" on the
session bus, and then "must register the unique instance name
to the StatusNotifierWatcher".

some applications, such as steam, instead register the path that they
will run on (/org/ayatana/NotificationItem/steam) and then expect the
watcher to register the method call's send id bus: this is totally bogus.

to catch this, when registering the new item the enlightenment watcher must
first determine if the item is spec-conforming. if yes, proceed as normal.
if no, pretend the application knows what it's doing and try to make things
work as expected anyway

for more details, read the full spec here
http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem

fix T2763
2015-10-04 08:51:18 -04:00
Mike Blumenkrantz 203932fed9 move client post-update adding into render function
in some cases, it's possible for a client which expects to render on
the next frame to actually render on the frame after. in these cases,
the compositor must not clear the pixmap image until after the render
has occurred in order to avoid inaccuracies. for this reason, the best
place to flag a client for post-render work is at the time of the client's
render

ref T2762
ref D3120
2015-10-02 14:03:31 -04:00
Mike Blumenkrantz fa0e3c48fc unify comp render returns for argb and non-argb clients 2015-10-02 14:03:31 -04:00
Mike Blumenkrantz a558c940eb fix comp render return value for failed draws of non-argb clients 2015-10-02 14:03:31 -04:00
Mike Blumenkrantz b1989c60a5 add RENDER_DEBUG for forced renders when setting dirty flag 2015-10-02 14:03:31 -04:00
Amitesh Singh f1c3a0a540 md5: fix wrong sizeof argument (SIZEOF_MISMATCH)
Summary: fixes CID: 222382

Reviewers: raster, zmike, cedric, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, seoz, sachin.dev

Differential Revision: https://phab.enlightenment.org/D3125
2015-10-02 14:03:31 -04:00
maxerba c3c8657ae6 Updating spanish translation 2015-10-01 13:54:27 +02:00
Mike Blumenkrantz b006832d38 free x11 damage region rects 2015-09-29 15:18:12 -04:00
Mike Blumenkrantz 52c99ddcfc remove object event callback on notification popdown
==24509== Invalid write of size 8
==24509==    at 0x2C5ED500: _notification_popup_del_cb (e_mod_popup.c:404)
==24509==    by 0x91AAE93: _eo_evas_object_cb (evas_callbacks.c:92)
==24509==    by 0xE54DDEA: _eo_base_event_callback_call (eo_base_class.c:715)
==24509==    by 0xE54B67A: eo_event_callback_call (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0x91AB323: evas_object_event_callback_call (evas_callbacks.c:264)
==24509==    by 0x91E8DE3: _evas_object_eo_base_destructor (evas_object_main.c:691)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0x60A3019: _edje_object_eo_base_destructor (edje_smart.c:43)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
==24509==    by 0x6091146: edje_match_callback_exec_check_finals (edje_match.c:556)
==24509==    by 0x6091146: edje_match_callback_exec (edje_match.c:711)
==24509==    by 0x60974AE: _edje_emit_cb (edje_program.c:1453)
==24509==    by 0x60974AE: _edje_emit_handle (edje_program.c:1405)
==24509==    by 0x60924EE: _edje_message_queue_process (edje_message_queue.c:787)
==24509==    by 0x60926A6: _edje_job (edje_message_queue.c:154)
==24509==    by 0xCC5087A: _ecore_job_event_handler (ecore_job.c:121)
==24509==    by 0xCC4B204: _ecore_call_handler_cb (ecore_private.h:390)
==24509==    by 0xCC4B204: _ecore_event_call (ecore_events.c:565)
==24509==    by 0xCC52AE7: _ecore_main_loop_iterate_internal (ecore_main.c:1927)
==24509==    by 0xCC52CD6: ecore_main_loop_begin (ecore_main.c:983)
==24509==    by 0x4383F4: main (e_main.c:1047)
==24509==  Address 0x23b3dcb0 is 16 bytes inside a block of size 80 free'd
==24509==    at 0x4C2A65B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24509==    by 0x2C5ED606: _notification_popdown (e_mod_popup.c:747)
==24509==    by 0x2C5ED952: _notification_reshuffle_cb (e_mod_popup.c:700)
==24509==    by 0x91AAE93: _eo_evas_object_cb (evas_callbacks.c:92)
==24509==    by 0xE54DDEA: _eo_base_event_callback_call (eo_base_class.c:715)
==24509==    by 0xE54B67A: eo_event_callback_call (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0x91AB323: evas_object_event_callback_call (evas_callbacks.c:264)
==24509==    by 0x91E8DE3: _evas_object_eo_base_destructor (evas_object_main.c:691)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0x60A3019: _edje_object_eo_base_destructor (edje_smart.c:43)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
==24509==    by 0x504CEF: _e_zoomap_smart_del (e_zoomap.c:266)
==24509==    by 0x91F5ABC: evas_object_smart_del (evas_object_smart.c:1019)
==24509==    by 0x91E9107: _evas_object_eo_base_destructor (evas_object_main.c:739)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
==24509==    by 0x458C7A: _e_comp_object_util_del (e_comp_object.c:2402)
==24509==    by 0x91AAE93: _eo_evas_object_cb (evas_callbacks.c:92)
==24509==    by 0xE54DDEA: _eo_base_event_callback_call (eo_base_class.c:715)
==24509==    by 0xE54B67A: eo_event_callback_call (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0x91AB323: evas_object_event_callback_call (evas_callbacks.c:264)
==24509==    by 0x91E8DE3: _evas_object_eo_base_destructor (evas_object_main.c:691)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0x60A3019: _edje_object_eo_base_destructor (edje_smart.c:43)
==24509==    by 0xE54A8A3: eo_destructor (in /usr/lib/libeo.so.1.15.99)
==24509==    by 0xE5443EC: _eo_del_internal (eo_private.h:221)
==24509==    by 0xE5443EC: _eo_unref (eo_private.h:295)
==24509==    by 0xE5443EC: _eo_do_end (eo.c:546)
==24509==    by 0x6091146: edje_match_callback_exec_check_finals (edje_match.c:556)
==24509==    by 0x6091146: edje_match_callback_exec (edje_match.c:711)
==24509==    by 0x60974AE: _edje_emit_cb (edje_program.c:1453)
==24509==    by 0x60974AE: _edje_emit_handle (edje_program.c:1405)
==24509==    by 0x60924EE: _edje_message_queue_process (edje_message_queue.c:787)
==24509==    by 0x60926A6: _edje_job (edje_message_queue.c:154)
==24509==    by 0xCC5087A: _ecore_job_event_handler (ecore_job.c:121)
==24509==    by 0xCC4B204: _ecore_call_handler_cb (ecore_private.h:390)
==24509==    by 0xCC4B204: _ecore_event_call (ecore_events.c:565)
==24509==    by 0xCC52AE7: _ecore_main_loop_iterate_internal (ecore_main.c:1927)
==24509==    by 0xCC52CD6: ecore_main_loop_begin (ecore_main.c:983)
==24509==    by 0x4383F4: main (e_main.c:1047)
2015-09-29 15:17:34 -04:00
Mike Blumenkrantz c22f78dbb8 reject client resize attempts for clients with dirty pixmaps
these clients will resize/render correctly only after the next
render loop, so defer until then to avoid #RenderFail

fix T2754
2015-09-29 12:31:28 -04:00
Mike Blumenkrantz 46b1335ade reject identical calls to e_comp_object_frame_geometry_set() 2015-09-28 16:17:34 -04:00
Mike Blumenkrantz 12c4257159 _GTK_FRAME_EXTENTS changes using a property, not a client message 2015-09-28 16:17:31 -04:00
Mike Blumenkrantz 14ce1880cb use client window coords for resize-moving without a frame_object
improves placement of csd windows

ref T2750
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz 284d3079b7 do not set client window coordinates during a move until after resizing check
fixes case where values would be erroneously updated when they should instead
have been rejected

ref T2750
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz c022cc579d use more accurate math to determine whether to apply a client maximize change 2015-09-28 16:12:28 -04:00
Mike Blumenkrantz 3d8c3bb614 unset the requested maximize state when receiving a client unmaximize request
not sure why it was always removing VERTICAL here but that's a bug
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz 608b38b2e7 allow client resizes on axes currently unrestricted by maximize state
if this isn't explicitly blocked by config options then allowing resizes
on the unmaximized axes is necessary in order to avoid accidentally
queuing a full unmaximize
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz 6709eed4c2 unset E_Client->changes.need_unmaximize after calling unmaximize
...just in case
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz de0bffe9c6 remove client maximize states during unmaximize only if they are active
do not accidentally remove untested states using bad math operations
2015-09-28 16:12:28 -04:00
Mike Blumenkrantz d103edfd6b force adjustment of client geometry when changing csd frame size
fix T2750
2015-09-28 16:12:28 -04:00
Carsten Haitzler ba267da5be e - efm fix. fix eio error handler that is called after eio cancel
so you have to have an error cb - so make it empty as even after a
canel, it is called, and thus accesses an invalid icon we've freed.
2015-09-28 12:36:14 -04:00
Carsten Haitzler 2fcfb36480 efm - handle cancel of async eio if icon is freed and eio still active
@fix
2015-09-28 12:35:47 -04:00
Mike Blumenkrantz 6be7068674 set x11 broadcast atom hint array size based on array-name size
partial backport of ref 701e2d914a

fix T2744
2015-09-26 12:03:52 -04:00
Mike Blumenkrantz f65991a7ba force pixmap clear when hiding an x11 window
failure to refetch this upon remapping the window will result in
a broken pixmap which cannot be rendered
2015-09-25 23:42:38 -04:00
Mike Blumenkrantz a43efbc124 blacklist all versions of efl affected by T2745
prevent case where internal windows cannot be made visible
2015-09-25 23:06:14 -04:00
Mike Blumenkrantz d9501096bf completely remove all wayland support from build system
this is unmaintained and out of date. the protocol versions are old,
and it's extremely unlikely that any client will work and be in a
usable state given the development progress since E19 was originally
released.

use E20+ for wayland support.

fix T2746
2015-09-25 22:53:16 -04:00
Mike Blumenkrantz 89436035d6 map/unmap x11 client windows when toggling iconic state
ICCCM 4.1.4
2015-09-25 22:41:29 -04:00
Mike Blumenkrantz 254494a7df initialize pixmap size vars in comp resize interceptor
these are never uninitialized when they are used, but this
is not obvious to the reader

CID 1324956, 1324956
2015-09-25 22:41:23 -04:00
Mike Blumenkrantz bfeeae6adf fix handling of x11 ICCCM WithdrawnState
according to ICCCM 4.1.4:
Only the client can effect a transition into or out of the Withdrawn state

withdrawn windows cannot be shown under any circumstances. the best that can
be done is to try mapping the window and hope it decides to appear.

to prevent any inadvertent showing of the window before it leaves the
withdrawn state, we play games with the E_Client->ignored flag in order
to skip client evals until we get notified that maybe we want to stop
skipping those evals

ref T2745

also includes 0e3cc2f533
2015-09-25 22:40:15 -04:00
Mike Blumenkrantz d7d7853856 check warp_client existence during pointer warp before dereferencing it
ref T2679
2015-09-25 16:27:24 -04:00
Mike Blumenkrantz aa665020e6 set comp object client_inset.calc based on frame_object existence 2015-09-24 16:42:31 -04:00
Mike Blumenkrantz 351fbd1772 block border-affecting client functions for csd clients 2015-09-24 16:42:31 -04:00
Mike Blumenkrantz 5cd84add0e block border-affecting entries from showing up in client menu with csd 2015-09-24 16:42:31 -04:00
Mike Blumenkrantz 0bf031f282 fix e_shelf_position_calc() to not set struct members before applying them
fix T2743
2015-09-24 16:42:31 -04:00
Mike Blumenkrantz fc1da30ad4 add util function for determining if a client is allowed to have a frame
returns false if mwm borderless is set or if csd exists
2015-09-24 16:42:31 -04:00
Mike Blumenkrantz 53e0c56f5e fully support _GTK_FRAME_EXTENTS
gtk apps set an atom which provides information about the area
where non-window content (eg. shadows) may be drawn; this area
must not be used in placement calculations.

the easiest method for implementing this functionality was to add
a case to the compositor geometry interceptors which effectively
flip the client struct geometry values such that the E_Client->client
is outside of the more commonly used E_Client->x/y/w/h

fix T2744
2015-09-24 16:42:24 -04:00
Mike Blumenkrantz 0692c736d0 broadcast support for _GTK_FRAME_EXTENTS
this is not actually supported yet, so behavior of windows using this
feature will be more wayland-like, eg. geometry determined by area
of window+shadow

fix T2744
2015-09-24 16:35:55 -04:00
Mike Blumenkrantz cf7845de72 19.11 NEWS updates 2015-09-23 16:09:21 -04:00
Mike Blumenkrantz eb08e5b8b6 19.11 release 2015-09-23 13:05:21 -04:00
Carsten Haitzler 80ddfc7637 deskmirror - fix dangling reference to mirror by refcounting it
add deskmirror refs to avoid segv on shutdown/restart due to mb->m
becoming a pointer to freed (now garbage) memory, so trace every
ref/unref and count them to get it right. crash gone!
2015-09-23 12:17:12 -04:00
Mike Blumenkrantz 6f4d1268d1 fix systray implementation of notifier watcher (StatusNotifierItem)
previously, this would throw dbus errors (or not) and then do nothing in
many cases. now it manages bus/path names more effectively and falls back
to binary image data when an icon path is not available

fix T2626 and probably some others
2015-09-22 18:41:56 -04:00
Mike Blumenkrantz eeda49735c improve client exe_inst creation
ref T2679
2015-09-22 16:01:07 -04:00
Carsten Haitzler d7fdb67488 e - fix crash in desktop lookup+fixup where exe_inst is null 2015-09-22 16:01:02 -04:00
Mike Blumenkrantz f19a122605 attempt to maintain currently-selected kbd layout when modifying kbd list
the previous behavior would just set up the new layouts, resulting in
the first layout in the list being applied. now it should be the case
that if the current layout has not been deleted, it will continue to
remain in effect; alternatively if the current layout has been modified,
it's now more likely to be picked up and used
2015-09-22 14:21:14 -04:00
Mike Blumenkrantz c4f3181895 only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already occurred
allows xkb init to be called repeatedly
2015-09-22 14:21:12 -04:00
Mike Blumenkrantz cce8a47a7e update xkb settings and send xkb update event when calling e_xkb_layout_set()
resolves issue where setting a specific kbd would fail to make settings permanent
as well as not propagating the kbd change to the rest of enlightenment

fix T1810
2015-09-22 13:47:36 -04:00
Mike Blumenkrantz 52c66793f1 calculate comp object visibility regardless of pending damages
in the case of clients on non-visible vdesks, this improves the reliability
of mirrored rendering
2015-09-22 13:22:24 -04:00
Mike Blumenkrantz 7a142970cb do not emit client iconify signal when reapplying compositor theme
this has no effect other than breaking the animation counter for the
client and preventing it from being deleted
2015-09-22 13:21:11 -04:00
Mike Blumenkrantz 8087b84829 redo client maximization when a non-overlap shelf changes geometry
this fixes the annoying case of needing to remaximize all windows when
a shelf resizes in order to account for new geometry
2015-09-22 12:45:26 -04:00
Mike Blumenkrantz 5ae61c954e clamp client geometry to zone during geometry calc
somehow it was possible for client sizes to overflow the zone geometry here
which would end up breaking maximization limits and result in clients
not respecting various geometry boundaries
2015-09-22 12:44:27 -04:00
Mike Blumenkrantz ff1408c040 only unpopulate a shelf when applying new settings if the shelf won't be recreated 2015-09-22 12:44:24 -04:00
Mike Blumenkrantz 8a1634266c block gadcon thaw on unpopulate when gadcon is deleted
saves a huge amount of unnecessary calc time
2015-09-22 12:44:19 -04:00
Mike Blumenkrantz e2dfd33496 unset E_Client->want/take_focus flags during client eval
ref 4a33cd7ba0
2015-09-22 12:06:49 -04:00
Carsten Haitzler 8f69b497b2 e - fm - flush all evas caches to get rid of open file handles b4 umount
this should fix open file handles on unmount by flushing caches first.
not great, but works. long-term have evas not keep file handles open
for 0 refcount cached items.
2015-09-22 12:06:44 -04:00
Mike Blumenkrantz 615fd46224 apply vertical maximize algorithm for LEFT/RIGHT maximized windows 2015-09-21 20:06:40 -04:00
Mike Blumenkrantz e4d065370b move focus setting on restart into desk restore function
the focused client on restart needs to be set after desk states
have been restored in order to avoid focusing the wrong client
2015-09-21 20:06:31 -04:00
Mike Blumenkrantz c34e693614 only set focus on clients which are visible during client eval
focusing a client will automatically uniconify and desk flip, so
setting focus on a hidden client should be avoided during eval since
these focus-sets are not "user triggered"

this fixes issues where clients could randomly grab focus from other
desks and also restores expected behavior when restarting e on an
empty vdesk
2015-09-21 20:05:18 -04:00
Mike Blumenkrantz 8b544ca830 do not return non-visible clients for e_client_under_pointer_get()
a hidden client should not be considered "under the mouse" since its
geometry is undefined until it becomes visible again

fix T1069
2015-09-21 17:52:34 -04:00
Mike Blumenkrantz 4606d34c54 add efl versioning for eeze backlight monitoring 2015-09-21 17:26:05 -04:00
Mike Blumenkrantz 033c3c32f0 remove backlight update calls from backlight module
these are no longer necessary since the backlight value should be
kept up-to-date by the core backlight infra
2015-09-21 17:23:55 -04:00
Mike Blumenkrantz b6d243ce1a add eeze watch for backlight events
when using "system" backlight mode, ensure that events are processed
as they occur so that the available backlight level is in sync with
the actual backlight level

fix T2255
2015-09-21 17:23:54 -04:00
Mike Blumenkrantz a108d8ec6a only lower x11 layer windows for layers which have windows during init 2015-09-21 16:55:03 -04:00
Mike Blumenkrantz 67524ac921 re-set internal ee win after applying alpha
changing a window's alpha causes it to be recreated in the engine
2015-09-21 16:51:41 -04:00
Mike Blumenkrantz 404bbd8e51 decode .desktop link and directory uris in fileman menus
fix T1922
2015-09-21 16:16:13 -04:00
Mike Blumenkrantz ba84edbdb7 always set alpha for internal wins
due to the presence of color classes on internal windows, e must
ensure that users who set translucent colors for window base objects
get transparency as expected on those parts of the window. it's impossible
to determine in advance whether alpha is needed, so it's best to just
set alpha in all cases

fix T2050
2015-09-21 15:20:22 -04:00
Mike Blumenkrantz 7925bb3923 make bgpreview widget work with panoramic wallpapers 2015-09-21 15:07:04 -04:00
Mike Blumenkrantz d01f036833 send FLOAT_SET edje messages during desk flip
panoramic wallpapers are created to expect this type of message

ref T2219
2015-09-21 15:04:10 -04:00
Mike Blumenkrantz 2ff25a32d8 remove unused variables in ilist widget 2015-09-17 19:12:19 -04:00
Marcel Hollerbach 614e3ff99e deskmirror: check if ec is not null before accessing it
Summary: ec can be NULL

Reviewers: devilhorns, zmike

Projects: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D3023
2015-09-16 13:06:59 -04:00
Mike Blumenkrantz 3a0ed0b1c3 add ilist method for setting disabled state
ilist widget adds items in a deferred queue, resulting in attempts to
immediately toggle the disabled state having no effect. now there is
a flag so that items added after the disabled flag have been set will
have the correct state

fix T2730
2015-09-15 13:06:57 -04:00
Mike Blumenkrantz 05a1864b10 unset client hidden flag on config dialogs when activating from another vdesk
fix T2731
2015-09-15 12:47:31 -04:00
Mike Blumenkrantz 5b9723dd88 delete notification mirror objects upon deleting original popup
fix T2722
2015-09-14 13:15:53 -04:00
Mike Blumenkrantz 80c1e367b8 19.10 NEWS updates 2015-09-11 13:11:35 -04:00
Mike Blumenkrantz 439a2c914c 19.10 release 2015-09-11 13:10:17 -04:00
Mike Blumenkrantz e7176b5104 ensure that non-fullscreen nocomp clients have their layers re-set
in the case where a window is fullscreen without having the 'fullscreen'
flag set, the previously-used layer must be reapplied upon nocomp end
in order to avoid breaking the compositor
2015-09-11 13:08:18 -04:00
Mike Blumenkrantz 2f3c0c2930 set 'starting' flag for desk show in e_zone_desk_count_set()
as a result of earlier changes which prevented recursive desk flips,
e_desk_show() now rejects some desk show calls which are invalid such as
a show where the "current" desk does not have the visible flag set. this
behavior is overridden in the case of startup, which is functionally the
same effect as changing the desk count

fix T2717
2015-09-11 13:01:17 -04:00
Carsten Haitzler b79fde5de7 e comp - set rects to null to silence compiler warning
even though n is 0 and we don't use rects, compiler doesn't know, so
to avoid noise - set to null so we can focus on warnings of real errors.
2015-09-11 13:01:16 -04:00
Mike Blumenkrantz 714353be47 add extreme hacks to enforce nocomp stacking policies
if windows set to "Always on Top" exist while the option to allow
windows over fullscreen windows is enabled, enabling nocomp will
result in the above windows being stuck over the nocomp window

instead, force the nocomp window to be the top-most window in all cases,
and then put it back if another object appears on the screen over it

fix T2703
2015-09-08 18:44:55 -04:00
Mike Blumenkrantz 2c77b0591a ensure that normal clients are stacked below overrides when raising
when a client is set to "Always on Top", it will be on the same layer
as override clients. this can cause strange stacking and mouse eventing
in cases where these windows occupy the same space and the normal client
is stacked over the override
2015-09-08 17:51:21 -04:00
Mike Blumenkrantz b23f3cabd8 unshade clients when activating
fixes issue where an activated client on another vdesk which was shaded
would appear to be unshaded but was, in fact, shaded
2015-09-08 17:02:42 -04:00
Mike Blumenkrantz 579b5dcb76 force-disable refocus during desk flip on client activation
this prevents an infinite focus loop where focus will be constantly
reapplied between multiple windows if the activated window is not the
refocus window
2015-09-08 17:02:40 -04:00
Mike Blumenkrantz c2b9008f11 explicitly show the client object of internal window during show
fix T2690
2015-09-07 12:06:53 -04:00
Mike Blumenkrantz 258680e60c fix x11 compositor to use damage events
it seems that since the first version of the enlightenment compositor
in e17, damage events in x11 have never been used correctly. using
the event struct members will only give the bounding box/area instead
of the damaged regions; the real regions must be explicitly fetched
from the server

this removes the need for a lot of hacks which were added over the years
to make override windows render correctly, and also probably reduces
rendering overhead slightly
2015-09-07 11:17:17 -04:00
Simon Lees 193a8d5b8a Wizard: Update icon theme search list
Summary:
@fix The list of icon themes in the search list is quite out of date
it doesn't include the icon themes used by gnome3 or kde4/5 this means
for a lot of users at first boot e has alot of missing icons.

The Icon sets that have been added are as follows
      "Oxygen",            /* KDE 4 */
      "Adwaita",           /* Gnome 3 */
      "Breeze",            /* KDE 5 */
      "HighContrast"

This change will cause T1732 and T1923 to not occur for almost all users
but it does not fix them properly the code should be modified to fall back
to pick up icons from fallback locations such as the hicolor theme if no
icon theme is set.

It would be nice if someone could backport this to e19 I don't know how to

Reviewers: bu5hm4n, zmike, raster

Reviewed By: raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2377
2015-09-06 13:21:54 +09:00
Mike Blumenkrantz 068497017b 19.9 NEWS updates 2015-08-21 17:54:27 -04:00
Mike Blumenkrantz bbade3286a 19.9 release 2015-08-21 17:49:55 -04:00
Mike Blumenkrantz edc5ff9f7b remove bz2 from dist
apparently people don't use this anymore or something
2015-08-21 17:49:55 -04:00
Carsten Haitzler 46eadb3c16 e - systray - add more sizes to icon hunt to fix missing icons
some systray indicator icons are not found because the sizes are not
in the list. fix this. this SHOULD actually use our existing efreet
icon theme finding to auto-switch file based on size changes.
2015-08-21 17:46:55 -04:00
Mike Blumenkrantz ea64775132 remove dirty callback for deskmirror clients upon creating visual
if another callback triggered the creation of a deskmirror visual while
the dirty callback was in place, a second mirror object would be created
leading to an orphaned mirror object which retained references to the dm
client and eventually resulting in a crash
2015-08-21 17:16:48 -04:00
Mike Blumenkrantz 44b7790cce simplify e_desk_show visibility unsetting, reject recursive desk flips
the currently visible desk for a zone is stored on the zone struct, so
iterating here is unnecessary. furthermore, at the time when a desk is hidden,
a client may begin receiving mouse events which could trigger a focus-set and
lead to another desk flip. at this time and only this time, the "current" desk
will be marked as not visible, and so this sort of desk show must be rejected

fix T2676
2015-08-21 16:46:21 -04:00
Mike Blumenkrantz a8f301748c track focus time for x11 canvas focus, unset client focus on x11 canvas focus-in
in the case that the canvas window has just had focus set on it, apply this focus
and ensure that no client retains focus

this resolves a race condition where focusing the compositor canvas <-> client
extremely quickly would result in a client trying to steal focus when it was
not actually focused

a notable (but trivial) side effect is that now when flipping desks at high speed while using
mouse-based focus policies, the user is almost guaranteed to end on a desk which
has open windows on it
2015-08-21 16:45:57 -04:00
Mike Blumenkrantz 625088f296 reject focus-set attempt if desk flip to client's desk was rejected
in the case of recursive desk flips, toggling a desk's visibility may
erroneously send queued evas events to the client's frame object, leading
to a focus-set (mouse-based focus models) which triggers a desk flip
inside the original desk flip. this "inner" desk flip is spurious and
should be ignored
2015-08-21 16:43:59 -04:00
Mike Blumenkrantz 094fc3c15c add full damage for x11 override clients on resize configure event
it seems that the reported damage events upon resizing an override window
are not accurate, and so we must force a full damage here while avoiding a
render queue in order to ensure that the full contents of the override will
be rendered in the next frame

fix T2045
2015-08-21 16:43:44 -04:00
Mike Blumenkrantz 83351e34dc don't watch dirty smart cb for desmirror clients with unusable pixmaps
this seems to fix an extremely rare issue related to both deskmirror artifacts
and crashes in deskmirror during restart; I was only able to reproduce the crash
twice in the span of over an hour of testing and it seemed to disappear after
this change
2015-08-21 16:43:36 -04:00
Mike Blumenkrantz c5f1932dc2 only check dirty smart callbacks on non-new_client deskmirror clients 2015-08-20 22:03:46 -04:00
Mike Blumenkrantz 77d82a7d87 remove dirty smart callback from deskmirror clients during client delete 2015-08-20 22:03:38 -04:00
Mike Blumenkrantz 50606411cc remove pager mirror delete callback during pager win delete 2015-08-20 22:03:31 -04:00
Mike Blumenkrantz 1ffe765fda watch dirty smart cb for currently unredirected clients in deskmirror
these clients will be unable to create a comp mirror until this callback
is triggered

fix T2585
2015-08-20 15:58:44 -04:00
Mike Blumenkrantz b85005f672 return false when failing to create a mirror during deskmirror obj check 2015-08-20 15:58:37 -04:00
Mike Blumenkrantz 6298e7d81c add some smart callbacks for comp objects on redirect/dirty state change 2015-08-20 15:58:28 -04:00
Mike Blumenkrantz ba15a571b5 force render queue and check for redirection on clients with 0x0 pixmaps
fixes an issue where resizing the current nocomp client could result in a
broken compositor until a render queue was triggered
2015-08-20 15:58:22 -04:00
Cedric BAIL 1f17ec5781 battery: let's finally allow the battery process to rest also when enlightenment die. 2015-08-19 16:48:40 -04:00
Cedric BAIL 8d5c5a44f1 temperature: let's finally allow the temp process to rest also when enlightenment die. 2015-08-19 16:48:33 -04:00
Mike Blumenkrantz 534c7cde11 feed mouse-up event during mouse down on menus
this fixes the case where the mouse is moved while the mouse is pressed
so that the selected menu item will continue to follow the mouse

fix T2127
2015-08-19 15:16:23 -04:00
Mike Blumenkrantz 7f8f136a2a redo fileman menus to only scan the first 100 items found
this was meant to be a quick way to navigate directories, not a fully
operational filemanager in a menu

fix T2462
2015-08-19 15:15:22 -04:00
Mike Blumenkrantz b274b2f619 do not relaunch relaunchable quickaccess windows during logout
fix T2492
2015-08-19 15:14:29 -04:00
Mike Blumenkrantz 939ae73315 set 'stopping' during logout action
this flag is used in some cases to determine whether to behave as
though enlightenment is stopping. in the case of logout, we are stopping.
2015-08-19 15:14:26 -04:00
Mike Blumenkrantz 65d5e1ba7d don't set E_Client->changes.visible on successful show/hide
iirc this was a fix for something else that was going on early in
e19 development, now it creates issues when attempting to hide clients
2015-08-19 14:03:34 -04:00
Mike Blumenkrantz ebac1de8f2 only use deferred focus-setting on desk flip focus if client is not visible 2015-08-18 21:07:37 -04:00
Mike Blumenkrantz 5edb052b87 unset E_Client->want/take_focus flags in hide callback
deferred focus should no longer be valid if a client has been hidden
before the focus-set could be triggered

fixes super fun infinite loop with desk flips
2015-08-18 18:21:06 -04:00
Mike Blumenkrantz 239bbf95cf do not modify E_Client->visible value in show/hide callbacks 2015-08-18 18:21:05 -04:00
Mike Blumenkrantz d6baf3c5ce use better keybind activation logic
fixes a case where keybinds would not activate if no windows were
focused
2015-08-18 18:20:29 -04:00
Mike Blumenkrantz 19caf62872 reject x11 NotifyVirtual and NotifyInferior mouse in events more accurately
these events are valid when moving from parent<->child window

fix T2674
2015-08-18 17:23:51 -04:00
Mike Blumenkrantz 90e18c2bab add event rect for deskmirror in pager/taskbar modes
ensures that events are properly triggered and consumed when this
widget is clicked on

fix T2645
2015-08-17 15:00:23 -04:00
Mike Blumenkrantz 84d0a5c958 19.8 NEWS updates 2015-08-05 12:55:17 -04:00
Mike Blumenkrantz 5e80390ce1 19.8 release 2015-08-05 12:53:46 -04:00
Mike Blumenkrantz 3cb534bb94 show drag object immediately when beginning a drag
fixes flicker at start of drag
2015-08-05 12:48:56 -04:00
Carsten Haitzler 4a48aa32d5 e - shelf menu - handle deletion properly if cb is not for shelf menu
it seems that some changes now make the shel menu post callback be
called for older menus not part of the shelf and thus shelf menu
stored != menu the cb is for - thus resulting in deletion of the wrong
menu
2015-07-31 16:18:00 -04:00
Carsten Haitzler 40caec09e9 e menu - an extra object ref causes menus to never be freed
this has been in e for ages - someone not noticed, but this fixes
visual artifacts of left over menus on the top-left. this extra ref
really makes no sense. it's not like this ref is then accomoanied by a
matching unref somewhere else (after much debugging).

@fix
2015-07-31 16:14:13 -04:00
Mike Blumenkrantz 20ef74ccc5 defer focus-setting on focus revert during desk flip when visibility is pending
in the case that a client is going to be shown on the next loop iteration,
focus setting must still occur and be deferred

this fixes the case of a window appearing on a desk while the user is switching
desks away from it even though this window is attempting to focus itself
2015-07-31 13:58:52 -04:00
Mike Blumenkrantz eea696f9d8 fix wizard module loading when E_MODULE_SRC_PATH is set 2015-07-30 15:42:40 -04:00
Mike Blumenkrantz a3e01008a4 remove spurious focus setting on desk flip without animation
focus gets automatically handled in e_desk_flip_end(). changing it
again here will produce unintended/wrong results in some cases

fix T2071
2015-07-29 19:48:35 -04:00
Carsten Haitzler b321e221b6 e - warning fix - fix SVID_SOURCE complaint warning
reduces useless warnings so we see the real issues, not noise
2015-07-29 17:43:29 -04:00
Mike Blumenkrantz b5e28c8885 add fallback loading of default theme on init
this should fix cases where whatever the user-set theme is doesn't provide
a required group by filling it in

fix T2210
2015-07-29 17:42:55 -04:00
Mike Blumenkrantz a131165174 use gadget zone for evry gadget launcher
probably fixes T2423 maybe
2015-07-29 17:27:27 -04:00
Mike Blumenkrantz e2488a04aa fix build break from previous commit 2015-07-28 23:46:11 -04:00
Mike Blumenkrantz af230fc7f6 disable ecore-evas events on client windows during actions
this is a not-great way of hacking around various issues related to
the efl mouse button cancel patches that went in for the 1.15 cycle
which changed the entire mouse input workings of the toolkit.

to avoid further issues, the compositor will explicitly block eventing
on all internal canvases during actions
2015-07-28 16:49:18 -04:00
Mike Blumenkrantz bbecf27c97 reject x11 NotifyVirtual and NotifyInferior mouse in events
these are triggered "in passing" when mouse in events occur and do
not necessarily indicate that the mouse has entered this specific window

failing to reject such events can cause mouse-based focus policies to
attempt to set focus onto windows which are not visible, resulting in
an infinite loop where no window is actually focused
2015-07-27 13:29:06 -04:00
Mike Blumenkrantz 7203abf8a3 allow x11 mouse wheel events to check ev->event_window for possible client match
in the event that these windows are different, event_window is the parent of window
which may or may not be explicitly tracked by an E_Client, so the wheel events here
should be sent to the parent as is done in mouse button events

fix T2604
2015-07-27 13:27:57 -04:00
Mike Blumenkrantz b81849009d 19.7 NEWS updates 2015-07-24 13:24:03 -04:00
Mike Blumenkrantz 2884ef284d 19.7 release 2015-07-24 13:23:03 -04:00
Mike Blumenkrantz a0ac666b47 improve x11 compatibility with efl versions earlier than 1.15
canvas grabs changed completely in 1.15, and so it's required that
x11 grab handling also have special runtime cases for this

for such versions the compositor must:
* always grab the internal client window instead of the parent
* always ungrab the window when it has focus
2015-07-24 13:19:11 -04:00
Mike Blumenkrantz 510660e157 use runtime check for determining x11 compositor grab behavior
this should fix the case of users not recompiling enlightenment after
upgrading their efl version
2015-07-24 13:00:16 -04:00
Mike Blumenkrantz 9eb813b939 19.6 NEWS updates 2015-07-23 14:10:12 -04:00
Mike Blumenkrantz 2b733b7443 19.6 release 2015-07-23 14:07:14 -04:00
Mike Blumenkrantz 73102c7048 simulate modal windows for badly behaved x11 clients
it seems that some clients, eg. libreoffice, don't set the modal window
property on child dialogs. instead of fighting for focus, set up the child
as a modal on the parent and then avoid the whole issue

fix T2594
2015-07-21 18:35:47 -04:00
Mike Blumenkrantz 64add23543 always stop passing key events on once they reach the lokker callback 2015-07-21 14:37:47 -04:00
Mike Blumenkrantz ef18cc3f93 ensure clients possess comp_data before dereferencing it during x11 stacking
ref T2566
2015-07-21 14:36:33 -04:00
Mike Blumenkrantz a6990c69a8 never use new clients for stacking part 2: the secret of the stacking
a client with this flag set here is unreliable to use as a stacking
reference since it has yet to be stacked and can be located anywhere
in the window stack.

fixes internal window stacking on startup
2015-07-15 16:26:06 -04:00
Mike Blumenkrantz 8fb7bb18bd ensure that focus is set and focus stack is managed on winlist hide
if pointer warping is disabled, attempting to pointer warp with mouse-based
focus policies will fail here, preventing focus from being applied as expected

ref T2566
2015-07-15 16:25:07 -04:00
Mike Blumenkrantz 3dfb5e07af only trigger client mouse-in from x11 mouse move event if client+desk are visible
ref T2566
2015-07-15 16:24:50 -04:00
Mike Blumenkrantz 75df7e0943 only unset e MANAGED atom on non-shutdown
broken during a bad rebase of 4f8af72fe3
2015-07-15 15:19:24 -04:00
Mike Blumenkrantz 276d979534 fix compile warning 2015-07-10 13:11:42 -04:00
Mike Blumenkrantz b8ee271011 always set x11 override client geometry on startup
this geometry isn't something we can change later, so apply it now.
also fixes an ACK when trying to show input_only clients early
2015-07-10 13:10:41 -04:00
Mike Blumenkrantz 4f8af72fe3 move grabinput focus fix timer to x11 compositor and fix it to Work Better
see inline comments about x11 focus eventing for details

fix T2547
2015-07-08 12:49:06 -04:00
Mike Blumenkrantz 2342a4d38f fix compile against newer efl 2015-07-08 12:46:05 -04:00
Mike Blumenkrantz 0fa853d742 account for race condition when creating initial comp object updates tiler
added to maintain compositor logic parity
2015-07-08 12:45:41 -04:00
Mike Blumenkrantz eef5efe8c3 move E_Client->mouse.in to E_Client->mouse_in to avoid abi breakage 2015-07-07 13:15:45 -04:00
Mike Blumenkrantz 303edb544d block client signal binding activation when mouse action is active
this prevents oddities such as activating [window shade] and [resize] actions
simultaneously from breaking the compositor
2015-07-07 13:12:40 -04:00
Mike Blumenkrantz 2cba6e0417 set CRITICAL urgency for notification internal notifications
ensure that presentation/offline mode toggles will display a notify
2015-07-06 16:22:41 -04:00
Mike Blumenkrantz ee17719d28 make pager popups only trigger on urgency hint if client is not currently visible
the annoyance of having this popup constantly triggered while a window is visible
cannot be understated.
2015-07-06 12:48:03 -04:00
Mike Blumenkrantz b8cfc7238c make e_client_util_desk_visible() work for overrides without desks 2015-07-06 12:48:02 -04:00
Derek Foreman 01ef4980d7 wizard: Prevent crash
Summary: If we get here when curpage is NULL, we'll crash later, so we should test for it.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2793
2015-07-03 11:56:05 -04:00
Derek Foreman c9958e8e03 wizard: Prevent crash
Summary: If we get here when curpage is NULL, we'll crash later, so we should test for it.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2789
2015-07-02 18:13:40 -04:00
Mike Blumenkrantz 62da0f32bf do not apply x11 focus grabs to internal clients if efl version > 1.14
due to recent changes in ecore-input-evas, mouse events are propagated
differently; specifically, there are now "more" events than there previously were.
as a result, grabs on internal wins are no longer necessary, though they probably
never were necessary after the elm conversion

see 5cb6cdbc5e1a13ea0262e155983b494e6519abde in efl
2015-07-02 12:35:21 -04:00
Mike Blumenkrantz 632bdd84a7 fix build break from last commit 2015-07-02 12:34:55 -04:00
Mike Blumenkrantz 0c518414e1 reject x11 replay clicks when event window != client window 2015-07-01 18:02:26 -04:00
Mike Blumenkrantz 26c291c02d only ungrab x11 windows when appropriate focus options are set 2015-07-01 16:50:01 -04:00
Mike Blumenkrantz b0df36d595 ensure x11 focus grabs are applied on client init when needed 2015-07-01 15:57:39 -04:00
Chris Michael 099861c55a enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 15:56:20 -04:00
Mike Blumenkrantz 00904480d5 straggler ungrab of x11 parent window from previous commit 2015-07-01 15:33:34 -04:00
Mike Blumenkrantz f1fdb26d20 redo all x11 client mouse grabbing for focus
I did an audit of this and it seemed that it no longer served the purpose
for which it was originally intended. specifically, this is for enforcing
click: raise/focus options, and so grabs must be in play on client windows
only when they are not focused to ensure that we get mouse events and can
then focus them. the grabs must then be removed once the window has focus
to avoid spurious mouse eventing
2015-07-01 15:32:06 -04:00
Mike Blumenkrantz 87f4a69612 use client window for x11 button ungrabbing
ref afb62b4989
2015-06-30 18:49:26 -04:00
Carsten Haitzler d7f384f092 e passive window grabs - fix side-effect leave/enter events on clients
when you have click to focus we have a passive grab set up. somewhere
that window changed to the parent window instead of the client. this
leads to a side effect of a leave and enter event on clients for every
click. generally clients are ok with this, but some seem to have buggy
event handling. these enter/leave events are a side effect of the
passive grab even though we allow/replay the event.

this fixes that by placing passive grabs on the client window itself
instead of the parent.

@fix
2015-06-30 18:46:07 -04:00
Mike Blumenkrantz 5182693d8d enforce pstate's extremely-confusing no_turbo option in cpufreq
fix T2411
2015-06-29 16:39:06 -04:00
Mike Blumenkrantz cf332e874c trigger client mouse-in on x11 mouse movement for non-action clients
this should fix the case of mouse-based focus policies trying to reapply
focus after another client has stolen it away without the pointer leaving
the window
2015-06-29 16:08:47 -04:00
Mike Blumenkrantz 9e5c227689 trigger fake mouse-out on clients when unsetting focus
this will allow a more reasonable determination of pointer location
when attempting to apply mouse-based focus policies
2015-06-29 16:08:47 -04:00
Mike Blumenkrantz d9b6e25075 add E_Client->mouse.in for determining mouse-in status 2015-06-29 16:08:47 -04:00
Mike Blumenkrantz c8cedae301 unset changes.visible when forcing visibility during no-effect desk flip
this is set for new clients and creates visibility issues on startup
2015-06-29 16:04:43 -04:00
Mike Blumenkrantz a491a3fa9e fix focus FIXME regarding focus-setting on clients from other desks
fix T2259
2015-06-29 16:04:38 -04:00
Mike Blumenkrantz a416f96c12 check for possible parent window on x11 mouse button events
in the case of different window <-> event_window, window is a child window
of event_window, and thus checking event_window here is valid (and necessary)
2015-06-29 16:04:33 -04:00
Mike Blumenkrantz 84ba19d576 stop rejecting possibly-valid x11 focus events
fixes case where window assumes focus without wm interaction
2015-06-29 16:04:26 -04:00
Mike Blumenkrantz 0829f90eb3 only apply deskmirror client visibility logic for non-deleted clients 2015-06-19 14:13:17 -04:00
Mike Blumenkrantz 1e5eea91ee return an accurate value for override clients in e_comp_object_util_zone_get() 2015-06-17 15:59:23 -04:00
Mike Blumenkrantz 0060387189 allow layer-blocked clients in deskmirror to restack 2015-06-16 15:52:02 -04:00
Mike Blumenkrantz cb8f26ad87 fix eo errors for ilist icon select state 2015-06-08 15:01:28 -04:00
Mike Blumenkrantz 3813d00653 fix shelf visibility state signals
previous behavior resulted in hide being sent when animations began
instead of at end
2015-06-08 15:01:28 -04:00
Mike Blumenkrantz 3fc585efa3 fix focusing client on mouse events which trigger actions (with exceptions)
block focus events only if focus has changed to another client or the current
client's layer-actual has been lowered

regression from 719b2baeba
2015-05-21 12:32:40 -04:00
Mike Blumenkrantz 88cb4541bd allow new fullscreening clients to replace current nocomp where applicable 2015-05-18 13:22:53 -04:00
Mike Blumenkrantz faf4ec630c force xwindow stacking to obey nocomp policy and stack below current nocomp
fix T2277
2015-05-18 13:22:26 -04:00
Mike Blumenkrantz 2b1b6def72 reject client fullscreening based on config and desk visibility 2015-05-18 13:21:45 -04:00
Mike Blumenkrantz 40fc1c0496 19.5 NEWS updates 2015-05-04 12:28:46 -04:00
Mike Blumenkrantz 32011517d1 19.5 release 2015-05-04 12:27:25 -04:00
Jean Guyomarc'h 35bba6b6c0 e_ipc: fix creation of IPC server when $DISPLAY is a path
Summary:
Some implementations of the X server (e.g. Xquartz) define their $DISPLAY
as a path. Since ecore_ipc_server_add() does not create non-existant
directories, and since it may not worth to hide the socket in a complex
path, this patch aims at reducing the $DISPLAY by only keeping its basename.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2465
2015-05-02 10:05:30 -04:00
Mike Blumenkrantz aede452083 fix infinite loop when changing ibar sources
fix T1951
2015-04-30 17:08:17 -04:00
Mike Blumenkrantz f28eec002a prune module config list when loading a module
it's somehow possible to get multiple instances of a module in the config.
since I don't know whether this is a current or past problem, prune the list
on every module load to remove subsequent instances of the module

fix T2181
2015-04-30 17:07:55 -04:00
Mike Blumenkrantz 6530a73db8 fix notification text to conform to spec and libnotify implementation
fix T2053
fix T2187
2015-04-30 14:16:50 -04:00
Mike Blumenkrantz 829ecc3cc0 try hicolor icon theme as fallback for fdo icon setting if user's theme fails
fix T2142
2015-04-30 14:16:48 -04:00
Mike Blumenkrantz bdd2fa905f change default icon theme to hicolor
ref T2142
2015-04-30 14:16:48 -04:00
Mike Blumenkrantz 21536ffa96 force visibility on clients before attempting to hide them
this ensures that edje visibility states get reset in the event of toggling
visibility extremely quickly

probably fixes T2260
2015-04-29 22:08:34 -04:00
Mike Blumenkrantz 7a028f37f3 only apply mouse down focus events if a binding did not run on the same event
fixes the case of enabling "raise on click" and also having a mouse binding
for "lower on click" active

fix T2364
2015-04-29 22:08:26 -04:00
Mike Blumenkrantz aa71cd734c freeze evas events on clients during keyboard move/resize actions
fix T2112
2015-04-29 22:08:22 -04:00
Mike Blumenkrantz 19c652e069 rename client menu move/resize items to indicate real function
ref T2112
2015-04-29 22:08:18 -04:00
Carsten Haitzler cbe533c848 e client - desk wait - ref it properly and clean up delfn
delfn's on desks being referred to as profile.wait_desk were never
cleared when client was freed. als the desk itself never got an obj
reference - fix that and ref/unref it.
2015-04-28 12:29:54 -04:00
Carsten Haitzler cd04374949 e - xsettings - calloc buffer since we leave 3 of 4 bytes unset
the first 4 bytes is a msb/lsb thing for xsetttings - we ignore 3 of
the 4 bytes. thus we should just calloc the whole buffer to ensure its 0
2015-04-28 12:29:49 -04:00
Mike Blumenkrantz 187608ba7a use client geom for comp object centering functions if ec->new_client is set 2015-04-28 12:27:33 -04:00
Mike Blumenkrantz 85e9c985b0 ensure client max w/h props are set before applying them to client geom 2015-04-28 12:24:19 -04:00
Carsten Haitzler 7c868b5be1 e_shelf - check visiblity with zone and desk FIRST not later
es->cfg->desk_show_mode if false (default) implies a shelf is always
visible - true, as it's sticky (visible on all desktops). but this
didn't check zone. check zone first THEN this.
2015-04-28 12:23:14 -04:00
Mike Blumenkrantz 3807b38b72 fix submenu visibility during scroll
sometimes while quickly moving the cursor through menu items with submenus
the visibility flag would toggle more quickly than the menu object's visibility.
this is no longer the case
2015-04-20 18:09:36 -04:00
Mike Blumenkrantz 2710acb0fd attempt to decode notification image uris with efreet before showing them
fix T1939
2015-04-20 17:25:56 -04:00
Mike Blumenkrantz 081c1d2b7d remove eina_streq usage
efl required version did not implement this function
2015-04-20 17:19:08 -04:00
Mike Blumenkrantz f5273475eb clear app menu cache any time a desktop is edited internally
ref T2271
2015-04-20 16:06:21 -04:00
Mike Blumenkrantz a312cc2429 add function for clearing app menu cache
ref T2271
2015-04-20 16:06:20 -04:00
Mike Blumenkrantz b01df0c92d remove contact module
this is dead. dead code does not belong in master.

see devs/discomfitor/e_module-contact.git
2015-04-20 15:43:12 -04:00
Mike Blumenkrantz 5b7ad4d342 swap key -> keyname when attempting to bind lparen/rparen keys
this is impossible to grab on X, so ensure the generated binding is usable

fix T2059
2015-04-20 15:34:39 -04:00
Mike Blumenkrantz 92d8abd38c use client geometry for starting unmaximize calculations
the resize operations in this function operate off client geometry, so
stop using frame geometry

fix T2170
2015-04-20 15:34:37 -04:00
Mike Blumenkrantz ad39ca0425 fix evry comparison macro to work as expected
missing parens = !operating as intended in many cases
2015-04-14 20:44:36 -04:00
Mike Blumenkrantz 5f5786ab50 fix nocomp_override conditional which would inaccurately toggle nocomp
hooray gcc 5.0
2015-04-14 20:38:43 -04:00
Bertrand Jacquin d2beb17591 MEDIUM: modules/shot: switch to https://
This is needed since www.enlightenment.org is now using https:// only due to
login forms
2015-04-13 16:22:49 -04:00
Mike Blumenkrantz 2a6f49b163 allow client icon change events in ibar client prop handler
fix T2284
2015-04-13 16:22:36 -04:00
Mike Blumenkrantz facd645829 set E_Exec_Instance desktop during client idler if none present
ref T2284
2015-04-13 16:22:32 -04:00
Jean Guyomarc'h 5caad49368 modules/bluez4: fix duplicated symbol
Summary:
Global variable should be declared as extern to avoid symbol duplication.
Fix compiling of ebluez4 module on OS X.

Test Plan:
Since Enlightenment cannot (yet) be fully compiled on OS X, I cannot test
the real-life impact of this change.

Reviewers: zmike, raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2327
2015-04-13 16:22:22 -04:00
Mike Blumenkrantz 5992134020 set xkb dialog as changed after adding a new layout
ref T2271
2015-04-09 16:46:20 -04:00
Mike Blumenkrantz 4207c1240e raise deskmirror windows on startup
these get added bottom -> top on creation, so ensure that they are raised
2015-04-09 14:21:01 -04:00
Mike Blumenkrantz 2091ef60d8 always lower e_layout children upon packing
fixes issues where a new child added would appear above other child objects
if the new child was meant to be stacked below other children

mostly noticeable in deskmirror
2015-04-09 14:20:59 -04:00
Mike Blumenkrantz 66da90fa0f remove layer setting from deskmirror
smart child objects can't have layers. apparently.
2015-04-09 14:20:56 -04:00
Mike Blumenkrantz 4545d4a700 fix straggler container text in mousebindings config 2015-03-20 15:19:09 -04:00
Mike Blumenkrantz b4180e87fa fix ibar drop calc to not unexpectedly trigger epileptic seizures in users
when attempting to drop on an icon, the drop area geometry was never included
in the calc, resulting in the drop changing between positions on every frame
2015-03-11 16:08:00 -04:00
Mike Blumenkrantz 6c7cbda881 slight ibar dnd optimization when checking taskbar apps for drop site 2015-03-11 16:06:46 -04:00
Carsten Haitzler 666da6ab83 e clients - make sure we handle client with a NULL zone 2015-03-11 16:05:52 -04:00
Mike Blumenkrantz 31bf6cb7e6 don't modify pixmap hash when changing pixmap parent window
moderately certain I originally wrote this to work in the other direction
and then failed to remove it when I switched to setting parents instead of
children. regardless, pixmap hash should not be changed here
2015-03-11 16:03:27 -04:00
Mike Blumenkrantz 5e48e67b23 fix crash when using e_comp_object_util_center_pos_get() with non comp_objects 2015-03-06 18:57:37 -05:00
Mike Blumenkrantz baf9640ef5 fix horizontal/vertical smart maximize
fix T2170
2015-03-06 17:18:15 -05:00
Mike Blumenkrantz d3d4cbd616 use stderr messages when failing to init X compositor
can't show error dialogs when we're about to exit, may as well print something useful

fix T2182
2015-03-06 15:02:20 -05:00
Mike Blumenkrantz 28d85ea90a exit immediately if any unrecognized arg is passed on startup
ref T2182
2015-03-06 15:02:13 -05:00
Mike Blumenkrantz 35e1e2488f never resize client clip object 2015-03-04 17:08:23 -05:00
Mike Blumenkrantz 1d4f7027a4 set ec->fullscreen before applying fullscreen geometry 2015-03-04 17:08:22 -05:00
Mike Blumenkrantz f3d82e975a pre-escape all notification body texts before display or merge
this fixes notification merging again

ref T2053
2015-02-25 20:07:19 -05:00
Mike Blumenkrantz 72b61813b9 19.4 NEWS updates 2015-02-25 16:02:33 -05:00
Mike Blumenkrantz b18fc2297c 19.4 release 2015-02-25 16:01:42 -05:00
Mike Blumenkrantz 82f8660e12 remove wayland-only support
this was not in good shape for the original e19 release and should not have existed then
2015-02-25 15:57:17 -05:00
Carsten Haitzler e7924ad814 e - menus - fix submenu popup direction when zones are not at 0 y 2015-02-25 15:48:58 -05:00
Carsten Haitzler df7a245f55 e - menus - fix autoscroll on zones not at 0 y... 2015-02-25 15:48:53 -05:00
Carsten Haitzler 1815275df5 efm - make dir listing far faster - no file magic content and dont sync
this speed sup dir listing in efm drastically. first the e fm back end
uses an io thread that just spools through everything fast and sends
it over the mainloop to then send by ipc to e.

and on the e side we no longer use the heavy file internal magic using
api calls that wander all over a file for magic numbers - this is
insanely slow and brings listing to a crawl.
2015-02-24 13:09:05 -05:00
Mike Blumenkrantz 9b1878d2fa fix border frame color classes to be configured as solids, not text
fix T1637
2015-02-23 17:55:39 -05:00
Chidambar Zinnoury 5ce04265e5 Bugfix: e backlight: use saner default values.
The brightness scale goes from 0 (well, 1) to 100: 0.1 thus seems too low a step, 10 being better and is actually already used.
2015-02-23 17:35:08 -05:00
Mike Blumenkrantz 577a577dbd don't clamp bgpreview vsize if bgpreview is a fullscreen overlay 2015-02-23 17:34:42 -05:00
Mike Blumenkrantz e79bd2f928 fix appindicator icon loading when using IconThemePath key
fix T1888
2015-02-23 17:23:53 -05:00
Mike Blumenkrantz 931f1a830f set default text for edgebindings caption when no bindings exist 2015-02-23 16:54:01 -05:00
Mike Blumenkrantz f7c07dd086 fix dialog sizing when icon setting fails 2015-02-23 16:54:00 -05:00
Mike Blumenkrantz 8691d860fb remove unnecessary icon setting and fix sizing in edgebindings
ref T2144
2015-02-23 16:53:58 -05:00
Mike Blumenkrantz 800ec5eaa3 do not reapply focus on canvas object ungrab/close for pointer-focus enthusiasts 2015-02-20 09:56:15 -05:00
Mike Blumenkrantz c15e0848b5 revert some comp object debugging bits that snuck into another commit 2015-02-19 11:13:46 -05:00
Mike Blumenkrantz 2d4929e68e rename extremely frustratingly-named E_Screen_Limits enum and members
this came in a patch that I take full responsibility for not adequately reviewing at the time.
the names are confusing and counterintuitive, and it does not properly include the client namespace.

backported to avoid future backport conflicts
2015-02-18 18:56:18 -05:00
Mike Blumenkrantz 7ea12ff367 clamp client size to screen when client limit policy does not allow offscreen
fix T1779
2015-02-18 18:38:39 -05:00
Mike Blumenkrantz e19b19672c fix crashing when changing desklock settings and using pin/personal auth 2015-02-18 17:08:06 -05:00
Mike Blumenkrantz 614ff09656 escape notification popup text...always
fix T2053
2015-02-18 16:53:09 -05:00
Mike Blumenkrantz 9567acde42 don't send unfocused signal to override clients
fix T2099
2015-02-18 16:36:11 -05:00
Mike Blumenkrantz f06634622a use direct path for setting icons in util theme set function when icon is a path
fix T1888
2015-02-18 16:14:54 -05:00
Mike Blumenkrantz 5b84c92f12 block linear desk flips that would wrap if desk flip wrapping is disabled
fix T1948
2015-02-18 16:14:49 -05:00
Dmitry Luhtionov cd80a1ee84 cpufreq: freebsd fixes
This fixes a sysctlbyname lookup and adds a stub for the "pstate"
command. Modified by Daniel Kolesa. Backport of bc41e68.

@fix
2015-02-18 11:34:55 +00:00
Vincent Torri 3bdc2ebbba add MIN define for non-linux systems 2015-02-15 17:54:25 -05:00
Mike Blumenkrantz b4dcd46858 check for eldbus instead of edbus in device backend libs 2015-02-15 17:45:40 -05:00
Mike Blumenkrantz 14930cc7c1 Revert "fix dbus unit installation with DESTDIR"
This reverts commit 3afaafe506.

broken test machine = broken commits :(
2015-02-13 16:48:10 -05:00
Mike Blumenkrantz a9c523721e fix dbus unit installation with DESTDIR 2015-02-12 23:15:44 -05:00
Carsten Haitzler 257118514e e - client list update after adding to client list - fix netwm bug
this fixes T2029
2015-02-12 23:14:59 -05:00
Carsten Haitzler 20cf69893e maximization bug affecting libreoffice and others - fix
the problem is something changes window gravity... what i don't know,
but hey - just forcibly move window to 0,0 which is where we expect it
anyway when resizing.

@fix
2015-02-12 23:14:52 -05:00
Mike Blumenkrantz e7f995294a ensure no duplicate XDG paths are prepended during startup
the previous patch(es) had a number of issues which made them unsuitable for general use:

* only checking "/usr" and "/usr/local" paths, despite this only being accurate if e was installed into /usr or /usr/local

* only checking if the paths were at the beginning of the string, when it's possible that they could be anywhere

* failure to also check XDG_CONFIG_DIRS

* improper formatting: this is a bit of a nitpick, but there are no correct instances of 'strcmp(a, b) == 0' in the e codebase.
2015-01-29 16:07:04 -05:00
Mike Blumenkrantz 1359adbbbd continue to hide window input regions on desk flip if they are shaded 2015-01-23 14:26:59 -05:00
Mike Blumenkrantz afbb478941 NEWS updates for release 2015-01-20 21:59:19 -05:00
Mike Blumenkrantz 6f8b75fb42 19.3 version bump 2015-01-20 21:57:40 -05:00
Carsten Haitzler 88319af396 comp base - make base black. makes for better screenshots of blank areas 2015-01-20 21:52:39 -05:00
Mike Blumenkrantz 4d04162470 don't set deskmirror scale for non-mb objects 2015-01-15 17:18:07 -05:00
Carsten Haitzler 023516621e e - force a config flush before sys actions that could kill e
@fix

this should fix T1988. after some looking here is what i think is
happening. he is asking the system (sysvinit or systemd) to
halt/reboot, but these end up killing the e process before it can save
its config that is lurking around still in ram as opposed to on disk,
so puttting in a config flush before beginning such a system action
will ensure everything is on disk.
2015-01-13 23:03:32 -05:00
Mike Blumenkrantz 23e37eed8a fix build from tarball when configured mount backend is different from origin
previously the generated e_fm_shared_types.h file was wrongly distributed with the rest of the source tree when it should not have been
2015-01-11 12:58:17 -05:00
Mike Blumenkrantz f7701ff905 don't change shade.x/y during unshade or after shade
fix T1930
2015-01-08 18:23:48 -05:00
Mike Blumenkrantz 0d32652545 check focus after X nocomp end
fix T1768
2015-01-08 18:23:46 -05:00
Mike Blumenkrantz be0d07877e add E_VERSION_MAJOR define for external module usage
this should simplify writing modules with conditional code for different versions of e
2015-01-05 15:51:35 -05:00
Mike Blumenkrantz 963d033699 disable client stack debugging
this should have been turned off for e19 release but I forgot
2015-01-05 15:51:11 -05:00
Tom Hacohen 9be07cfdb5 Tiling: don't try to change the border of borderless windows.
@fix
2015-01-04 13:45:47 +00:00
Mike Blumenkrantz 7570d8809e completely block border changes on MWM borderless windows
ref T1963

seriously.
2015-01-03 00:44:19 -05:00
Mike Blumenkrantz f53936eaba don't set gravity on client windows during X move/resize
fix T1940
2015-01-03 00:44:17 -05:00
Chris Michael 54ccf33b9d Cleanup teamwork module from having missing initializerss for Eldbus
Messages & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:40:15 -05:00
Chris Michael bafa13091e bugfix: Cleanup systray module having missing initializers for Eldbus
Message & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:40:11 -05:00
Chris Michael 3c7a977291 bugfix: Cleanup msgbus module from having missing field initializers
for Eldbus Messages & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:40:02 -05:00
Chris Michael f909d7680f bugfix: Cleanup fileman module from having missing initializers for
Eldbus Messages & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:39:53 -05:00
Chris Michael a2ebefc510 bugfix: Cleanup bluex module having missing initializers for services
& icons

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:39:49 -05:00
Chris Michael cd48d7a852 bugfix: Cleanup appmenu module having missing field initializers for
Eldbus Messages & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:39:44 -05:00
Chris Michael 5390c49803 bugfix: Fix e_notification file having missing initializers for Eldbus
Messages & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:39:39 -05:00
Chris Michael 0b5ea1f5c2 bugfix: Fix e_msgbus file having missing initializers for Eldbus
Messages & Signals

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-31 15:39:34 -05:00
Mike Blumenkrantz c3e86c328d comp pending resizes should not require both w+h to change 2014-12-31 15:39:06 -05:00
Mike Blumenkrantz ce1f4882b2 don't show mixer popup during nocomp
fix T1270
2014-12-31 15:39:05 -05:00
Mike Blumenkrantz 411b19bd3c don't recalc winlist on client add event if client is not added to winlist 2014-12-31 15:36:26 -05:00
Mike Blumenkrantz 778243824d news update 2014-12-18 11:41:13 -05:00
Chris Michael a3c7ebc28d call e_powersave_init Before we call e_screensaver_init because the
init of e_screensaver sets up an event handler for the
powersave_update event (which would be 0 unless powersave is init
first).

Thanks to dt9 for the report ! ;)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-18 11:40:12 -05:00
Mike Blumenkrantz bd6c9c0aaf news updates 2014-12-16 19:49:49 -05:00
Carsten Haitzler 9df2d5f016 Revert "Randr: Fix null dereference."
This reverts commit 4aef218d28.

Revert "randr: remember crtcid for fast lookup on reconnect"
This reverts commit 55b4ad41d1.

Revert "randr: further cleanup"
This reverts commit 3e02824663.

these make nvidia randr resolution changing work again. sorry seb.
even though cleanups might be nice... this code is FIDDLY and every
driver seems to work differently, so take it easy and be very careful
- make no assumptions. i know it works on my intel desktop and nvidia
deskop atm. once i get a vga cable i'll fix up intel laptop with
external display that has problems. i can try radeon too later. but
right now - this stuff needs to work. being clean is far less
important than working. :)
2014-12-16 19:49:23 -05:00
Carsten Haitzler 19621ec426 Revert "randr: Don't track active outputs"
This reverts commit 01f43e3618.

this broke nvidia randr - i cant tunr my screens on or off anymore.
2014-12-16 19:49:21 -05:00
Mike Blumenkrantz b4abf0b40c 19.2 version bump 2014-12-16 16:44:01 -05:00
Mike Blumenkrantz 38975b6307 update news for 19.2 2014-12-16 16:44:01 -05:00
Stefan Schmidt a2a6bca485 po: Remove file from now disabled access module to pass distcheck 2014-12-16 16:44:01 -05:00
Tom Hacohen 88a0872760 Randr: Fix null dereference.
CID1181926
2014-12-16 16:44:01 -05:00
Sebastian Dransfeld 569eff8750 randr: Don't track active outputs
Remove tracking of active outputs to reduce code complexity.
2014-12-16 16:44:01 -05:00
Sebastian Dransfeld c4dc8c8f04 randr: TODO++ 2014-12-16 16:44:00 -05:00
Sebastian Dransfeld 2ca7a20d85 randr: remember crtcid for fast lookup on reconnect
When an output is set inactive, it is disconnected from a crtc. Now we
remember the id of the last crtc it was connected to, so we get a faster
lookup on reconnect.
2014-12-16 16:44:00 -05:00
Carsten Haitzler 38adb8db89 e randr - restore edp checks
the dp checks were looking for edp stuff. but due to naming they appeard as
eDP or maybe edp or EDP - thus were simplified to dp. put more explicit
checks there.
2014-12-16 16:44:00 -05:00
Sebastian Dransfeld 33d5ebb9fa randr: Don't match DP as LID
On my intel laptop DP are my DisplayPort connections, not LID.
2014-12-16 16:44:00 -05:00
Sebastian Dransfeld cd94ed7052 randr: further cleanup
Primarly two things removed:
1. crtc->outputs should only contain outputs which should be enabled
So looping them twice in e_randr_apply is definitly wrong.

2. _e_randr_crtc_find should find a crtc for an output
So looping our crtcs again in _active_set is definitly wrong. If
_e_randr_crtc_find does not find us a crtc, it should be fixed there.
2014-12-16 16:44:00 -05:00
Carsten Haitzler 71cb5462ba e randr - make it work on nvidia - lots of "wrong" things fixed
i've spent a while testing randr on my nvidia box and drviers. it now
works - i can turn screens on and off. i couldn't before. e_randr was
trying to be too smart for its own good. it wasnt matching up outputs
to crtcs, was thinking outputs active when they were not, etc. etc.
etc. - reality is e_randr could do witha  lot of simplification, but
at this stage i'm just going to hammer it into shape to work across as
many drivers and setups as i can test against.
2014-12-16 16:44:00 -05:00
Marcel Hollerbach 367eea52ec Register the new window into out evas.
Summary:
Otherwise the mouse up event is emitted to the evas but the evas does
not work with it, because it does not know the window it is from. This
leads to a evas_event_down_count_get bigger than 1 which leads to a
missing mouse_out event. With this missing mouse_out event _post_up_handle
in evas_event.c is not called anymore, this means all the click events
are getting emitted to the object which was last clicked.

This fixes T1894.

Test Plan: Drag and Drop a icon somewhere and click somewhere after that, the evas will not get stuck anymore

Reviewers: raster

Subscribers: cedric, abyomi0, zmike, raster

Maniphest Tasks: T1894

Differential Revision: https://phab.enlightenment.org/D1771
2014-12-13 09:18:25 +01:00
Mike Blumenkrantz 003e521b70 store hide_logo state for desklock backgrounds
fix T1714
2014-12-11 12:26:13 -05:00
Mike Blumenkrantz 4da2b0885f apply client size based on correct remember value, only apply if value != 0
ref T999
2014-12-08 17:08:00 -05:00
Mike Blumenkrantz fc16acfb4a remembering size on a window should also remember maximize state 2014-12-08 17:08:00 -05:00
Mike Blumenkrantz 6d7ecefa02 greatly reduce FAILURE_MAX
ref T1820
2014-12-08 17:08:00 -05:00
Mike Blumenkrantz 12f469ad20 remove access module from build
this hasn't been updated in over 1.5 years and has caused me to waste time repeatedly fixing build-related issues. in addition, it uses symbols which are no longer even available in efl.

if nobody updates/maintains this, it will be removed for e20 release

src/modules/access/e_mod_main.c: In function '_cover_new':
src/modules/access/e_mod_main.c:765:4: warning: implicit declaration of function 'ecore_x_input_multi_select' [-Wimplicit-function-declaration]
2014-12-08 17:08:00 -05:00
Mike Blumenkrantz 9d1a3ad45b reduce shape recalc for clients which cannot currently receive input 2014-12-07 20:24:09 -05:00
Mike Blumenkrantz 0d2001013f redo shaped client checks to use shape flags instead of rect pointer, fix shapeless clients
according to the shape extension protocol, the number of rectangles returned should be checked to determine a client's shape. if 0 is returned, the client has no shape, meaning that it either should not be drawn or should have no input region. this improves behavior with various client window types such as tooltips

ref T1820
2014-12-07 20:18:27 -05:00
Mike Blumenkrantz 6f024d3abf add failure count for client rendering, drop clients after FAILURE_MAX tries
this traps clients which are showing and hiding themselves extremely quickly and prevents them from crashing us when we try to draw them

fix T1820
2014-12-07 20:18:27 -05:00
Mike Blumenkrantz e0969644d6 fix X crash when trying to apply desktop window profile to client without desk 2014-12-07 20:18:27 -05:00
Mike Blumenkrantz e3b993a332 ensure clients are visible before triggering shape/render queue 2014-12-07 20:18:27 -05:00
Marcel Hollerbach 8dab06aa9a everything: terminate bc instead of quit
On some systemd SIGQUIT causes the logger to save a coredump.
Quiting bc here does not need save a backtrace here, the termination is
not a crash its a "closing" of the program.
2014-12-06 18:07:55 +01:00
Carsten Haitzler b656546184 e randr - fix warning (signed vs unsigned cmp) 2014-12-05 13:58:10 -05:00
Carsten Haitzler b84c0fe11d e - randr - stop saving config using XID - this is utterly WRONG
so e was storing randr config using XIDs to match outputs etc. this is
all kinds of wrong. XIDs are NOT STATIC. they change from xserver to
xserver and from run to run. they MAY be the same. they may not. so
this was just broken.

use output name + edid as a big "string" (name.edid) as a way ofr
identifying config for a specific combination of output plus monitor
and to find/identify the corrent output+monitor to apply it to (of
course missing edid gets replaced with ??? and missing output name is
??? too - i have never seen a missing output name so you get this at
least).

so this FIXES "restore" of screen mode on login for starters. this
does nothing to "fix" the screen setup dialog in any way. there are
separate issues there.

this also breaks e_randr config compat so i bumped epoch so your old
config is rejected. i don't see a sensible way of porting the config
forward.
2014-12-05 13:57:56 -05:00
Takeshi Banse be39fb0ada cpufreq: teach cpuinfo_{min,max}_freq as available frequencies
Summary:
The intel_pstate scaling driver exposes the `scaling_cur_freq` since
kernel 3.17 [*], it would be fine that the min and max frequencies
are known even without the `scaling_available_frequencie`.

This commit teaches to use the cpuinfo_{min,max}_freq as fallback in
case the `scaling_available_frequencies` is not available within
intel pstate.

[*] https://lkml.org/lkml/2014/11/11/1060

Signed-off-by: Takeshi Banse <takebi@laafc.net>

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1686
2014-12-05 13:57:06 -05:00
Mike Blumenkrantz 4dc20f5c85 attempt to run eeze_scanner on failure to connect, not successful connect
ref T1612
2014-12-05 13:56:32 -05:00
Mike Blumenkrantz 7e3b22dacc only attempt to start eeze_scanner a couple times before giving up
ref T1612
2014-12-05 13:56:32 -05:00
Mike Blumenkrantz b75e419086 store eeze_scanner connection poller to avoid creating an infinite number
ref T1612
2014-12-05 13:56:31 -05:00
Mike Blumenkrantz 0a95e6e117 don't exit e_fm when eeze init fails, send RASTER mode instead 2014-12-05 13:56:31 -05:00
Mike Blumenkrantz ae5ac60dca print more descriptive error messages when scanner connection fails, also don't exit() here
ref T1612
2014-12-05 13:56:31 -05:00
Mike Blumenkrantz 50f5b74cd8 apply pointer warp effects immediately when instant warping
fix T1462
2014-11-28 15:07:32 -05:00
Mike Blumenkrantz 5a578eefc1 ensure string safety on dbus message in connman agent
fix T1812
2014-11-25 15:41:01 -05:00
Mike Blumenkrantz 171576c327 force shape queue on notification delete
fix T1801
2014-11-25 15:27:25 -05:00
Mike Blumenkrantz 1106200675 set skip pager/taskbar hints on parent window instead of client window
this is a change in behavior as compared to E17-E18 where any setting of related flags would alter the client hints

ref T1692
2014-11-25 15:04:21 -05:00
Marcel Hollerbach b2f576965d Fix wrong deskshow function
Summary:
The loop E_CLIENT_REVERSE_FOREACH was used to iconify and uniconify the
icons. The worked well for uninconify.

But if the first client with the focus gets iconifyed the lower one in
the stack will get the focus and will be raised to the top, but the loop
will continue with the next of the now iconifyed e_client, so this one
will be skipped.

Now the forward loop is used to iconify and the reverse to uniconify the
e_clients.

This fixes T1797

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, cippp

Maniphest Tasks: T1797

Differential Revision: https://phab.enlightenment.org/D1655
2014-11-12 21:01:32 +01:00
Mike Blumenkrantz f9370f013e fix internal window border changing 2014-11-03 17:04:14 -05:00
Carsten Haitzler c8d16cdef6 e_auth - null out compilert memset opts like lokker 2014-11-03 17:03:42 -05:00
Mike Blumenkrantz 4bfb77c118 fix teamwork popup positioning for non-dbus popups 2014-10-12 04:49:49 -04:00
Mike Blumenkrantz 55165e2576 0.19.1 release 2014-10-12 02:38:38 -04:00
Tom Hacohen 4c9623f397 fix: Add more desktops to be tiled by default in the tiling config.
Now the first 4X4 are tiled by default.

Fixes T1682.
2014-09-26 13:20:52 +01:00
Mike Blumenkrantz a6023f6649 thaw evas on winlist activation with no clients available
fix T1667
2014-09-23 13:18:03 -04:00
Mike Blumenkrantz 4374a04e2e client hooks should not continue to be called if the client has been deleted 2014-09-23 13:18:01 -04:00
Mike Blumenkrantz d4e289727a force comp render queue more aggressively to detect changes in nocomp 2014-09-23 10:31:25 -04:00
Mike Blumenkrantz 16f3595f7d comp render queue on every client resize instead of on unmaximize 2014-09-23 10:31:24 -04:00
Stefan Schmidt 2cd2b0a764 modules/teamwork: Use eina_file_mkstemp() to avoid problems with umask
Keeping the snprintf to arrange for the tmp file name including the i->addr
in the filename.

CID: 1039805
2014-09-19 10:06:32 -04:00
Mike Blumenkrantz 349a9f5262 add borderless theme for deskmirror clients to support various animations 2014-09-18 18:23:43 -04:00
Mike Blumenkrantz 309ff82429 force render queue on unmaximize if client was fullscreen
fix T1665
2014-09-18 11:52:46 -04:00
Mike Blumenkrantz 7003b3ed08 end nocomp on nocomp end...always 2014-09-16 11:07:13 -04:00
Mike Blumenkrantz 351bde444c manually break out of nocomp
in the event that there was only one window open and it was closed, this would permanently break the compositor

fix T1665
2014-09-16 11:07:08 -04:00
Mike Blumenkrantz 9b8a6df115 check protocol visibility for nocomp breaks, not comp object visibility
new comp objects are never going to be visible during nocomp
2014-09-16 11:07:02 -04:00
Mike Blumenkrantz 72366e49f9 don't add nocomp damages for input-only windows 2014-09-16 11:06:59 -04:00
516 changed files with 10599 additions and 9015 deletions

523
NEWS
View File

@ -1,3 +1,526 @@
Release 0.19.14:
---------------------
Mike Blumenkrantz (14):
improve x11 client focusing with mouse-based focus policies on mouse move
do not add new deskmirror clients on desk_set event if client already exists
do not refill all tasks bars when a sticky window changes desks
update E_Client->desk member upon focusing a sticky client
further improve csd calculations for x11 clients
always create compositor mirror objects, ignore pixmap image state
block task gadget refills while a drag is active
Revert "e deskmirror - fix loss of mirror object from deskmirror"
ensure that a deskmirror object does not orphan child objects
avoid setting incorrect geometry during new_client frame calc
use CSD geometry during move/resize display
do not apply max client geometry restriction if max geometry is not set
allow more client hooks to bypass delete check
re-swallow bg_object after wallpaper transition has completed
Stafford Horne (1):
e/core: Fix minor mem leak when reading module paths
Release 0.19.13:
---------------------
Carsten Haitzler (4):
e - ibar - fix clash when 2 icons of the same path get added somehow
e exec tracker - fix tracking to update desktop files on efreet change
ibar - fix shutdown if ibar client menu is up
e deskmirror - fix loss of mirror object from deskmirror
Mike Blumenkrantz (31):
when removing VERTICAL maximize state, also remove LEFT and RIGHT states
don't crash desktop gadget systrays when adjusting image sizing
make wake-on-urgent apply for all cases of window urgency
force full damage for first frame of x11 override clients
subtract x11 client damage region even when forcing full override damage
fix typo in previous damage rect commit
do not return when x11 damage event returns no rects
trap shaped x11 clients and prevent compositor blocking with high rect count
reject deleted clients from x11 sync alarm event callback
clear x11 client pixmap when returning from iconic
force a software render in all cases when finalizing x11 client iconify
update csd using deltas of previous values
make comp config unresizable...again
remove dead modules from whitelist
only apply frame geometry deltas for CSD if the CSD region exists
reject frame theme changes for clients which have CSD
simplify client SMART/EXPAND maximize
add native surface (gl) clients to post render list
adjust efm multi-icon drag positioning by the current pan coords
break out x11 client visibility setting into util functions
move client iconic hint setting into x11 hide function
emit ibox icon signals to the internal edje object of the e_icon
add counter and smart callbacks for comp object visible mirrors
add e_comp_object_mirror_visibility_check()
toggle x11 client iconic/mapped state based on mirror visibility
Revert "force a software render in all cases when finalizing x11 client iconify"
disable client menu stacking functions for unstackable windows
enforce fullscreen client stacking during nocomp end IFF client is fullscreen
check client comp data existence in x11 mirror visibility callbacks
use unsigned int for client focus tracking freeze state
null efm icon eio handle in error callback
Stafford Horne (2):
e/conf_apps: Fix resizing of "Startup Application" dialog
e/ilist: Fix issue with multiselect returning wrong index
Thierry (1):
mouse_config: fix accel threshold and numerator limits.
shorne (1):
e/win_config: allow content of some dialogs to resize with the window
Release 0.19.12:
---------------------
Amitesh Singh (1):
md5: fix wrong sizeof argument (SIZEOF_MISMATCH)
Carsten Haitzler (2):
efm - handle cancel of async eio if icon is freed and eio still active
e - efm fix. fix eio error handler that is called after eio cancel
Chidambar Zinnoury (1):
e menus: Fix invalid comparisons.
Mike Blumenkrantz (39):
broadcast support for _GTK_FRAME_EXTENTS
fully support _GTK_FRAME_EXTENTS
add util function for determining if a client is allowed to have a frame
fix e_shelf_position_calc() to not set struct members before applying them
block border-affecting entries from showing up in client menu with csd
block border-affecting client functions for csd clients
set comp object client_inset.calc based on frame_object existence
check warp_client existence during pointer warp before dereferencing it
fix handling of x11 ICCCM WithdrawnState
initialize pixmap size vars in comp resize interceptor
map/unmap x11 client windows when toggling iconic state
completely remove all wayland support from build system
blacklist all versions of efl affected by T2745
force pixmap clear when hiding an x11 window
set x11 broadcast atom hint array size based on array-name size
force adjustment of client geometry when changing csd frame size
remove client maximize states during unmaximize only if they are active
unset E_Client->changes.need_unmaximize after calling unmaximize
allow client resizes on axes currently unrestricted by maximize state
unset the requested maximize state when receiving a client unmaximize request
use more accurate math to determine whether to apply a client maximize change
do not set client window coordinates during a move until after resizing check
use client window coords for resize-moving without a frame_object
_GTK_FRAME_EXTENTS changes using a property, not a client message
reject identical calls to e_comp_object_frame_geometry_set()
reject client resize attempts for clients with dirty pixmaps
remove object event callback on notification popdown
free x11 damage region rects
add RENDER_DEBUG for forced renders when setting dirty flag
fix comp render return value for failed draws of non-argb clients
unify comp render returns for argb and non-argb clients
move client post-update adding into render function
fix systray to work with spec-breaking apps, eg. steam
move configure init after intl init has completed
make icon selection dialog resizable in .desktop editor
clear menu cache when saving a menu file
attempt to load default e_bindings if initial load fails
repopulate app list dialogs when efreet deskop cache updates
only use fast-path pixmap size updating after a resize for x11 clients
Peter Kjellerstedt (1):
Add "(drag only)" to title for drag only edge bindings
maxerba (1):
Updating spanish translation
Release 0.19.11:
---------------------
Carsten Haitzler (3):
e - fm - flush all evas caches to get rid of open file handles b4 umount
e - fix crash in desktop lookup+fixup where exe_inst is null
deskmirror - fix dangling reference to mirror by refcounting it
Marcel Hollerbach (1):
deskmirror: check if ec is not null before accessing it
Mike Blumenkrantz (29):
delete notification mirror objects upon deleting original popup
unset client hidden flag on config dialogs when activating from another vdesk
add ilist method for setting disabled state
remove unused variables in ilist widget
send FLOAT_SET edje messages during desk flip
make bgpreview widget work with panoramic wallpapers
always set alpha for internal wins
decode .desktop link and directory uris in fileman menus
re-set internal ee win after applying alpha
only lower x11 layer windows for layers which have windows during init
add eeze watch for backlight events
remove backlight update calls from backlight module
add efl versioning for eeze backlight monitoring
do not return non-visible clients for e_client_under_pointer_get()
only set focus on clients which are visible during client eval
move focus setting on restart into desk restore function
apply vertical maximize algorithm for LEFT/RIGHT maximized windows
unset E_Client->want/take_focus flags during client eval
block gadcon thaw on unpopulate when gadcon is deleted
only unpopulate a shelf when applying new settings if the shelf won't be recreated
clamp client geometry to zone during geometry calc
redo client maximization when a non-overlap shelf changes geometry
do not emit client iconify signal when reapplying compositor theme
calculate comp object visibility regardless of pending damages
update xkb settings and send xkb update event when calling e_xkb_layout_set()
only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already occurred
attempt to maintain currently-selected kbd layout when modifying kbd list
improve client exe_inst creation
fix systray implementation of notifier watcher (StatusNotifierItem)
Release 0.19.10:
---------------------
Carsten Haitzler (1):
e comp - set rects to null to silence compiler warning
Mike Blumenkrantz (8):
fix x11 compositor to use damage events
explicitly show the client object of internal window during show
force-disable refocus during desk flip on client activation
unshade clients when activating
ensure that normal clients are stacked below overrides when raising
add extreme hacks to enforce nocomp stacking policies
set 'starting' flag for desk show in e_zone_desk_count_set()
ensure that non-fullscreen nocomp clients have their layers re-set
Simon Lees (1):
Wizard: Update icon theme search list
Release 0.19.9:
---------------------
Carsten Haitzler (1):
e - systray - add more sizes to icon hunt to fix missing icons
Cedric BAIL (2):
temperature: let's finally allow the temp process to rest also when enlightenment die.
battery: let's finally allow the battery process to rest also when enlightenment die.
Mike Blumenkrantz (25):
add event rect for deskmirror in pager/taskbar modes
reject x11 NotifyVirtual and NotifyInferior mouse in events more accurately
use better keybind activation logic
do not modify E_Client->visible value in show/hide callbacks
unset E_Client->want/take_focus flags in hide callback
only use deferred focus-setting on desk flip focus if client is not visible
don't set E_Client->changes.visible on successful show/hide
set 'stopping' during logout action
do not relaunch relaunchable quickaccess windows during logout
redo fileman menus to only scan the first 100 items found
feed mouse-up event during mouse down on menus
force render queue and check for redirection on clients with 0x0 pixmaps
add some smart callbacks for comp objects on redirect/dirty state change
return false when failing to create a mirror during deskmirror obj check
watch dirty smart cb for currently unredirected clients in deskmirror
remove pager mirror delete callback during pager win delete
remove dirty smart callback from deskmirror clients during client delete
only check dirty smart callbacks on non-new_client deskmirror clients
don't watch dirty smart cb for desmirror clients with unusable pixmaps
add full damage for x11 override clients on resize configure event
reject focus-set attempt if desk flip to client's desk was rejected
track focus time for x11 canvas focus, unset client focus on x11 canvas focus-in
simplify e_desk_show visibility unsetting, reject recursive desk flips
remove dirty callback for deskmirror clients upon creating visual
remove bz2 from dist
Release 0.19.8:
---------------------
Carsten Haitzler (3):
e - warning fix - fix SVID_SOURCE complaint warning
e menu - an extra object ref causes menus to never be freed
e - shelf menu - handle deletion properly if cb is not for shelf menu
Mike Blumenkrantz (10):
allow x11 mouse wheel events to check ev->event_window for possible client match
reject x11 NotifyVirtual and NotifyInferior mouse in events
disable ecore-evas events on client windows during actions
fix build break from previous commit
use gadget zone for evry gadget launcher
add fallback loading of default theme on init
remove spurious focus setting on desk flip without animation
fix wizard module loading when E_MODULE_SRC_PATH is set
defer focus-setting on focus revert during desk flip when visibility is pending
show drag object immediately when beginning a drag
Release 0.19.7:
---------------------
Mike Blumenkrantz (2):
use runtime check for determining x11 compositor grab behavior
improve x11 compatibility with efl versions earlier than 1.15
Release 0.19.6:
---------------------
Carsten Haitzler (1):
e passive window grabs - fix side-effect leave/enter events on clients
Christopher Michael (1):
enlightenment: Make E build again with EFL from git
Derek Foreman (2):
wizard: Prevent crash
wizard: Prevent crash
Mike Blumenkrantz (43):
reject client fullscreening based on config and desk visibility
force xwindow stacking to obey nocomp policy and stack below current nocomp
allow new fullscreening clients to replace current nocomp where applicable
fix focusing client on mouse events which trigger actions (with exceptions)
fix shelf visibility state signals
fix eo errors for ilist icon select state
allow layer-blocked clients in deskmirror to restack
return an accurate value for override clients in e_comp_object_util_zone_get()
only apply deskmirror client visibility logic for non-deleted clients
stop rejecting possibly-valid x11 focus events
check for possible parent window on x11 mouse button events
fix focus FIXME regarding focus-setting on clients from other desks
unset changes.visible when forcing visibility during no-effect desk flip
add E_Client->mouse.in for determining mouse-in status
trigger fake mouse-out on clients when unsetting focus
trigger client mouse-in on x11 mouse movement for non-action clients
enforce pstate's extremely-confusing no_turbo option in cpufreq
use client window for x11 button ungrabbing
redo all x11 client mouse grabbing for focus
straggler ungrab of x11 parent window from previous commit
ensure x11 focus grabs are applied on client init when needed
only ungrab x11 windows when appropriate focus options are set
reject x11 replay clicks when event window != client window
do not apply x11 focus grabs to internal clients if efl version > 1.14
make e_client_util_desk_visible() work for overrides without desks
make pager popups only trigger on urgency hint if client is not currently visible
set CRITICAL urgency for notification internal notifications
block client signal binding activation when mouse action is active
move E_Client->mouse.in to E_Client->mouse_in to avoid abi breakage
account for race condition when creating initial comp object updates tiler
fix compile against newer efl
move grabinput focus fix timer to x11 compositor and fix it to Work Better
always set x11 override client geometry on startup
fix compile warning
only unset e MANAGED atom on non-shutdown
only trigger client mouse-in from x11 mouse move event if client+desk are visible
ensure that focus is set and focus stack is managed on winlist hide
never use new clients for stacking part 2: the secret of the stacking
ensure clients possess comp_data before dereferencing it during x11 stacking
always stop passing key events on once they reach the lokker callback
simulate modal windows for badly behaved x11 clients
Release 0.19.5:
---------------------
Bertrand Jacquin (1):
MEDIUM: modules/shot: switch to https://
Carsten Haitzler (4):
e clients - make sure we handle client with a NULL zone
e_shelf - check visiblity with zone and desk FIRST not later
e - xsettings - calloc buffer since we leave 3 of 4 bytes unset
e client - desk wait - ref it properly and clean up delfn
Jean Guyomarc'h (2):
modules/bluez4: fix duplicated symbol
e_ipc: fix creation of IPC server when $DISPLAY is a path
Mike Blumenkrantz (38):
pre-escape all notification body texts before display or merge
set ec->fullscreen before applying fullscreen geometry
never resize client clip object
exit immediately if any unrecognized arg is passed on startup
use stderr messages when failing to init X compositor
fix horizontal/vertical smart maximize
fix crash when using e_comp_object_util_center_pos_get() with non comp_objects
don't modify pixmap hash when changing pixmap parent window
slight ibar dnd optimization when checking taskbar apps for drop site
fix ibar drop calc to not unexpectedly trigger epileptic seizures in users
fix straggler container text in mousebindings config
remove layer setting from deskmirror
always lower e_layout children upon packing
raise deskmirror windows on startup
set xkb dialog as changed after adding a new layout
set E_Exec_Instance desktop during client idler if none present
allow client icon change events in ibar client prop handler
fix nocomp_override conditional which would inaccurately toggle nocomp
fix evry comparison macro to work as expected
use client geometry for starting unmaximize calculations
swap key -> keyname when attempting to bind lparen/rparen keys
remove contact module
add function for clearing app menu cache
clear app menu cache any time a desktop is edited internally
remove eina_streq usage
attempt to decode notification image uris with efreet before showing them
fix submenu visibility during scroll
ensure client max w/h props are set before applying them to client geom
use client geom for comp object centering functions if ec->new_client is set
rename client menu move/resize items to indicate real function
freeze evas events on clients during keyboard move/resize actions
only apply mouse down focus events if a binding did not run on the same event
force visibility on clients before attempting to hide them
change default icon theme to hicolor
try hicolor icon theme as fallback for fdo icon setting if user's theme fails
fix notification text to conform to spec and libnotify implementation
prune module config list when loading a module
fix infinite loop when changing ibar sources
Release 0.19.4:
---------------------
Carsten Haitzler (5):
maximization bug affecting libreoffice and others - fix
e - client list update after adding to client list - fix netwm bug
efm - make dir listing far faster - no file magic content and dont sync
e - menus - fix autoscroll on zones not at 0 y...
e - menus - fix submenu popup direction when zones are not at 0 y
Chidambar Zinnoury (1):
e backlight: use saner default values.
Dmitry Luhtionov (1):
cpufreq: freebsd fixes
Mike Blumenkrantz (21):
continue to hide window input regions on desk flip if they are shaded
ensure no duplicate XDG paths are prepended during startup
check for eldbus instead of edbus in device backend libs
block linear desk flips that would wrap if desk flip wrapping is disabled
use direct path for setting icons in util theme set function when icon is a path
don't send unfocused signal to override clients
escape notification popup text...always
fix crashing when changing desklock settings and using pin/personal auth
clamp client size to screen when client limit policy does not allow offscreen
rename extremely frustratingly-named E_Screen_Limits enum and members
do not reapply focus on canvas object ungrab/close for pointer-focus enthusiasts
remove unnecessary icon setting and fix sizing in edgebindings
fix dialog sizing when icon setting fails
set default text for edgebindings caption when no bindings exist
fix appindicator icon loading when using IconThemePath key
don't clamp bgpreview vsize if bgpreview is a fullscreen overlay
fix border frame color classes to be configured as solids, not text
remove wayland-only support
Vincent Torri (1):
add MIN define for non-linux systems
Release 0.19.3:
---------------------
Carsten Haitzler (2):
e - force a config flush before sys actions that could kill e
comp base - make base black. makes for better screenshots of blank areas
Christopher Michael (8):
Fix e_msgbus file having missing initializers for Eldbus Messages & Signals
Fix e_notification file having missing initializers for Eldbus Messages & Signals
Cleanup appmenu module having missing field initializers for Eldbus Messages & Signals
Cleanup bluex module having missing initializers for services & icons
Cleanup fileman module from having missing initializers for Eldbus Messages & Signals
Cleanup msgbus module from having missing field initializers for Eldbus Messages & Signals
Cleanup systray module having missing initializers for Eldbus Message & Signals
Cleanup teamwork module from having missing initializerss for Eldbus Messages & Signals
Mike Blumenkrantz (11):
don't recalc winlist on client add event if client is not added to winlist
don't show mixer popup during nocomp
comp pending resizes should not require both w+h to change
don't set gravity on client windows during X move/resize
completely block border changes on MWM borderless windows
disable client stack debugging
add E_VERSION_MAJOR define for external module usage
check focus after X nocomp end
don't change shade.x/y during unshade or after shade
fix build from tarball when configured mount backend is different from origin
don't set deskmirror scale for non-mb objects
Tom Hacohen (1):
Tiling: don't try to change the border of borderless windows.
Release 0.19.2:
---------------------
Carsten Haitzler (5):
e_auth - null out compilert memset opts like lokker
e - randr - stop saving config using XID - this is utterly WRONG
e randr - fix warning (signed vs unsigned cmp)
e randr - make it work on nvidia - lots of "wrong" things fixed
e randr - restore edp checks
Christopher Michael (1):
call e_powersave_init Before we call e_screensaver_init[...]
Marcel Hollerbach (3):
Fix wrong deskshow function
everything: terminate bc instead of quit
Register the new window into out evas.
Mike Blumenkrantz (21):
fix teamwork popup positioning for non-dbus popups
fix internal window border changing
set skip pager/taskbar hints on parent window instead of client window
force shape queue on notification delete
ensure string safety on dbus message in connman agent
apply pointer warp effects immediately when instant warping
print more descriptive error messages when scanner connection fails, also don't exit() here
don't exit e_fm when eeze init fails, send RASTER mode instead
store eeze_scanner connection poller to avoid creating an infinite number
only attempt to start eeze_scanner a couple times before giving up
attempt to run eeze_scanner on failure to connect, not successful connect
ensure clients are visible before triggering shape/render queue
fix X crash when trying to apply desktop window profile to client without desk
add failure count for client rendering, drop clients after FAILURE_MAX tries
redo shaped client checks to use shape flags instead of rect pointer, fix shapeless clients
reduce shape recalc for clients which cannot currently receive input
remove access module from build
greatly reduce FAILURE_MAX
remembering size on a window should also remember maximize state
apply client size based on correct remember value, only apply if value != 0
store hide_logo state for desklock backgrounds
Sebastian Dransfeld (5):
randr: further cleanup
randr: Don't match DP as LID
randr: remember crtcid for fast lookup on reconnect
randr: TODO++
Stefan Schmidt (1):
po: Remove file from now disabled access module to pass distcheck
Takeshi Banse (1):
cpufreq: teach cpuinfo_{min,max}_freq as available frequencies
Release 0.19.1:
---------------------
Mike Blumenkrantz (10):
don't add nocomp damages for input-only windows
check protocol visibility for nocomp breaks, not comp object visibility
manually break out of nocomp
end nocomp on nocomp end...always
force render queue on unmaximize if client was fullscreen
add borderless theme for deskmirror clients to support various animations
comp render queue on every client resize instead of on unmaximize
force comp render queue more aggressively to detect changes in nocomp
client hooks should not continue to be called if the client has been deleted
thaw evas on winlist activation with no clients available
Stefan Schmidt (1):
modules/teamwork: Use eina_file_mkstemp() to avoid problems with umask
Tom Hacohen (1):
fix: Add more desktops to be tiled by default in the tiling config.
Release 0.19.0:
---------------------

View File

@ -155,7 +155,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "Tango";
value "icon_theme" string: "hicolor";
value "desk_flip_animate_mode" int: 0;
value "desk_flip_animate_interpolation" int: 0;
value "desk_flip_animate_time" double: 0.5;

View File

@ -149,7 +149,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "Tango";
value "icon_theme" string: "hicolor";
value "icon_theme_overrides" uchar: 0;
value "desk_flip_animate_mode" int: 1;
value "desk_flip_animate_interpolation" int: 0;

View File

@ -513,7 +513,7 @@ group "E_Config_Bindings" struct {
value "modifiers" int: 0;
value "key" string: "XF86MonBrightnessUp";
value "action" string: "backlight_adjust";
value "params" string: "0.1";
value "params" string: "10";
value "any_mod" uchar: 0;
}
group "E_Config_Binding_Key" struct {
@ -521,7 +521,7 @@ group "E_Config_Bindings" struct {
value "modifiers" int: 0;
value "key" string: "XF86MonBrightnessDown";
value "action" string: "backlight_adjust";
value "params" string: "-0.1";
value "params" string: "-10";
value "any_mod" uchar: 0;
}
group "E_Config_Binding_Key" struct {

View File

@ -150,7 +150,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "Tango";
value "icon_theme" string: "hicolor";
value "icon_theme_overrides" uchar: 0;
value "desk_flip_animate_mode" int: 1;
value "desk_flip_animate_type" string: "auto/pane";

View File

@ -934,7 +934,7 @@ group "E_Config_Bindings" struct {
value "modifiers" int: 0;
value "key" string: "XF86MonBrightnessUp";
value "action" string: "backlight_adjust";
value "params" string: "0.1";
value "params" string: "10";
value "any_mod" uchar: 0;
}
group "E_Config_Binding_Key" struct {
@ -942,7 +942,7 @@ group "E_Config_Bindings" struct {
value "modifiers" int: 0;
value "key" string: "XF86MonBrightnessDown";
value "action" string: "backlight_adjust";
value "params" string: "-0.1";
value "params" string: "-10";
value "any_mod" uchar: 0;
}
group "E_Config_Binding_Key" struct {

View File

@ -150,7 +150,7 @@ group "E_Config" struct {
value "border_raise_on_mouse_action" int: 1;
value "desk_flip_wrap" int: 0;
value "fullscreen_flip" int: 1;
value "icon_theme" string: "Tango";
value "icon_theme" string: "hicolor";
value "icon_theme_overrides" uchar: 0;
value "desk_flip_animate_mode" int: 1;
value "desk_flip_animate_type" string: "auto/pane";

View File

@ -960,7 +960,7 @@ group "E_Config_Bindings" struct {
value "modifiers" int: 0;
value "key" string: "XF86MonBrightnessUp";
value "action" string: "backlight_adjust";
value "params" string: "0.1";
value "params" string: "10";
value "any_mod" uchar: 0;
}
group "E_Config_Binding_Key" struct {
@ -968,7 +968,7 @@ group "E_Config_Bindings" struct {
value "modifiers" int: 0;
value "key" string: "XF86MonBrightnessDown";
value "action" string: "backlight_adjust";
value "params" string: "-0.1";
value "params" string: "-10";
value "any_mod" uchar: 0;
}
group "E_Config_Binding_Key" struct {

View File

@ -1,30 +1,102 @@
group "Tiling_Config" struct {
group "vdesks" list {
group "Tiling_Config_VDesk" struct {
value "x" int: 0;
value "y" int: 0;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 1;
value "y" int: 0;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 2;
value "y" int: 0;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 3;
value "y" int: 0;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
}
group "vdesks" list {
group "Tiling_Config_VDesk" struct {
value "x" int: 0;
value "y" int: 0;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 0;
value "y" int: 1;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 0;
value "y" int: 2;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 0;
value "y" int: 3;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 1;
value "y" int: 0;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 1;
value "y" int: 1;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 1;
value "y" int: 2;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 1;
value "y" int: 3;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 2;
value "y" int: 0;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 2;
value "y" int: 1;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 2;
value "y" int: 2;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 2;
value "y" int: 3;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 3;
value "y" int: 0;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 3;
value "y" int: 1;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 3;
value "y" int: 2;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
group "Tiling_Config_VDesk" struct {
value "x" int: 3;
value "y" int: 3;
value "zone_num" int: 0;
value "nb_stacks" int: 1;
}
}
value "tile_dialogs" int: 1;
value "show_titles" int: 1;
value "have_floating_mode" int: 1;

View File

@ -2,11 +2,11 @@
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
m4_define([v_maj], [0])
m4_define([v_min], [19])
m4_define([v_mic], [0])
m4_define([v_mic], [14])
m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl
##-- When released, remove the dnl on the below line
m4_undefine([v_rev])
m4_define([relname], [0.19.0])
m4_define([relname], [0.19.14])
##-- When doing snapshots - change soname. remove dnl on below line
m4_define([relname], [ver-serious-0.19])
m4_define([v_rel], [-release relname])
@ -34,7 +34,7 @@ AH_BOTTOM([
#endif /* EFL_CONFIG_H__ */
])
AM_INIT_AUTOMAKE([1.11 dist-bzip2 dist-xz -Wno-portability])
AM_INIT_AUTOMAKE([1.11 dist-xz -Wno-portability])
AM_SILENT_RULES([yes])
AC_USE_SYSTEM_EXTENSIONS
@ -94,7 +94,11 @@ AC_DEFINE(HAVE_ENVIRON, 1, [Have environ var])
efl_version="1.11"
AC_SUBST(efl_version)
PKG_CHECK_EXISTS([ecore < 1.15.2], [
PKG_CHECK_EXISTS([ecore >= 1.12], [
AC_MSG_ERROR([your version of efl has been blacklisted due to T2745])
], [])
], [])
AC_CHECK_HEADERS([sys/timerfd.h sys/ptrace.h arpa/inet.h netinet/in.h])
dnl AC_CHECK_HEADERS(X11/extensions/shape.h,, AC_MSG_ERROR([Cannot find X11/extensions/shape.h. Make sure your CFLAGS environment variable contains include lines for the location of this file]))
@ -397,7 +401,7 @@ AM_CONDITIONAL([HAVE_EEZE], [test "x${device_backend}" = "xeeze"])
if test "x${device_backend}" != "xeeze"; then
device_backend=hal
device_libs=edbus
device_libs=eldbus
AC_DEFINE_UNQUOTED([HAVE_HAL],[1],[enable HAL support])
fi
@ -812,66 +816,6 @@ define([CHECK_MODULE_BLUEZ4],
AC_SUBST([EBLUEZ4_CFLAGS])
AC_SUBST([EBLUEZ4_LIBS])
have_wayland_only=no
AC_ARG_ENABLE([wayland-only],
AS_HELP_STRING([--enable-wayland-only],[enable wayland-only version of enlightenment @<:@default=disabled@:>@]),
[e_cv_want_wayland_only=$enableval],
[e_cv_want_wayland_only=no])
AC_MSG_CHECKING([whether wayland-only version is enabled])
AC_MSG_RESULT([${e_cv_want_wayland_only}])
have_wayland_clients=no
AC_ARG_ENABLE([wayland-clients],
AS_HELP_STRING([--enable-wayland-clients],[enable wayland clients in composite module @<:@default=disabled@:>@]),
[e_cv_want_wayland_clients=$enableval],
[e_cv_want_wayland_clients=no])
AC_MSG_CHECKING([whether wayland client support is enabled])
AC_MSG_RESULT([${e_cv_want_wayland_clients}])
have_wayland_egl=no
AC_ARG_ENABLE([wayland-egl],
AS_HELP_STRING([--enable-wayland-egl],[enable wayland to render using EGL @<:@default=disabled@:>@]),
[e_cv_want_wayland_egl=$enableval],
[e_cv_want_wayland_egl=no])
AC_MSG_CHECKING([whether wayland EGL support is enabled])
AC_MSG_RESULT([${e_cv_want_wayland_egl}])
if test "x${e_cv_want_wayland_only}" != "xno" || test "x${e_cv_want_wayland_clients}" != "xno";then
PKG_CHECK_MODULES([WAYLAND], [ecore-wayland wayland-server xkbcommon uuid],
[
have_wayland=yes
AC_DEFINE_UNQUOTED([HAVE_WAYLAND],[1],[enable wayland support])
])
else
have_wayland=no
fi
if test "x${have_wayland}" = "xyes"; then
if test "x${e_cv_want_wayland_clients}" != "xno"; then
have_wayland_clients=yes
AC_DEFINE_UNQUOTED([HAVE_WAYLAND_CLIENTS],[1],[enable wayland clients in composite module])
fi
if test "x${e_cv_want_wayland_egl}" != "xno";then
PKG_CHECK_MODULES([WAYLAND_EGL], [egl >= 7.10],
[
have_wayland_egl=yes
AC_DEFINE_UNQUOTED([HAVE_WAYLAND_EGL],[1],[enable wayland client EGL support])
],
[have_wayland_egl=no])
else
have_wayland_egl=no
fi
if test "x${e_cv_want_wayland_only}" != "xno"; then
have_wayland_only=yes
AC_DEFINE_UNQUOTED([HAVE_WAYLAND_ONLY],[1],[enable wayland-only version of enlightenment])
fi
fi
AM_CONDITIONAL([HAVE_WAYLAND], [test "x${have_wayland}" = "xyes"])
AM_CONDITIONAL([HAVE_WAYLAND_ONLY], [test "x${have_wayland_only}" = "xyes"])
AM_CONDITIONAL([HAVE_WAYLAND_CLIENTS], [test "x${have_wayland_clients}" = "xyes"])
AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "x${have_wayland_egl}" = "xyes"])
PKG_CHECK_MODULES([ECORE_X], [ecore-x >= ${efl_version}])
if test -n "$ECORE_X_CFLAGS" ; then
ecore_x=true
@ -879,42 +823,6 @@ else
ecore_x=false
fi
if test "x${ecore_x}" = "xtrue" && test -n "$WAYLAND_CFLAGS" ; then
wl_x11=true
else
wl_x11=false
fi
define([CHECK_MODULE_WL_DESKTOP_SHELL],
[
if test "x${have_wayland_clients}" = "xyes" || test "x${e_cv_want_wayland_only}" = "xyes"; then
AC_E_CHECK_PKG(WL_DESKTOP_SHELL, [ ecore >= $efl_version eina >= $efl_version ], [WL_DESKTOP_SHELL=true], [WL_DESKTOP_SHELL=false])
else
WL_DESKTOP_SHELL=false
fi
])
AM_CONDITIONAL([HAVE_WL_DESKTOP_SHELL], [test "x${WL_DESKTOP_SHELL}" = "xtrue"])
define([CHECK_MODULE_WL_FB],
[
if test "x${have_wayland_clients}" = "xyes"; then
AC_E_CHECK_PKG(WL_FB, [ ecore-fb >= $efl_version ecore >= $efl_version eina >= $efl_version ], [WL_FB=true], [WL_FB=false])
else
WL_FB=false
fi
])
AM_CONDITIONAL([HAVE_WL_FB], [test "x${WL_FB}" = "xtrue"])
define([CHECK_MODULE_WL_DRM],
[
if test "x${have_wayland}" = "xyes" ; then
AC_E_CHECK_PKG(WL_DRM, [ ecore-drm >= $efl_version ecore >= $efl_version eina >= $efl_version ], [WL_DRM=true], [WL_DRM=false])
else
WL_DRM=false
fi
])
AM_CONDITIONAL([HAVE_WL_DRM], [test "x${WL_DRM}" = "xtrue"])
AC_E_OPTIONAL_MODULE([ibar], true)
AC_E_OPTIONAL_MODULE([clock], true)
AC_E_OPTIONAL_MODULE([pager], true)
@ -962,15 +870,9 @@ AC_E_OPTIONAL_MODULE([tasks], true)
AC_E_OPTIONAL_MODULE([conf_randr], true, $ecore_x)
AC_E_OPTIONAL_MODULE([xkbswitch], true, $ecore_x)
AC_E_OPTIONAL_MODULE([tiling], true)
AC_E_OPTIONAL_MODULE([access], false, $ecore_x)
#AC_E_OPTIONAL_MODULE([access], false, $ecore_x)
AC_E_OPTIONAL_MODULE([music_control], true, [CHECK_MODULE_MUSIC_CONTROL])
AC_E_OPTIONAL_MODULE([packagekit], true)
AC_E_OPTIONAL_MODULE([contact], false)
AC_E_OPTIONAL_MODULE([wl_desktop_shell], $have_wayland, [CHECK_MODULE_WL_DESKTOP_SHELL])
AC_E_OPTIONAL_MODULE([wl_x11], $have_wayland, $wl_x11)
AC_E_OPTIONAL_MODULE([wl_fb], $have_wayland, [CHECK_MODULE_WL_FB])
AC_E_OPTIONAL_MODULE([wl_drm], $have_wayland, [CHECK_MODULE_WL_DRM])
#AC_E_OPTIONAL_MODULE([wl_screenshot], true, [CHECK_MODULE_WL_SCREENSHOT])
AC_E_OPTIONAL_MODULE([policy_mobile], true)
HALT="/sbin/shutdown -h now"
@ -1080,12 +982,8 @@ src/modules/backlight/module.desktop
src/modules/tasks/module.desktop
src/modules/xkbswitch/module.desktop
src/modules/tiling/module.desktop
src/modules/access/module.desktop
src/modules/music-control/module.desktop
src/modules/packagekit/module.desktop
src/modules/contact/module.desktop
src/modules/wl_desktop_shell/module.desktop
src/modules/wl_screenshot/module.desktop
data/xsession/enlightenment.desktop
data/etc/sysactions.conf
data/units/enlightenment.service
@ -1093,7 +991,7 @@ doc/Doxyfile
doc/e.dox
$po_makefile_in
])
#src/modules/access/module.desktop
#src/modules/illume2/doc/illume.dox
#src/modules/illume2/module.desktop
#src/modules/illume-home/module.desktop

View File

@ -133,7 +133,6 @@ src/bin/e_win.c
src/bin/e_xinerama.c
src/bin/e_xkb.c
src/bin/e_zone.c
src/modules/access/e_mod_config.c
src/modules/appmenu/e_mod_main.c
src/modules/backlight/e_mod_main.c
src/modules/battery/e_mod_config.c

5133
po/es.po

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,6 @@ E_CPPFLAGS = \
@cf_cflags@ \
@VALGRIND_CFLAGS@ \
@EDJE_DEF@ \
@WAYLAND_CFLAGS@ \
@WAYLAND_EGL_CFLAGS@ \
-DE_BINDIR=\"$(bindir)\" \
-DPACKAGE_BIN_DIR=\"@PACKAGE_BIN_DIR@\" \
-DPACKAGE_LIB_DIR=\"@PACKAGE_LIB_DIR@\" \
@ -91,7 +89,6 @@ src/bin/e_fm_op_registry.h \
src/bin/e_fm_prop.h \
src/bin/e_fm_shared_codec.h \
src/bin/e_fm_shared_device.h \
src/bin/e_fm_shared_types.h \
src/bin/e_focus.h \
src/bin/e_font.h \
src/bin/e_gadcon.h \
@ -202,14 +199,6 @@ src/bin/e_xsettings.h \
src/bin/e_zoomap.h \
src/bin/e_zone.h
if HAVE_WAYLAND
ENLIGHTENMENTHEADERS += \
src/bin/e_uuid_store.h \
src/bin/e_comp_wl_data.h \
src/bin/e_comp_wl_input.h \
src/bin/e_comp_wl.h
endif
enlightenment_src = \
src/bin/e_about.c \
@ -370,28 +359,18 @@ src/bin/e_zoomap.c \
src/bin/e_zone.c \
$(ENLIGHTENMENTHEADERS)
if ! HAVE_WAYLAND_ONLY
enlightenment_src += \
src/bin/e_comp_x.c \
src/bin/e_randr.c \
src/bin/e_xsettings.c
endif
if HAVE_WAYLAND
enlightenment_src += \
src/bin/e_uuid_store.c \
src/bin/e_comp_wl_data.c \
src/bin/e_comp_wl_input.c \
src/bin/e_comp_wl.c
endif
src_bin_enlightenment_CPPFLAGS = $(E_CPPFLAGS) -DEFL_BETA_API_SUPPORT -DEFL_EO_API_SUPPORT -DE_LOGGING=1 @WAYLAND_CFLAGS@ @WAYLAND_EGL_CFLAGS@ @ECORE_X_CFLAGS@ -DNEED_X=1 -DNEED_WL
src_bin_enlightenment_CPPFLAGS = $(E_CPPFLAGS) -DEFL_BETA_API_SUPPORT -DEFL_EO_API_SUPPORT -DE_LOGGING=1 @ECORE_X_CFLAGS@ -DNEED_X=1 -DNEED_WL
src_bin_enlightenment_SOURCES = \
src/bin/e_main.c \
$(enlightenment_src)
src_bin_enlightenment_LDFLAGS = -export-dynamic
src_bin_enlightenment_LDADD = @e_libs@ @dlopen_libs@ @cf_libs@ @VALGRIND_LIBS@ @WAYLAND_LIBS@ @WAYLAND_EGL_LIBS@ -lm @ECORE_X_LIBS@ @SHM_OPEN_LIBS@
src_bin_enlightenment_LDADD = @e_libs@ @dlopen_libs@ @cf_libs@ @VALGRIND_LIBS@ -lm @ECORE_X_LIBS@ @SHM_OPEN_LIBS@
src_bin_enlightenment_imc_SOURCES = \
src/bin/e.h \
@ -472,7 +451,7 @@ enlightenment-sys-install-data-hook:
@chmod $(setuid_root_mode) $(DESTDIR)$(libdir)/enlightenment/utils/enlightenment_sys$(EXEEXT) || true
endif
installed_headersdir = $(prefix)/include/enlightenment
installed_headers_DATA = $(ENLIGHTENMENTHEADERS)
installed_headers_DATA = $(ENLIGHTENMENTHEADERS) src/bin/e_fm_shared_types.h
INSTALL_DATA_HOOKS += enlightenment-sys-install-data-hook
PHONIES += e enlightenment install-e install-enlightenment

View File

@ -1,6 +1,8 @@
#ifndef E_H
# define E_H
# define E_VERSION_MAJOR 19
/**
* @defgroup API Enlightenment API
*
@ -128,14 +130,14 @@ void *alloca (size_t);
# include <uuid.h>
# endif
# ifdef EAPI
# undef EAPI
# ifdef E_API
# undef E_API
# endif
# ifdef WIN32
# ifdef BUILDING_DLL
# define EAPI __declspec(dllexport)
# define E_API __declspec(dllexport)
# else
# define EAPI __declspec(dllimport)
# define E_API __declspec(dllimport)
# endif
# else
# ifdef __GNUC__
@ -144,12 +146,12 @@ void *alloca (size_t);
# if 0
# pragma GCC visibility push(hidden)
# endif
# define EAPI __attribute__ ((visibility("default")))
# define E_API __attribute__ ((visibility("default")))
# else
# define EAPI
# define E_API
# endif
# else
# define EAPI
# define E_API
# endif
# endif
@ -182,6 +184,10 @@ typedef struct _E_Rect E_Rect;
# define MAX(x, y) (((x) > (y)) ? (x) : (y))
#endif
#ifndef MIN
# define MIN(x, y) (((x) < (y)) ? (x) : (y))
#endif
# define E_FREE_FUNC(_h, _fn) do { if (_h) { _fn((void*)_h); _h = NULL; } } while (0)
# define E_INTERSECTS(x, y, w, h, xx, yy, ww, hh) \
(((x) < ((xx) + (ww))) && ((y) < ((yy) + (hh))) && (((x) + (w)) > (xx)) && (((y) + (h)) > (yy)))
@ -274,30 +280,30 @@ typedef struct _E_Rect E_Rect;
# undef E_TYPEDEFS
# include "e_includes.h"
EAPI double e_main_ts(const char *str);
E_API double e_main_ts(const char *str);
struct _E_Rect
{
int x, y, w, h;
};
extern EAPI E_Path *path_data;
extern EAPI E_Path *path_images;
extern EAPI E_Path *path_fonts;
extern EAPI E_Path *path_themes;
extern EAPI E_Path *path_icons;
extern EAPI E_Path *path_modules;
extern EAPI E_Path *path_backgrounds;
extern EAPI E_Path *path_messages;
extern EAPI Eina_Bool good;
extern EAPI Eina_Bool evil;
extern EAPI Eina_Bool starting;
extern EAPI Eina_Bool stopping;
extern EAPI Eina_Bool restart;
extern EAPI Eina_Bool e_nopause;
extern E_API E_Path *path_data;
extern E_API E_Path *path_images;
extern E_API E_Path *path_fonts;
extern E_API E_Path *path_themes;
extern E_API E_Path *path_icons;
extern E_API E_Path *path_modules;
extern E_API E_Path *path_backgrounds;
extern E_API E_Path *path_messages;
extern E_API Eina_Bool good;
extern E_API Eina_Bool evil;
extern E_API Eina_Bool starting;
extern E_API Eina_Bool stopping;
extern E_API Eina_Bool restart;
extern E_API Eina_Bool e_nopause;
extern EAPI Eina_Bool e_precache_end;
extern EAPI Eina_Bool x_fatal;
extern E_API Eina_Bool e_precache_end;
extern E_API Eina_Bool x_fatal;
extern EINTERN const char *e_first_frame;
extern EINTERN double e_first_frame_start_time;

View File

@ -6,7 +6,7 @@
/* externally accessible functions */
EAPI E_About *
E_API E_About *
e_about_new(E_Comp *c)
{
E_Obj_Dialog *od;
@ -110,7 +110,7 @@ e_about_new(E_Comp *c)
return (E_About *)od;
}
EAPI void
E_API void
e_about_show(E_About *about)
{
e_obj_dialog_show((E_Obj_Dialog *)about);

View File

@ -6,8 +6,8 @@ typedef struct _E_Obj_Dialog E_About;
#ifndef E_ABOUT_H
#define E_ABOUT_H
EAPI E_About *e_about_new (E_Comp *c);
EAPI void e_about_show (E_About *about);
E_API E_About *e_about_new (E_Comp *c);
E_API void e_about_show (E_About *about);
#endif
#endif

View File

@ -122,7 +122,7 @@ static E_ACPI_Device_Multiplexed _devices_multiplexed[] =
};
/* public variables */
EAPI int E_EVENT_ACPI = 0;
E_API int E_EVENT_ACPI = 0;
/* public functions */
EINTERN int
@ -191,13 +191,13 @@ e_acpi_lid_status_get(void)
return E_ACPI_LID_UNKNOWN;
}
EAPI void
E_API void
e_acpi_events_freeze(void)
{
_e_acpi_events_frozen++;
}
EAPI void
E_API void
e_acpi_events_thaw(void)
{
_e_acpi_events_frozen--;

View File

@ -73,10 +73,10 @@ EINTERN int e_acpi_shutdown(void);
EINTERN E_Acpi_Lid_Status e_acpi_lid_status_get(void);
EAPI void e_acpi_events_freeze(void);
EAPI void e_acpi_events_thaw(void);
E_API void e_acpi_events_freeze(void);
E_API void e_acpi_events_thaw(void);
extern EAPI int E_EVENT_ACPI;
extern E_API int E_EVENT_ACPI;
# endif
#endif

View File

@ -735,6 +735,7 @@ ACT_FN_GO(window_shaded, )
E_Client *ec;
ec = (E_Client *)obj;
if (!e_comp_object_frame_allowed(ec->frame)) return;
if (params)
{
int v;
@ -780,6 +781,7 @@ ACT_FN_GO(window_borderless_toggle, __UNUSED__)
E_Client *ec;
ec = (E_Client *)obj;
if (!e_comp_object_frame_allowed(ec->frame)) return;
ec->borderless = !ec->borderless;
ec->border.changed = 1;
@ -798,6 +800,7 @@ ACT_FN_GO(window_border_set, __UNUSED__)
E_Client *ec;
ec = (E_Client *)obj;
if (!e_comp_object_frame_allowed(ec->frame)) return;
if (ec && params)
{
eina_stringshare_replace(&ec->bordername, params);
@ -818,6 +821,7 @@ ACT_FN_GO(window_border_cycle, __UNUSED__)
E_Client *ec;
ec = (E_Client *)obj;
if (!e_comp_object_frame_allowed(ec->frame)) return;
if (ec && params)
{
const char *space;
@ -3450,13 +3454,13 @@ e_actions_shutdown(void)
return 1;
}
EAPI Eina_List *
E_API Eina_List *
e_action_name_list(void)
{
return action_names;
}
EAPI E_Action *
E_API E_Action *
e_action_add(const char *name)
{
E_Action *act;
@ -3474,7 +3478,7 @@ e_action_add(const char *name)
return act;
}
EAPI void
E_API void
e_action_del(const char *name)
{
E_Action *act;
@ -3483,7 +3487,7 @@ e_action_del(const char *name)
if (act) _e_action_free(act);
}
EAPI E_Action *
E_API E_Action *
e_action_find(const char *name)
{
E_Action *act;
@ -3492,7 +3496,7 @@ e_action_find(const char *name)
return act;
}
EAPI const char *
E_API const char *
e_action_predef_label_get(const char *action, const char *params)
{
E_Action_Group *actg = NULL;
@ -3518,7 +3522,7 @@ e_action_predef_label_get(const char *action, const char *params)
return NULL;
}
EAPI void
E_API void
e_action_predef_name_set(const char *act_grp, const char *act_name, const char *act_cmd, const char *act_params, const char *param_example, int editable)
{
E_Action_Group *actg = NULL;
@ -3564,7 +3568,7 @@ e_action_predef_name_set(const char *act_grp, const char *act_name, const char *
actg->acts = eina_list_append(actg->acts, actd);
}
EAPI void
E_API void
e_action_predef_name_del(const char *act_grp, const char *act_name)
{
E_Action_Group *actg = NULL;
@ -3603,7 +3607,7 @@ e_action_predef_name_del(const char *act_grp, const char *act_name)
}
}
EAPI void
E_API void
e_action_predef_name_all_del(void)
{
E_Action_Group *actg = NULL;
@ -3626,7 +3630,7 @@ e_action_predef_name_all_del(void)
action_groups = NULL;
}
EAPI Eina_List *
E_API Eina_List *
e_action_groups_get(void)
{
return action_groups;

View File

@ -48,17 +48,17 @@ struct _E_Action_Group
EINTERN int e_actions_init(void);
EINTERN int e_actions_shutdown(void);
EAPI Eina_List *e_action_name_list(void);
EAPI E_Action *e_action_add(const char *name);
E_API Eina_List *e_action_name_list(void);
E_API E_Action *e_action_add(const char *name);
/* e_action_del allows, for example, modules to define their own actions dynamically. */
EAPI void e_action_del(const char *name);
EAPI E_Action *e_action_find(const char *name);
E_API void e_action_del(const char *name);
E_API E_Action *e_action_find(const char *name);
EAPI const char *e_action_predef_label_get(const char *action, const char *params);
EAPI void e_action_predef_name_set(const char *act_grp, const char *act_name, const char *act_cmd, const char *act_params, const char *param_example, int editable);
EAPI void e_action_predef_name_del(const char *act_grp, const char *act_name);
EAPI void e_action_predef_name_all_del(void);
EAPI Eina_List *e_action_groups_get(void);
E_API const char *e_action_predef_label_get(const char *action, const char *params);
E_API void e_action_predef_name_set(const char *act_grp, const char *act_name, const char *act_cmd, const char *act_params, const char *param_example, int editable);
E_API void e_action_predef_name_del(const char *act_grp, const char *act_name);
E_API void e_action_predef_name_all_del(void);
E_API Eina_List *e_action_groups_get(void);
#endif
#endif

View File

@ -2,7 +2,7 @@
#include <sys/wait.h>
/* public variables */
EAPI unsigned long _e_alert_composite_win = 0;
E_API unsigned long _e_alert_composite_win = 0;
EINTERN int
e_alert_init(void)
@ -16,7 +16,7 @@ e_alert_shutdown(void)
return 1;
}
EAPI void
E_API void
e_alert_composite_win(Ecore_X_Window root, Ecore_X_Window comp)
{
#ifndef HAVE_WAYLAND_ONLY
@ -31,7 +31,7 @@ e_alert_composite_win(Ecore_X_Window root, Ecore_X_Window comp)
#endif
}
EAPI void
E_API void
e_alert_show(void)
{
if (!e_nopause)

View File

@ -13,7 +13,7 @@ typedef enum _E_Alert_Op_Type
EINTERN int e_alert_init(void);
EINTERN int e_alert_shutdown(void);
EAPI void e_alert_show(void);
E_API void e_alert_show(void);
#endif
#endif

View File

@ -2,17 +2,17 @@
/* Atoms */
#ifndef HAVE_WAYLAND_ONLY
EAPI Ecore_X_Atom E_ATOM_MANAGED = 0;
EAPI Ecore_X_Atom E_ATOM_ZONE = 0;
EAPI Ecore_X_Atom E_ATOM_DESK = 0;
EAPI Ecore_X_Atom E_ATOM_MAPPED = 0;
EAPI Ecore_X_Atom E_ATOM_SHADE_DIRECTION = 0;
EAPI Ecore_X_Atom E_ATOM_HIDDEN = 0;
EAPI Ecore_X_Atom E_ATOM_BORDER_SIZE = 0;
EAPI Ecore_X_Atom E_ATOM_WINDOW_STATE = 0;
EAPI Ecore_X_Atom E_ATOM_WINDOW_STATE_CENTERED = 0;
EAPI Ecore_X_Atom E_ATOM_DESKTOP_FILE = 0;
EAPI Ecore_X_Atom E_ATOM_ZONE_GEOMETRY = 0;
E_API Ecore_X_Atom E_ATOM_MANAGED = 0;
E_API Ecore_X_Atom E_ATOM_ZONE = 0;
E_API Ecore_X_Atom E_ATOM_DESK = 0;
E_API Ecore_X_Atom E_ATOM_MAPPED = 0;
E_API Ecore_X_Atom E_ATOM_SHADE_DIRECTION = 0;
E_API Ecore_X_Atom E_ATOM_HIDDEN = 0;
E_API Ecore_X_Atom E_ATOM_BORDER_SIZE = 0;
E_API Ecore_X_Atom E_ATOM_WINDOW_STATE = 0;
E_API Ecore_X_Atom E_ATOM_WINDOW_STATE_CENTERED = 0;
E_API Ecore_X_Atom E_ATOM_DESKTOP_FILE = 0;
E_API Ecore_X_Atom E_ATOM_ZONE_GEOMETRY = 0;
#endif
/* externally accessible functions */

View File

@ -4,26 +4,26 @@
#define E_ATOMS_H
/* an "overall" atom to see that we recognise the window */
extern EAPI Ecore_X_Atom E_ATOM_MANAGED;
extern E_API Ecore_X_Atom E_ATOM_MANAGED;
/* basic window properties */
extern EAPI Ecore_X_Atom E_ATOM_ZONE;
extern EAPI Ecore_X_Atom E_ATOM_DESK;
extern EAPI Ecore_X_Atom E_ATOM_MAPPED;
extern EAPI Ecore_X_Atom E_ATOM_SHADE_DIRECTION;
extern EAPI Ecore_X_Atom E_ATOM_HIDDEN;
extern EAPI Ecore_X_Atom E_ATOM_BORDER_SIZE;
extern EAPI Ecore_X_Atom E_ATOM_DESKTOP_FILE;
extern E_API Ecore_X_Atom E_ATOM_ZONE;
extern E_API Ecore_X_Atom E_ATOM_DESK;
extern E_API Ecore_X_Atom E_ATOM_MAPPED;
extern E_API Ecore_X_Atom E_ATOM_SHADE_DIRECTION;
extern E_API Ecore_X_Atom E_ATOM_HIDDEN;
extern E_API Ecore_X_Atom E_ATOM_BORDER_SIZE;
extern E_API Ecore_X_Atom E_ATOM_DESKTOP_FILE;
/* extra e window states */
/* if we add more states, we need to fix
* * e_hints_window_e_state_get()
* * e_hints_window_e_state_set()
* * _e_win_state_update() + e_win
*/
extern EAPI Ecore_X_Atom E_ATOM_WINDOW_STATE;
extern EAPI Ecore_X_Atom E_ATOM_WINDOW_STATE_CENTERED;
extern E_API Ecore_X_Atom E_ATOM_WINDOW_STATE;
extern E_API Ecore_X_Atom E_ATOM_WINDOW_STATE_CENTERED;
extern EAPI Ecore_X_Atom E_ATOM_ZONE_GEOMETRY;
extern E_API Ecore_X_Atom E_ATOM_ZONE_GEOMETRY;
EINTERN int e_atoms_init(void);
EINTERN int e_atoms_shutdown(void);

View File

@ -131,7 +131,7 @@ _auth_pam_init(E_Auth *da)
#endif
EAPI int
E_API int
#ifdef HAVE_PAM
e_auth_begin(char *passwd)
{
@ -174,6 +174,9 @@ e_auth_begin(char *passwd)
pam_end(da.pam.handle, pamerr);
/* security - null out passwd string once we are done with it */
memset(da.passwd, 0, sizeof(da.passwd));
/* break compiler optimization */
if (da.passwd[0] || da.passwd[3])
fprintf(stderr, "ACK!\n");
if (pamerr == PAM_SUCCESS)
{
free(current_user);
@ -191,7 +194,7 @@ e_auth_begin(char *passwd EINA_UNUSED)
}
#endif
EAPI char *
E_API char *
e_auth_hostname_get(void)
{
return strdup("localhost");

View File

@ -1,8 +1,8 @@
#ifndef E_AUTH_H
#define E_AUTH_H
EAPI int e_auth_begin(char *passwd);
EAPI char *e_auth_hostname_get(void);
E_API int e_auth_begin(char *passwd);
E_API char *e_auth_hostname_get(void);
static inline int
e_auth_hash_djb2(const char *key, int len)

View File

@ -39,7 +39,7 @@ static Eina_Bool _e_bl_cb_exit(void *data __UNUSED__, int type __UNUSED__, void
static void _bl_sys_level_set(double val);
#endif
EAPI int E_EVENT_BACKLIGHT_CHANGE = -1;
E_API int E_EVENT_BACKLIGHT_CHANGE = -1;
EINTERN int
e_backlight_init(void)
@ -90,14 +90,14 @@ e_backlight_shutdown(void)
return 1;
}
EAPI Eina_Bool
E_API Eina_Bool
e_backlight_exists(void)
{
if (sysmode == MODE_NONE) return EINA_FALSE;
return EINA_TRUE;
}
EAPI void
E_API void
e_backlight_update(void)
{
const Eina_List *l, *ll;
@ -111,7 +111,7 @@ e_backlight_update(void)
_e_backlight_update(zone);
}
EAPI void
E_API void
e_backlight_level_set(E_Zone *zone, double val, double tim)
{
double bl_now;
@ -149,14 +149,14 @@ e_backlight_level_set(E_Zone *zone, double val, double tim)
bl_anim_toval = val;
}
EAPI double
E_API double
e_backlight_level_get(E_Zone *zone __UNUSED__)
{
// zone == NULL == everything
return e_bl_val;
}
EAPI void
E_API void
e_backlight_mode_set(E_Zone *zone, E_Backlight_Mode mode)
{
E_Backlight_Mode pmode;
@ -184,14 +184,14 @@ e_backlight_mode_set(E_Zone *zone, E_Backlight_Mode mode)
e_backlight_level_set(zone, 1.0, -1.0);
}
EAPI E_Backlight_Mode
E_API E_Backlight_Mode
e_backlight_mode_get(E_Zone *zone __UNUSED__)
{
// zone == NULL == everything
return e_config->backlight.mode;
}
EAPI const Eina_List *
E_API const Eina_List *
e_backlight_devices_get(void)
{
return bl_devs;
@ -253,6 +253,7 @@ _e_backlight_update(E_Zone *zone)
if (bl_sysval)
{
sysmode = MODE_SYS;
xbl_avail = EINA_FALSE;
_bl_sys_level_get();
return;
}
@ -338,6 +339,19 @@ _bl_anim(void *data, double pos)
}
#ifdef HAVE_EEZE
#if (EFL_VERSION_MAJOR > 1) || (EFL_VERSION_MINOR >= 12)
static void
_bl_sys_change(const char *device, Eeze_Udev_Event event EINA_UNUSED, void *data EINA_UNUSED, Eeze_Udev_Watch *watch EINA_UNUSED)
{
if (device == bl_sysval)
{
_bl_sys_level_get();
ecore_event_add(E_EVENT_BACKLIGHT_CHANGE, NULL, NULL, NULL);
}
eina_stringshare_del(device);
}
#endif
static void
_bl_sys_find(void)
{
@ -422,6 +436,9 @@ _bl_sys_find(void)
}
/* clear out preferred devs list */
E_FREE_LIST(pdevs, eina_stringshare_del);
#if (EFL_VERSION_MAJOR > 1) || (EFL_VERSION_MINOR >= 12)
eeze_udev_watch_add(EEZE_UDEV_TYPE_BACKLIGHT, EEZE_UDEV_EVENT_CHANGE, _bl_sys_change, NULL);
#endif
}
static void

View File

@ -18,7 +18,7 @@ typedef enum _E_Backlight_Mode
#ifndef E_BACKLIGHT_H
#define E_BACKLIGHT_H
extern EAPI int E_EVENT_BACKLIGHT_CHANGE;
extern E_API int E_EVENT_BACKLIGHT_CHANGE;
//struct _E_Screen
//{
@ -28,13 +28,13 @@ extern EAPI int E_EVENT_BACKLIGHT_CHANGE;
EINTERN int e_backlight_init(void);
EINTERN int e_backlight_shutdown(void);
EAPI Eina_Bool e_backlight_exists(void);
EAPI void e_backlight_update(void);
EAPI void e_backlight_level_set(E_Zone *zone, double val, double tim);
EAPI double e_backlight_level_get(E_Zone *zone);
EAPI void e_backlight_mode_set(E_Zone *zone, E_Backlight_Mode mode);
EAPI E_Backlight_Mode e_backlight_mode_get(E_Zone *zone);
EAPI const Eina_List *e_backlight_devices_get(void);
E_API Eina_Bool e_backlight_exists(void);
E_API void e_backlight_update(void);
E_API void e_backlight_level_set(E_Zone *zone, double val, double tim);
E_API double e_backlight_level_get(E_Zone *zone);
E_API void e_backlight_mode_set(E_Zone *zone, E_Backlight_Mode mode);
E_API E_Backlight_Mode e_backlight_mode_get(E_Zone *zone);
E_API const Eina_List *e_backlight_devices_get(void);
#endif
#endif

View File

@ -8,7 +8,7 @@ static int e_bg_handler_test(void *data __UNUSED__, Evas_Object *obj __UNUSED__
static void _e_bg_handler_image_imported(const char *image_path, void *data);
/* local subsystem globals */
EAPI int E_EVENT_BG_UPDATE = 0;
E_API int E_EVENT_BG_UPDATE = 0;
static E_Fm2_Mime_Handler *bg_hdl = NULL;
/* externally accessible functions */
@ -75,7 +75,7 @@ e_bg_shutdown(void)
* Use -1 as a wild card for each parameter.
* The most specific match will be returned
*/
EAPI const E_Config_Desktop_Background *
E_API const E_Config_Desktop_Background *
e_bg_config_get(int manager_num, int zone_num, int desk_x, int desk_y)
{
Eina_List *l, *entries;
@ -143,7 +143,7 @@ e_bg_config_get(int manager_num, int zone_num, int desk_x, int desk_y)
return bg;
}
EAPI Eina_Stringshare *
E_API Eina_Stringshare *
e_bg_file_get(int manager_num, int zone_num, int desk_x, int desk_y)
{
const E_Config_Desktop_Background *cfbg;
@ -191,7 +191,7 @@ e_bg_file_get(int manager_num, int zone_num, int desk_x, int desk_y)
return bgfile;
}
EAPI void
E_API void
e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition)
{
Evas_Object *o;
@ -292,7 +292,7 @@ end:
eina_stringshare_del(bgfile);
}
EAPI void
E_API void
e_bg_default_set(const char *file)
{
E_Event_Bg_Update *ev;
@ -329,7 +329,7 @@ e_bg_default_set(const char *file)
ecore_event_add(E_EVENT_BG_UPDATE, ev, _e_bg_event_bg_update_free, NULL);
}
EAPI void
E_API void
e_bg_add(int manager, int zone, int desk_x, int desk_y, const char *file)
{
const Eina_List *l;
@ -371,7 +371,7 @@ e_bg_add(int manager, int zone, int desk_x, int desk_y, const char *file)
ecore_event_add(E_EVENT_BG_UPDATE, ev, _e_bg_event_bg_update_free, NULL);
}
EAPI void
E_API void
e_bg_del(int manager, int zone, int desk_x, int desk_y)
{
Eina_List *l;
@ -400,7 +400,7 @@ e_bg_del(int manager, int zone, int desk_x, int desk_y)
ecore_event_add(E_EVENT_BG_UPDATE, ev, _e_bg_event_bg_update_free, NULL);
}
EAPI void
E_API void
e_bg_update(void)
{
const Eina_List *l, *ll;
@ -501,6 +501,7 @@ _e_bg_signal(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNU
E_FREE_FUNC(zone->prev_bg_object, evas_object_del);
E_FREE_FUNC(zone->transition_object, evas_object_del);
e_comp_canvas_zone_update(zone);
evas_object_move(zone->bg_object, zone->x, zone->y);
evas_object_resize(zone->bg_object, zone->w, zone->h);
evas_object_layer_set(zone->bg_object, E_LAYER_BG);

View File

@ -15,7 +15,7 @@ typedef struct _E_Bg_Image_Import_Handle E_Bg_Image_Import_Handle;
#ifndef E_BG_H
#define E_BG_H
extern EAPI int E_EVENT_BG_UPDATE;
extern E_API int E_EVENT_BG_UPDATE;
struct _E_Event_Bg_Update
{
@ -28,16 +28,16 @@ struct _E_Event_Bg_Update
EINTERN int e_bg_init(void);
EINTERN int e_bg_shutdown(void);
EAPI const E_Config_Desktop_Background *e_bg_config_get(int manager_num, int zone_num, int desk_x, int desk_y);
EAPI Eina_Stringshare *e_bg_file_get(int manager_num, int zone_num, int desk_x, int desk_y);
EAPI void e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition);
EAPI void e_bg_add(int manager, int zone, int desk_x, int desk_y, const char *file);
EAPI void e_bg_del(int manager, int zone, int desk_x, int desk_y);
EAPI void e_bg_default_set(const char *file);
EAPI void e_bg_update(void);
E_API const E_Config_Desktop_Background *e_bg_config_get(int manager_num, int zone_num, int desk_x, int desk_y);
E_API Eina_Stringshare *e_bg_file_get(int manager_num, int zone_num, int desk_x, int desk_y);
E_API void e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition);
E_API void e_bg_add(int manager, int zone, int desk_x, int desk_y, const char *file);
E_API void e_bg_del(int manager, int zone, int desk_x, int desk_y);
E_API void e_bg_default_set(const char *file);
E_API void e_bg_update(void);
EAPI E_Bg_Image_Import_Handle *e_bg_image_import_new(const char *image_file, void (*cb)(void *data, const char *edje_file), const void *data);
EAPI void e_bg_image_import_cancel(E_Bg_Image_Import_Handle *handle);
E_API E_Bg_Image_Import_Handle *e_bg_image_import_new(const char *image_file, void (*cb)(void *data, const char *edje_file), const void *data);
E_API void e_bg_image_import_cancel(E_Bg_Image_Import_Handle *handle);
#endif
#endif

View File

@ -100,7 +100,7 @@ e_bindings_shutdown(void)
return 1;
}
EAPI int
E_API int
e_bindings_modifiers_to_ecore_convert(E_Binding_Modifier modifiers)
{
int mod = 0;
@ -116,7 +116,7 @@ e_bindings_modifiers_to_ecore_convert(E_Binding_Modifier modifiers)
return mod;
}
EAPI void
E_API void
e_bindings_ecore_event_mouse_wheel_convert(const Ecore_Event_Mouse_Wheel *ev, E_Binding_Event_Wheel *event)
{
memset(event, 0, sizeof(E_Binding_Event_Wheel));
@ -128,7 +128,7 @@ e_bindings_ecore_event_mouse_wheel_convert(const Ecore_Event_Mouse_Wheel *ev, E_
event->modifiers = _e_bindings_modifiers(ev->modifiers);
}
EAPI void
E_API void
e_bindings_ecore_event_mouse_button_convert(const Ecore_Event_Mouse_Button *ev, E_Binding_Event_Mouse_Button *event)
{
memset(event, 0, sizeof(E_Binding_Event_Mouse_Button));
@ -142,7 +142,7 @@ e_bindings_ecore_event_mouse_button_convert(const Ecore_Event_Mouse_Button *ev,
event->triple_click = !!ev->triple_click;
}
EAPI void
E_API void
e_bindings_evas_event_mouse_wheel_convert(const Evas_Event_Mouse_Wheel *ev, E_Binding_Event_Wheel *event)
{
memset(event, 0, sizeof(E_Binding_Event_Wheel));
@ -177,7 +177,7 @@ e_bindings_evas_event_mouse_wheel_convert(const Evas_Event_Mouse_Wheel *ev, E_Bi
*/
}
EAPI int
E_API int
e_bindings_evas_modifiers_convert(Evas_Modifier *modifiers)
{
int mod = 0;
@ -191,7 +191,7 @@ e_bindings_evas_modifiers_convert(Evas_Modifier *modifiers)
return mod;
}
EAPI void
E_API void
e_bindings_evas_event_mouse_button_convert(const Evas_Event_Mouse_Down *ev, E_Binding_Event_Mouse_Button *event)
{
memset(event, 0, sizeof(E_Binding_Event_Mouse_Button));
@ -226,7 +226,7 @@ e_bindings_evas_event_mouse_button_convert(const Evas_Event_Mouse_Down *ev, E_Bi
*/
}
EAPI void
E_API void
e_bindings_signal_reset(void)
{
E_Config_Binding_Signal *ebs;
@ -255,7 +255,7 @@ e_bindings_signal_reset(void)
}
}
EAPI void
E_API void
e_bindings_acpi_reset(void)
{
E_Config_Binding_Acpi *eba;
@ -268,7 +268,7 @@ e_bindings_acpi_reset(void)
eba->action, eba->params);
}
EAPI void
E_API void
e_bindings_wheel_reset(void)
{
E_Config_Binding_Wheel *ebw;
@ -281,7 +281,7 @@ e_bindings_wheel_reset(void)
ebw->any_mod, ebw->action, ebw->params);
}
EAPI void
E_API void
e_bindings_edge_reset(void)
{
E_Config_Binding_Edge *ebe;
@ -294,7 +294,7 @@ e_bindings_edge_reset(void)
ebe->any_mod, ebe->action, ebe->params, ebe->delay);
}
EAPI void
E_API void
e_bindings_mouse_reset(void)
{
E_Config_Binding_Mouse *ebm;
@ -307,7 +307,7 @@ e_bindings_mouse_reset(void)
ebm->any_mod, ebm->action, ebm->params);
}
EAPI void
E_API void
e_bindings_key_reset(void)
{
E_Config_Binding_Key *ebk;
@ -322,7 +322,7 @@ e_bindings_key_reset(void)
e_managers_keys_grab();
}
EAPI void
E_API void
e_bindings_reset(void)
{
e_bindings_signal_reset();
@ -332,7 +332,7 @@ e_bindings_reset(void)
e_bindings_key_reset();
}
EAPI void
E_API void
e_bindings_mouse_add(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, const char *action, const char *params)
{
E_Binding_Mouse *binding;
@ -347,7 +347,7 @@ e_bindings_mouse_add(E_Binding_Context ctxt, int button, E_Binding_Modifier mod,
mouse_bindings = eina_list_append(mouse_bindings, binding);
}
EAPI void
E_API void
e_bindings_mouse_del(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, const char *action, const char *params)
{
E_Binding_Mouse *binding;
@ -371,7 +371,7 @@ e_bindings_mouse_del(E_Binding_Context ctxt, int button, E_Binding_Modifier mod,
}
}
EAPI void
E_API void
e_bindings_mouse_grab(E_Binding_Context ctxt, Ecore_X_Window win)
{
E_Binding_Mouse *binding;
@ -393,7 +393,7 @@ e_bindings_mouse_grab(E_Binding_Context ctxt, Ecore_X_Window win)
}
}
EAPI void
E_API void
e_bindings_mouse_ungrab(E_Binding_Context ctxt, Ecore_X_Window win)
{
E_Binding_Mouse *binding;
@ -411,7 +411,7 @@ e_bindings_mouse_ungrab(E_Binding_Context ctxt, Ecore_X_Window win)
}
}
EAPI E_Action *
E_API E_Action *
e_bindings_mouse_button_find(E_Binding_Context ctxt, E_Binding_Event_Mouse_Button *ev, E_Binding_Mouse **bind_ret)
{
E_Binding_Mouse *binding;
@ -435,7 +435,7 @@ e_bindings_mouse_button_find(E_Binding_Context ctxt, E_Binding_Event_Mouse_Butto
return NULL;
}
EAPI E_Action *
E_API E_Action *
e_bindings_mouse_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Mouse_Button *ev)
{
E_Action *act;
@ -453,7 +453,7 @@ e_bindings_mouse_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Bind
return act;
}
EAPI E_Action *
E_API E_Action *
e_bindings_mouse_down_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Down *ev)
{
E_Binding_Event_Mouse_Button event;
@ -463,7 +463,7 @@ e_bindings_mouse_down_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, E
return e_bindings_mouse_down_event_handle(ctxt, obj, &event);
}
EAPI E_Action *
E_API E_Action *
e_bindings_mouse_down_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev)
{
E_Binding_Event_Mouse_Button event;
@ -473,7 +473,7 @@ e_bindings_mouse_down_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj,
return e_bindings_mouse_down_event_handle(ctxt, obj, &event);
}
EAPI E_Action *
E_API E_Action *
e_bindings_mouse_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Mouse_Button *ev)
{
E_Action *act;
@ -491,7 +491,7 @@ e_bindings_mouse_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Bindin
return act;
}
EAPI E_Action *
E_API E_Action *
e_bindings_mouse_up_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Up *ev)
{
E_Binding_Event_Mouse_Button event;
@ -501,7 +501,7 @@ e_bindings_mouse_up_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Eva
return e_bindings_mouse_up_event_handle(ctxt, obj, &event);
}
EAPI E_Action *
E_API E_Action *
e_bindings_mouse_up_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev)
{
E_Binding_Event_Mouse_Button event;
@ -511,7 +511,7 @@ e_bindings_mouse_up_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ec
return e_bindings_mouse_up_event_handle(ctxt, obj, &event);
}
EAPI void
E_API void
e_bindings_key_add(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params)
{
E_Binding_Key *binding;
@ -526,7 +526,7 @@ e_bindings_key_add(E_Binding_Context ctxt, const char *key, E_Binding_Modifier m
key_bindings = eina_list_append(key_bindings, binding);
}
EAPI E_Binding_Key *
E_API E_Binding_Key *
e_bindings_key_get(const char *action)
{
E_Binding_Key *binding;
@ -540,7 +540,7 @@ e_bindings_key_get(const char *action)
return NULL;
}
EAPI E_Binding_Key *
E_API E_Binding_Key *
e_bindings_key_find(const char *key, E_Binding_Modifier mod, int any_mod)
{
E_Binding_Key *binding;
@ -558,7 +558,7 @@ e_bindings_key_find(const char *key, E_Binding_Modifier mod, int any_mod)
return NULL;
}
EAPI void
E_API void
e_bindings_key_del(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params)
{
E_Binding_Key *binding;
@ -582,7 +582,7 @@ e_bindings_key_del(E_Binding_Context ctxt, const char *key, E_Binding_Modifier m
}
}
EAPI void
E_API void
e_bindings_key_grab(E_Binding_Context ctxt, Ecore_X_Window win)
{
E_Binding_Key *binding;
@ -603,7 +603,7 @@ e_bindings_key_grab(E_Binding_Context ctxt, Ecore_X_Window win)
}
}
EAPI void
E_API void
e_bindings_key_ungrab(E_Binding_Context ctxt, Ecore_X_Window win)
{
E_Binding_Key *binding;
@ -624,7 +624,7 @@ e_bindings_key_ungrab(E_Binding_Context ctxt, Ecore_X_Window win)
}
}
EAPI E_Action *
E_API E_Action *
e_bindings_key_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Key *ev)
{
E_Binding_Modifier mod = 0;
@ -657,7 +657,7 @@ e_bindings_key_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Ev
return NULL;
}
EAPI E_Action *
E_API E_Action *
e_bindings_key_up_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Key *ev)
{
E_Binding_Modifier mod = 0;
@ -690,7 +690,7 @@ e_bindings_key_up_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Even
return NULL;
}
EAPI E_Action *
E_API E_Action *
e_bindings_key_down_event_find(E_Binding_Context ctxt, Ecore_Event_Key *ev)
{
E_Binding_Modifier mod = 0;
@ -715,7 +715,7 @@ e_bindings_key_down_event_find(E_Binding_Context ctxt, Ecore_Event_Key *ev)
return NULL;
}
EAPI E_Action *
E_API E_Action *
e_bindings_key_up_event_find(E_Binding_Context ctxt, Ecore_Event_Key *ev)
{
E_Binding_Modifier mod = 0;
@ -740,7 +740,7 @@ e_bindings_key_up_event_find(E_Binding_Context ctxt, Ecore_Event_Key *ev)
return NULL;
}
EAPI Eina_Bool
E_API Eina_Bool
e_bindings_key_allowed(const char *key)
{
if (!key) return EINA_FALSE;
@ -767,7 +767,7 @@ e_bindings_key_allowed(const char *key)
}
EAPI void
E_API void
e_bindings_edge_add(E_Binding_Context ctxt, E_Zone_Edge edge, Eina_Bool drag_only, E_Binding_Modifier mod, int any_mod, const char *action, const char *params, float delay)
{
E_Binding_Edge *binding;
@ -786,7 +786,7 @@ e_bindings_edge_add(E_Binding_Context ctxt, E_Zone_Edge edge, Eina_Bool drag_onl
e_zone_edge_new(edge);
}
EAPI Eina_Bool
E_API Eina_Bool
e_bindings_edge_flippable_get(E_Zone_Edge edge)
{
E_Binding_Edge *binding;
@ -804,7 +804,7 @@ e_bindings_edge_flippable_get(E_Zone_Edge edge)
return EINA_FALSE;
}
EAPI Eina_Bool
E_API Eina_Bool
e_bindings_edge_non_flippable_get(E_Zone_Edge edge)
{
E_Binding_Edge *binding;
@ -823,7 +823,7 @@ e_bindings_edge_non_flippable_get(E_Zone_Edge edge)
return EINA_FALSE;
}
EAPI E_Binding_Edge *
E_API E_Binding_Edge *
e_bindings_edge_get(const char *action, E_Zone_Edge edge, int click)
{
E_Binding_Edge *binding;
@ -841,7 +841,7 @@ e_bindings_edge_get(const char *action, E_Zone_Edge edge, int click)
return NULL;
}
EAPI void
E_API void
e_bindings_edge_del(E_Binding_Context ctxt, E_Zone_Edge edge, Eina_Bool drag_only, E_Binding_Modifier mod, int any_mod, const char *action, const char *params, float delay)
{
E_Binding_Edge *binding;
@ -873,7 +873,7 @@ e_bindings_edge_del(E_Binding_Context ctxt, E_Zone_Edge edge, Eina_Bool drag_onl
e_zone_edge_free(edge);
}
EAPI E_Action *
E_API E_Action *
e_bindings_edge_in_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev)
{
E_Binding_Modifier mod = 0;
@ -923,7 +923,7 @@ e_bindings_edge_in_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Z
return act;
}
EAPI E_Action *
E_API E_Action *
e_bindings_edge_out_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev)
{
E_Binding_Modifier mod = 0;
@ -965,7 +965,7 @@ e_bindings_edge_out_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_
return act;
}
EAPI E_Action *
E_API E_Action *
e_bindings_edge_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev)
{
E_Binding_Modifier mod = 0;
@ -1002,7 +1002,7 @@ e_bindings_edge_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event
return act;
}
EAPI E_Action *
E_API E_Action *
e_bindings_edge_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev)
{
E_Binding_Modifier mod = 0;
@ -1030,7 +1030,7 @@ e_bindings_edge_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Z
return act;
}
EAPI void
E_API void
e_bindings_signal_add(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Modifier mod, int any_mod, const char *action, const char *params)
{
E_Binding_Signal *binding;
@ -1046,7 +1046,7 @@ e_bindings_signal_add(E_Binding_Context ctxt, const char *sig, const char *src,
signal_bindings = eina_list_append(signal_bindings, binding);
}
EAPI void
E_API void
e_bindings_signal_del(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Modifier mod, int any_mod, const char *action, const char *params)
{
E_Binding_Signal *binding;
@ -1073,7 +1073,7 @@ e_bindings_signal_del(E_Binding_Context ctxt, const char *sig, const char *src,
}
}
EAPI E_Action *
E_API E_Action *
e_bindings_signal_find(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Signal **bind_ret)
{
E_Binding_Modifier mod = 0;
@ -1103,7 +1103,7 @@ e_bindings_signal_find(E_Binding_Context ctxt, const char *sig, const char *src,
return NULL;
}
EAPI E_Action *
E_API E_Action *
e_bindings_signal_handle(E_Binding_Context ctxt, E_Object *obj, const char *sig, const char *src)
{
E_Action *act;
@ -1124,7 +1124,7 @@ e_bindings_signal_handle(E_Binding_Context ctxt, E_Object *obj, const char *sig,
return act;
}
EAPI void
E_API void
e_bindings_wheel_add(E_Binding_Context ctxt, int direction, int z, E_Binding_Modifier mod, int any_mod, const char *action, const char *params)
{
E_Binding_Wheel *binding;
@ -1140,7 +1140,7 @@ e_bindings_wheel_add(E_Binding_Context ctxt, int direction, int z, E_Binding_Mod
wheel_bindings = eina_list_append(wheel_bindings, binding);
}
EAPI void
E_API void
e_bindings_wheel_del(E_Binding_Context ctxt, int direction, int z, E_Binding_Modifier mod, int any_mod, const char *action, const char *params)
{
E_Binding_Wheel *binding;
@ -1165,7 +1165,7 @@ e_bindings_wheel_del(E_Binding_Context ctxt, int direction, int z, E_Binding_Mod
}
}
EAPI void
E_API void
e_bindings_wheel_grab(E_Binding_Context ctxt, Ecore_X_Window win)
{
E_Binding_Wheel *binding;
@ -1199,7 +1199,7 @@ e_bindings_wheel_grab(E_Binding_Context ctxt, Ecore_X_Window win)
}
}
EAPI void
E_API void
e_bindings_wheel_ungrab(E_Binding_Context ctxt, Ecore_X_Window win)
{
E_Binding_Wheel *binding;
@ -1232,7 +1232,7 @@ e_bindings_wheel_ungrab(E_Binding_Context ctxt, Ecore_X_Window win)
}
}
EAPI E_Action *
E_API E_Action *
e_bindings_wheel_find(E_Binding_Context ctxt, E_Binding_Event_Wheel *ev, E_Binding_Wheel **bind_ret)
{
E_Binding_Wheel *binding;
@ -1257,7 +1257,7 @@ e_bindings_wheel_find(E_Binding_Context ctxt, E_Binding_Event_Wheel *ev, E_Bindi
return NULL;
}
EAPI E_Action *
E_API E_Action *
e_bindings_wheel_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Wheel *ev)
{
E_Action *act;
@ -1275,7 +1275,7 @@ e_bindings_wheel_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_E
return act;
}
EAPI E_Action *
E_API E_Action *
e_bindings_wheel_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Wheel *ev)
{
E_Binding_Event_Wheel event;
@ -1285,7 +1285,7 @@ e_bindings_wheel_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_E
return e_bindings_wheel_event_handle(ctxt, obj, &event);
}
EAPI E_Action *
E_API E_Action *
e_bindings_wheel_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Wheel *ev)
{
E_Binding_Event_Wheel event;
@ -1295,7 +1295,7 @@ e_bindings_wheel_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore
return e_bindings_wheel_event_handle(ctxt, obj, &event);
}
EAPI void
E_API void
e_bindings_acpi_add(E_Binding_Context ctxt, int type, int status, const char *action, const char *params)
{
E_Binding_Acpi *binding;
@ -1309,7 +1309,7 @@ e_bindings_acpi_add(E_Binding_Context ctxt, int type, int status, const char *ac
acpi_bindings = eina_list_append(acpi_bindings, binding);
}
EAPI void
E_API void
e_bindings_acpi_del(E_Binding_Context ctxt, int type, int status, const char *action, const char *params)
{
E_Binding_Acpi *binding;
@ -1331,7 +1331,7 @@ e_bindings_acpi_del(E_Binding_Context ctxt, int type, int status, const char *ac
}
}
EAPI E_Action *
E_API E_Action *
e_bindings_acpi_find(E_Binding_Context ctxt, E_Event_Acpi *ev, E_Binding_Acpi **bind_ret)
{
E_Binding_Acpi *binding;
@ -1360,7 +1360,7 @@ e_bindings_acpi_find(E_Binding_Context ctxt, E_Event_Acpi *ev, E_Binding_Acpi **
return NULL;
}
EAPI E_Action *
E_API E_Action *
e_bindings_acpi_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Acpi *ev)
{
E_Action *act;

View File

@ -133,73 +133,73 @@ struct _E_Binding_Acpi
EINTERN int e_bindings_init(void);
EINTERN int e_bindings_shutdown(void);
EAPI void e_bindings_mouse_reset(void);
EAPI void e_bindings_key_reset(void);
EAPI void e_bindings_wheel_reset(void);
EAPI void e_bindings_edge_reset(void);
EAPI void e_bindings_signal_reset(void);
EAPI void e_bindings_reset(void);
E_API void e_bindings_mouse_reset(void);
E_API void e_bindings_key_reset(void);
E_API void e_bindings_wheel_reset(void);
E_API void e_bindings_edge_reset(void);
E_API void e_bindings_signal_reset(void);
E_API void e_bindings_reset(void);
EAPI void e_bindings_mouse_add(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
EAPI void e_bindings_mouse_del(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
EAPI void e_bindings_mouse_grab(E_Binding_Context ctxt, Ecore_X_Window win);
EAPI void e_bindings_mouse_ungrab(E_Binding_Context ctxt, Ecore_X_Window win);
EAPI E_Action *e_bindings_mouse_button_find(E_Binding_Context ctxt, E_Binding_Event_Mouse_Button *ev, E_Binding_Mouse **bind_ret);
EAPI E_Action *e_bindings_mouse_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Mouse_Button *ev);
EAPI E_Action *e_bindings_mouse_down_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Down *ev);
EAPI E_Action *e_bindings_mouse_down_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev);
EAPI E_Action *e_bindings_mouse_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Mouse_Button *ev);
EAPI E_Action *e_bindings_mouse_up_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Up *ev);
EAPI E_Action *e_bindings_mouse_up_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev);
E_API void e_bindings_mouse_add(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
E_API void e_bindings_mouse_del(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
E_API void e_bindings_mouse_grab(E_Binding_Context ctxt, Ecore_X_Window win);
E_API void e_bindings_mouse_ungrab(E_Binding_Context ctxt, Ecore_X_Window win);
E_API E_Action *e_bindings_mouse_button_find(E_Binding_Context ctxt, E_Binding_Event_Mouse_Button *ev, E_Binding_Mouse **bind_ret);
E_API E_Action *e_bindings_mouse_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Mouse_Button *ev);
E_API E_Action *e_bindings_mouse_down_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Down *ev);
E_API E_Action *e_bindings_mouse_down_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev);
E_API E_Action *e_bindings_mouse_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Mouse_Button *ev);
E_API E_Action *e_bindings_mouse_up_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Up *ev);
E_API E_Action *e_bindings_mouse_up_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev);
EAPI void e_bindings_key_add(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
EAPI void e_bindings_key_del(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
EAPI E_Binding_Key *e_bindings_key_get(const char *action);
EAPI E_Binding_Key *e_bindings_key_find(const char *key, E_Binding_Modifier mod, int any_mod);
EAPI void e_bindings_key_grab(E_Binding_Context ctxt, Ecore_X_Window win);
EAPI void e_bindings_key_ungrab(E_Binding_Context ctxt, Ecore_X_Window win);
EAPI E_Action *e_bindings_key_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Key *ev);
EAPI E_Action *e_bindings_key_up_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Key *ev);
EAPI E_Action *e_bindings_key_down_event_find(E_Binding_Context ctxt, Ecore_Event_Key *ev);
EAPI E_Action *e_bindings_key_up_event_find(E_Binding_Context ctxt, Ecore_Event_Key *ev);
E_API void e_bindings_key_add(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
E_API void e_bindings_key_del(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
E_API E_Binding_Key *e_bindings_key_get(const char *action);
E_API E_Binding_Key *e_bindings_key_find(const char *key, E_Binding_Modifier mod, int any_mod);
E_API void e_bindings_key_grab(E_Binding_Context ctxt, Ecore_X_Window win);
E_API void e_bindings_key_ungrab(E_Binding_Context ctxt, Ecore_X_Window win);
E_API E_Action *e_bindings_key_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Key *ev);
E_API E_Action *e_bindings_key_up_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Key *ev);
E_API E_Action *e_bindings_key_down_event_find(E_Binding_Context ctxt, Ecore_Event_Key *ev);
E_API E_Action *e_bindings_key_up_event_find(E_Binding_Context ctxt, Ecore_Event_Key *ev);
EAPI Eina_Bool e_bindings_key_allowed(const char *key);
E_API Eina_Bool e_bindings_key_allowed(const char *key);
EAPI void e_bindings_edge_add(E_Binding_Context ctxt, E_Zone_Edge edge, Eina_Bool drag_only, E_Binding_Modifier mod, int any_mod, const char *action, const char *params, float delay);
EAPI Eina_Bool e_bindings_edge_flippable_get(E_Zone_Edge edge);
EAPI Eina_Bool e_bindings_edge_non_flippable_get(E_Zone_Edge edge);
EAPI E_Binding_Edge *e_bindings_edge_get(const char *action, E_Zone_Edge edge, int click);
EAPI void e_bindings_edge_del(E_Binding_Context ctxt, E_Zone_Edge edge, Eina_Bool drag_only, E_Binding_Modifier mod, int any_mod, const char *action, const char *params, float delay);
EAPI E_Action *e_bindings_edge_in_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
EAPI E_Action *e_bindings_edge_out_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
EAPI E_Action *e_bindings_edge_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
EAPI E_Action *e_bindings_edge_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
E_API void e_bindings_edge_add(E_Binding_Context ctxt, E_Zone_Edge edge, Eina_Bool drag_only, E_Binding_Modifier mod, int any_mod, const char *action, const char *params, float delay);
E_API Eina_Bool e_bindings_edge_flippable_get(E_Zone_Edge edge);
E_API Eina_Bool e_bindings_edge_non_flippable_get(E_Zone_Edge edge);
E_API E_Binding_Edge *e_bindings_edge_get(const char *action, E_Zone_Edge edge, int click);
E_API void e_bindings_edge_del(E_Binding_Context ctxt, E_Zone_Edge edge, Eina_Bool drag_only, E_Binding_Modifier mod, int any_mod, const char *action, const char *params, float delay);
E_API E_Action *e_bindings_edge_in_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
E_API E_Action *e_bindings_edge_out_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
E_API E_Action *e_bindings_edge_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
E_API E_Action *e_bindings_edge_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev);
EAPI void e_bindings_signal_add(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
EAPI void e_bindings_signal_del(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
EAPI E_Action *e_bindings_signal_find(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Signal **bind_ret);
EAPI E_Action *e_bindings_signal_handle(E_Binding_Context ctxt, E_Object *obj, const char *sig, const char *src);
E_API void e_bindings_signal_add(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
E_API void e_bindings_signal_del(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
E_API E_Action *e_bindings_signal_find(E_Binding_Context ctxt, const char *sig, const char *src, E_Binding_Signal **bind_ret);
E_API E_Action *e_bindings_signal_handle(E_Binding_Context ctxt, E_Object *obj, const char *sig, const char *src);
EAPI void e_bindings_wheel_add(E_Binding_Context ctxt, int direction, int z, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
EAPI void e_bindings_wheel_del(E_Binding_Context ctxt, int direction, int z, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
EAPI void e_bindings_wheel_grab(E_Binding_Context ctxt, Ecore_X_Window win);
EAPI void e_bindings_wheel_ungrab(E_Binding_Context ctxt, Ecore_X_Window win);
EAPI E_Action *e_bindings_wheel_find(E_Binding_Context ctxt, E_Binding_Event_Wheel *ev, E_Binding_Wheel **bind_ret);
EAPI E_Action *e_bindings_wheel_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Wheel *ev);
EAPI E_Action *e_bindings_wheel_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Wheel *ev);
EAPI E_Action *e_bindings_wheel_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Wheel *ev);
E_API void e_bindings_wheel_add(E_Binding_Context ctxt, int direction, int z, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
E_API void e_bindings_wheel_del(E_Binding_Context ctxt, int direction, int z, E_Binding_Modifier mod, int any_mod, const char *action, const char *params);
E_API void e_bindings_wheel_grab(E_Binding_Context ctxt, Ecore_X_Window win);
E_API void e_bindings_wheel_ungrab(E_Binding_Context ctxt, Ecore_X_Window win);
E_API E_Action *e_bindings_wheel_find(E_Binding_Context ctxt, E_Binding_Event_Wheel *ev, E_Binding_Wheel **bind_ret);
E_API E_Action *e_bindings_wheel_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Wheel *ev);
E_API E_Action *e_bindings_wheel_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Wheel *ev);
E_API E_Action *e_bindings_wheel_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Wheel *ev);
EAPI void e_bindings_acpi_add(E_Binding_Context ctxt, int type, int status, const char *action, const char *params);
EAPI void e_bindings_acpi_del(E_Binding_Context ctxt, int type, int status, const char *action, const char *params);
EAPI E_Action *e_bindings_acpi_find(E_Binding_Context ctxt, E_Event_Acpi *ev, E_Binding_Acpi **bind_ret);
EAPI E_Action *e_bindings_acpi_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Acpi *ev);
E_API void e_bindings_acpi_add(E_Binding_Context ctxt, int type, int status, const char *action, const char *params);
E_API void e_bindings_acpi_del(E_Binding_Context ctxt, int type, int status, const char *action, const char *params);
E_API E_Action *e_bindings_acpi_find(E_Binding_Context ctxt, E_Event_Acpi *ev, E_Binding_Acpi **bind_ret);
E_API E_Action *e_bindings_acpi_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Acpi *ev);
EAPI int e_bindings_evas_modifiers_convert(Evas_Modifier *modifiers);
EAPI int e_bindings_modifiers_to_ecore_convert(E_Binding_Modifier modifiers);
EAPI void e_bindings_evas_event_mouse_button_convert(const Evas_Event_Mouse_Down *ev, E_Binding_Event_Mouse_Button *event);
EAPI void e_bindings_evas_event_mouse_wheel_convert(const Evas_Event_Mouse_Wheel *ev, E_Binding_Event_Wheel *event);
EAPI void e_bindings_ecore_event_mouse_button_convert(const Ecore_Event_Mouse_Button *ev, E_Binding_Event_Mouse_Button *event);
EAPI void e_bindings_ecore_event_mouse_wheel_convert(const Ecore_Event_Mouse_Wheel *ev, E_Binding_Event_Wheel *event);
E_API int e_bindings_evas_modifiers_convert(Evas_Modifier *modifiers);
E_API int e_bindings_modifiers_to_ecore_convert(E_Binding_Modifier modifiers);
E_API void e_bindings_evas_event_mouse_button_convert(const Evas_Event_Mouse_Down *ev, E_Binding_Event_Mouse_Button *event);
E_API void e_bindings_evas_event_mouse_wheel_convert(const Evas_Event_Mouse_Wheel *ev, E_Binding_Event_Wheel *event);
E_API void e_bindings_ecore_event_mouse_button_convert(const Ecore_Event_Mouse_Button *ev, E_Binding_Event_Mouse_Button *event);
E_API void e_bindings_ecore_event_mouse_wheel_convert(const Ecore_Event_Mouse_Wheel *ev, E_Binding_Event_Wheel *event);
#endif
#endif

View File

@ -100,14 +100,14 @@ _e_box_item_nth_get(E_Smart_Data *sd, unsigned int n)
}
/* externally accessible functions */
EAPI Evas_Object *
E_API Evas_Object *
e_box_add(Evas *evas)
{
_e_box_smart_init();
return evas_object_smart_add(evas, _e_smart);
}
EAPI int
E_API int
e_box_freeze(Evas_Object *obj)
{
E_Smart_Data *sd;
@ -119,7 +119,7 @@ e_box_freeze(Evas_Object *obj)
return sd->frozen;
}
EAPI int
E_API int
e_box_thaw(Evas_Object *obj)
{
E_Smart_Data *sd;
@ -132,7 +132,7 @@ e_box_thaw(Evas_Object *obj)
return sd->frozen;
}
EAPI void
E_API void
e_box_orientation_set(Evas_Object *obj, int horizontal)
{
E_Smart_Data *sd;
@ -146,7 +146,7 @@ e_box_orientation_set(Evas_Object *obj, int horizontal)
if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
}
EAPI int
E_API int
e_box_orientation_get(Evas_Object *obj)
{
E_Smart_Data *sd;
@ -157,7 +157,7 @@ e_box_orientation_get(Evas_Object *obj)
return sd->horizontal;
}
EAPI void
E_API void
e_box_homogenous_set(Evas_Object *obj, int homogenous)
{
E_Smart_Data *sd;
@ -171,7 +171,7 @@ e_box_homogenous_set(Evas_Object *obj, int homogenous)
if (sd->frozen <= 0) _e_box_smart_reconfigure(sd);
}
EAPI int
E_API int
e_box_pack_start(Evas_Object *obj, Evas_Object *child)
{
E_Smart_Data *sd;
@ -192,7 +192,7 @@ e_box_pack_start(Evas_Object *obj, Evas_Object *child)
return 0;
}
EAPI int
E_API int
e_box_pack_end(Evas_Object *obj, Evas_Object *child)
{
E_Smart_Data *sd;
@ -213,7 +213,7 @@ e_box_pack_end(Evas_Object *obj, Evas_Object *child)
return sd->item_count - 1;
}
EAPI int
E_API int
e_box_pack_before(Evas_Object *obj, Evas_Object *child, Evas_Object *before)
{
E_Smart_Data *sd;
@ -240,7 +240,7 @@ e_box_pack_before(Evas_Object *obj, Evas_Object *child, Evas_Object *before)
return i;
}
EAPI int
E_API int
e_box_pack_after(Evas_Object *obj, Evas_Object *child, Evas_Object *after)
{
E_Smart_Data *sd;
@ -266,7 +266,7 @@ e_box_pack_after(Evas_Object *obj, Evas_Object *child, Evas_Object *after)
return i;
}
EAPI int
E_API int
e_box_pack_count_get(Evas_Object *obj)
{
E_Smart_Data *sd;
@ -277,7 +277,7 @@ e_box_pack_count_get(Evas_Object *obj)
return sd->item_count;
}
EAPI Evas_Object *
E_API Evas_Object *
e_box_pack_object_nth(Evas_Object *obj, int n)
{
E_Smart_Data *sd;
@ -288,7 +288,7 @@ e_box_pack_object_nth(Evas_Object *obj, int n)
return _e_box_item_nth_get(sd, n);
}
EAPI Evas_Object *
E_API Evas_Object *
e_box_pack_object_first(Evas_Object *obj)
{
E_Smart_Data *sd;
@ -299,7 +299,7 @@ e_box_pack_object_first(Evas_Object *obj)
return sd->items ? sd->items->obj : NULL;
}
EAPI Evas_Object *
E_API Evas_Object *
e_box_pack_object_last(Evas_Object *obj)
{
E_Smart_Data *sd;
@ -310,7 +310,7 @@ e_box_pack_object_last(Evas_Object *obj)
return EINA_INLIST_CONTAINER_GET(EINA_INLIST_GET(sd->items)->last, E_Box_Item)->obj;
}
EAPI void
E_API void
e_box_pack_options_set(Evas_Object *obj, int fill_w, int fill_h, int expand_w, int expand_h, double align_x, double align_y, Evas_Coord min_w, Evas_Coord min_h, Evas_Coord max_w, Evas_Coord max_h)
{
E_Box_Item *bi;
@ -331,7 +331,7 @@ e_box_pack_options_set(Evas_Object *obj, int fill_w, int fill_h, int expand_w, i
if (bi->sd->frozen <= 0) _e_box_smart_reconfigure(bi->sd);
}
EAPI void
E_API void
e_box_unpack(Evas_Object *obj)
{
E_Box_Item *bi;
@ -345,7 +345,7 @@ e_box_unpack(Evas_Object *obj)
_e_box_unpack_internal(sd, bi);
}
EAPI void
E_API void
e_box_size_min_get(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh)
{
E_Smart_Data *sd;
@ -358,7 +358,7 @@ e_box_size_min_get(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh)
if (minh) *minh = sd->min.h;
}
EAPI void
E_API void
e_box_size_max_get(Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh)
{
E_Smart_Data *sd;
@ -371,7 +371,7 @@ e_box_size_max_get(Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh)
if (maxh) *maxh = sd->max.h;
}
EAPI void
E_API void
e_box_align_get(Evas_Object *obj, double *ax, double *ay)
{
E_Smart_Data *sd;
@ -383,7 +383,7 @@ e_box_align_get(Evas_Object *obj, double *ax, double *ay)
if (ay) *ay = sd->align.y;
}
EAPI void
E_API void
e_box_align_set(Evas_Object *obj, double ax, double ay)
{
E_Smart_Data *sd;
@ -401,7 +401,7 @@ e_box_align_set(Evas_Object *obj, double ax, double ay)
/*
* Returns the number of pixels that are hidden on the left/top side.
*/
EAPI void
E_API void
e_box_align_pixel_offset_get(Evas_Object *obj, int *x, int *y)
{
E_Smart_Data *sd;
@ -413,7 +413,7 @@ e_box_align_pixel_offset_get(Evas_Object *obj, int *x, int *y)
if (y) *y = (sd->min.h - sd->h) * (1.0 - sd->align.y);
}
EAPI Evas_Object *
E_API Evas_Object *
e_box_item_at_xy_get(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
{
E_Smart_Data *sd;
@ -454,7 +454,7 @@ e_box_item_at_xy_get(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
return NULL;
}
EAPI Eina_Bool
E_API Eina_Bool
e_box_item_size_get(Evas_Object *obj, int *w, int *h)
{
E_Box_Item *bi;

View File

@ -3,28 +3,28 @@
#ifndef E_BOX_H
#define E_BOX_H
EAPI Evas_Object *e_box_add (Evas *evas);
EAPI int e_box_freeze (Evas_Object *obj);
EAPI int e_box_thaw (Evas_Object *obj);
EAPI void e_box_orientation_set (Evas_Object *obj, int horizontal);
EAPI int e_box_orientation_get (Evas_Object *obj);
EAPI void e_box_homogenous_set (Evas_Object *obj, int homogenous);
EAPI int e_box_pack_start (Evas_Object *obj, Evas_Object *child);
EAPI int e_box_pack_end (Evas_Object *obj, Evas_Object *child);
EAPI int e_box_pack_before (Evas_Object *obj, Evas_Object *child, Evas_Object *before);
EAPI int e_box_pack_after (Evas_Object *obj, Evas_Object *child, Evas_Object *after);
EAPI int e_box_pack_count_get (Evas_Object *obj);
EAPI Evas_Object *e_box_pack_object_nth (Evas_Object *obj, int n);
EAPI Evas_Object *e_box_pack_object_first (Evas_Object *obj);
EAPI Evas_Object *e_box_pack_object_last (Evas_Object *obj);
EAPI void e_box_pack_options_set (Evas_Object *obj, int fill_w, int fill_h, int expand_w, int expand_h, double align_x, double align_y, Evas_Coord min_w, Evas_Coord min_h, Evas_Coord max_w, Evas_Coord max_h);
EAPI void e_box_unpack (Evas_Object *obj);
EAPI void e_box_size_min_get (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
EAPI void e_box_size_max_get (Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh);
EAPI void e_box_align_get (Evas_Object *obj, double *ax, double *ay);
EAPI void e_box_align_set (Evas_Object *obj, double ax, double ay);
EAPI void e_box_align_pixel_offset_get (Evas_Object *obj, int *x, int *y);
EAPI Evas_Object *e_box_item_at_xy_get(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
EAPI Eina_Bool e_box_item_size_get(Evas_Object *obj, int *w, int *h);
E_API Evas_Object *e_box_add (Evas *evas);
E_API int e_box_freeze (Evas_Object *obj);
E_API int e_box_thaw (Evas_Object *obj);
E_API void e_box_orientation_set (Evas_Object *obj, int horizontal);
E_API int e_box_orientation_get (Evas_Object *obj);
E_API void e_box_homogenous_set (Evas_Object *obj, int homogenous);
E_API int e_box_pack_start (Evas_Object *obj, Evas_Object *child);
E_API int e_box_pack_end (Evas_Object *obj, Evas_Object *child);
E_API int e_box_pack_before (Evas_Object *obj, Evas_Object *child, Evas_Object *before);
E_API int e_box_pack_after (Evas_Object *obj, Evas_Object *child, Evas_Object *after);
E_API int e_box_pack_count_get (Evas_Object *obj);
E_API Evas_Object *e_box_pack_object_nth (Evas_Object *obj, int n);
E_API Evas_Object *e_box_pack_object_first (Evas_Object *obj);
E_API Evas_Object *e_box_pack_object_last (Evas_Object *obj);
E_API void e_box_pack_options_set (Evas_Object *obj, int fill_w, int fill_h, int expand_w, int expand_h, double align_x, double align_y, Evas_Coord min_w, Evas_Coord min_h, Evas_Coord max_w, Evas_Coord max_h);
E_API void e_box_unpack (Evas_Object *obj);
E_API void e_box_size_min_get (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh);
E_API void e_box_size_max_get (Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh);
E_API void e_box_align_get (Evas_Object *obj, double *ax, double *ay);
E_API void e_box_align_set (Evas_Object *obj, double ax, double ay);
E_API void e_box_align_pixel_offset_get (Evas_Object *obj, int *x, int *y);
E_API Evas_Object *e_box_item_at_xy_get(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
E_API Eina_Bool e_box_item_size_get(Evas_Object *obj, int *w, int *h);
#endif
#endif

View File

@ -8,7 +8,7 @@ static Eina_List *_e_canvases = NULL;
static Ecore_Poller *_e_canvas_cache_flush_poller = NULL;
/* externally accessible functions */
EAPI void
E_API void
e_canvas_add(Ecore_Evas *ee)
{
Evas *e;
@ -38,13 +38,13 @@ e_canvas_add(Ecore_Evas *ee)
evas_font_hinting_set(e, EVAS_FONT_HINTING_NONE);
}
EAPI void
E_API void
e_canvas_del(Ecore_Evas *ee)
{
_e_canvases = eina_list_remove(_e_canvases, ee);
}
EAPI void
E_API void
e_canvas_recache(void)
{
Eina_List *l;
@ -74,7 +74,7 @@ e_canvas_recache(void)
}
}
EAPI void
E_API void
e_canvas_cache_flush(void)
{
Eina_List *l;
@ -92,7 +92,7 @@ e_canvas_cache_flush(void)
edje_collection_cache_flush();
}
EAPI void
E_API void
e_canvas_cache_reload(void)
{
Eina_List *l;
@ -107,7 +107,7 @@ e_canvas_cache_reload(void)
}
}
EAPI void
E_API void
e_canvas_idle_flush(void)
{
Eina_List *l;
@ -122,7 +122,7 @@ e_canvas_idle_flush(void)
}
}
EAPI void
E_API void
e_canvas_rehint(void)
{
Eina_List *l;
@ -142,7 +142,7 @@ e_canvas_rehint(void)
}
}
EAPI Ecore_Evas *
E_API Ecore_Evas *
e_canvas_new(Ecore_Window win, int x, int y, int w, int h,
int direct_resize, int override, Ecore_Window *win_ret)
{
@ -181,7 +181,7 @@ e_canvas_new(Ecore_Window win, int x, int y, int w, int h,
return ee;
}
EAPI const Eina_List *
E_API const Eina_List *
e_canvas_list(void)
{
return _e_canvases;

View File

@ -3,15 +3,15 @@
#ifndef E_CANVAS_H
#define E_CANVAS_H
EAPI void e_canvas_add(Ecore_Evas *ee);
EAPI void e_canvas_del(Ecore_Evas *ee);
EAPI void e_canvas_recache(void);
EAPI void e_canvas_cache_flush(void);
EAPI void e_canvas_cache_reload(void);
EAPI void e_canvas_idle_flush(void);
EAPI void e_canvas_rehint(void);
EAPI Ecore_Evas *e_canvas_new(Ecore_Window win, int x, int y, int w, int h, int direct_resize, int override, Ecore_Window *win_ret);
E_API void e_canvas_add(Ecore_Evas *ee);
E_API void e_canvas_del(Ecore_Evas *ee);
E_API void e_canvas_recache(void);
E_API void e_canvas_cache_flush(void);
E_API void e_canvas_cache_reload(void);
E_API void e_canvas_idle_flush(void);
E_API void e_canvas_rehint(void);
E_API Ecore_Evas *e_canvas_new(Ecore_Window win, int x, int y, int w, int h, int direct_resize, int override, Ecore_Window *win_ret);
EAPI const Eina_List *e_canvas_list(void);
E_API const Eina_List *e_canvas_list(void);
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
#ifdef E_TYPEDEFS
typedef enum _E_Screen_Limits
typedef enum _E_Client_Screen_Limit
{
E_SCREEN_LIMITS_PARTLY = 0,
E_SCREEN_LIMITS_COMPLETELY = 1,
E_SCREEN_LIMITS_WITHIN = 2
} E_Screen_Limits;
E_CLIENT_OFFSCREEN_LIMIT_ALLOW_PARTIAL = 0,
E_CLIENT_OFFSCREEN_LIMIT_ALLOW_FULL = 1,
E_CLIENT_OFFSCREEN_LIMIT_ALLOW_NONE = 2
} E_Client_Screen_Limit;
typedef enum _E_Icon_Preference
{
@ -698,6 +698,7 @@ struct E_Client
#if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY)
uuid_t uuid;
#endif
Eina_Bool mouse_in : 1;
};
#define e_client_focus_policy_click(ec) \
@ -723,105 +724,105 @@ struct E_Client
for (EC = e_client_top_get(COMP); EC; EC = e_client_below_get(EC))
EAPI extern int E_EVENT_CLIENT_ADD;
EAPI extern int E_EVENT_CLIENT_REMOVE;
EAPI extern int E_EVENT_CLIENT_ZONE_SET;
EAPI extern int E_EVENT_CLIENT_DESK_SET;
EAPI extern int E_EVENT_CLIENT_RESIZE;
EAPI extern int E_EVENT_CLIENT_MOVE;
EAPI extern int E_EVENT_CLIENT_SHOW;
EAPI extern int E_EVENT_CLIENT_HIDE;
EAPI extern int E_EVENT_CLIENT_ICONIFY;
EAPI extern int E_EVENT_CLIENT_UNICONIFY;
EAPI extern int E_EVENT_CLIENT_STACK;
EAPI extern int E_EVENT_CLIENT_FOCUS_IN;
EAPI extern int E_EVENT_CLIENT_FOCUS_OUT;
EAPI extern int E_EVENT_CLIENT_PROPERTY;
EAPI extern int E_EVENT_CLIENT_FULLSCREEN;
EAPI extern int E_EVENT_CLIENT_UNFULLSCREEN;
E_API extern int E_EVENT_CLIENT_ADD;
E_API extern int E_EVENT_CLIENT_REMOVE;
E_API extern int E_EVENT_CLIENT_ZONE_SET;
E_API extern int E_EVENT_CLIENT_DESK_SET;
E_API extern int E_EVENT_CLIENT_RESIZE;
E_API extern int E_EVENT_CLIENT_MOVE;
E_API extern int E_EVENT_CLIENT_SHOW;
E_API extern int E_EVENT_CLIENT_HIDE;
E_API extern int E_EVENT_CLIENT_ICONIFY;
E_API extern int E_EVENT_CLIENT_UNICONIFY;
E_API extern int E_EVENT_CLIENT_STACK;
E_API extern int E_EVENT_CLIENT_FOCUS_IN;
E_API extern int E_EVENT_CLIENT_FOCUS_OUT;
E_API extern int E_EVENT_CLIENT_PROPERTY;
E_API extern int E_EVENT_CLIENT_FULLSCREEN;
E_API extern int E_EVENT_CLIENT_UNFULLSCREEN;
EINTERN void e_client_idler_before(void);
EINTERN Eina_Bool e_client_init(void);
EINTERN void e_client_shutdown(void);
EAPI E_Client *e_client_new(E_Comp *c, E_Pixmap *cp, int first_map, int internal);
EAPI void e_client_desk_set(E_Client *ec, E_Desk *desk);
EAPI Eina_Bool e_client_comp_grabbed_get(void);
EAPI E_Client *e_client_action_get(void);
EAPI E_Client *e_client_warping_get(void);
EAPI Eina_List *e_clients_immortal_list(const E_Comp *c);
EAPI void e_client_mouse_in(E_Client *ec, int x, int y);
EAPI void e_client_mouse_out(E_Client *ec, int x, int y);
EAPI void e_client_mouse_wheel(E_Client *ec, Evas_Point *output, E_Binding_Event_Wheel *ev);
EAPI void e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button *ev);
EAPI void e_client_mouse_up(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button* ev);
EAPI void e_client_mouse_move(E_Client *ec, Evas_Point *output);
EAPI void e_client_res_change_geometry_save(E_Client *bd);
EAPI void e_client_res_change_geometry_restore(E_Client *ec);
EAPI void e_client_zone_set(E_Client *ec, E_Zone *zone);
EAPI void e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
EAPI E_Client *e_client_above_get(const E_Client *ec);
EAPI E_Client *e_client_below_get(const E_Client *ec);
EAPI E_Client *e_client_bottom_get(const E_Comp *c);
EAPI E_Client *e_client_top_get(const E_Comp *c);
EAPI unsigned int e_clients_count(E_Comp *c);
EAPI void e_client_move_intercept_cb_set(E_Client *ec, E_Client_Move_Intercept_Cb cb);
EAPI E_Client_Hook *e_client_hook_add(E_Client_Hook_Point hookpoint, E_Client_Hook_Cb func, const void *data);
EAPI void e_client_hook_del(E_Client_Hook *ch);
EAPI void e_client_focus_latest_set(E_Client *ec);
EAPI void e_client_raise_latest_set(E_Client *ec);
EAPI Eina_Bool e_client_focus_track_enabled(void);
EAPI void e_client_focus_track_freeze(void);
EAPI void e_client_focus_track_thaw(void);
EAPI void e_client_refocus(void);
EAPI void e_client_focus_set_with_pointer(E_Client *ec);
EAPI void e_client_activate(E_Client *ec, Eina_Bool just_do_it);
EAPI E_Client *e_client_focused_get(void);
EAPI Eina_List *e_client_focus_stack_get(void);
EAPI Eina_List *e_client_raise_stack_get(void);
EAPI Eina_List *e_client_lost_windows_get(E_Zone *zone);
EAPI void e_client_shade(E_Client *ec, E_Direction dir);
EAPI void e_client_unshade(E_Client *ec, E_Direction dir);
EAPI void e_client_maximize(E_Client *ec, E_Maximize max);
EAPI void e_client_unmaximize(E_Client *ec, E_Maximize max);
EAPI void e_client_fullscreen(E_Client *ec, E_Fullscreen policy);
EAPI void e_client_unfullscreen(E_Client *ec);
EAPI void e_client_iconify(E_Client *ec);
EAPI void e_client_uniconify(E_Client *ec);
EAPI void e_client_urgent_set(E_Client *ec, Eina_Bool urgent);
EAPI void e_client_stick(E_Client *ec);
EAPI void e_client_unstick(E_Client *ec);
EAPI void e_client_pinned_set(E_Client *ec, Eina_Bool set);
EAPI void e_client_comp_hidden_set(E_Client *ec, Eina_Bool hidden);
EAPI Eina_Bool e_client_border_set(E_Client *ec, const char *name);
EAPI void e_client_act_move_keyboard(E_Client *ec);
EAPI void e_client_act_resize_keyboard(E_Client *ec);
EAPI void e_client_act_move_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev);
EAPI void e_client_act_move_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
EAPI void e_client_act_resize_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev);
EAPI void e_client_act_resize_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
EAPI void e_client_act_menu_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev, int key);
EAPI void e_client_act_close_begin(E_Client *ec);
EAPI void e_client_act_kill_begin(E_Client *ec);
EAPI Evas_Object *e_client_icon_add(E_Client *ec, Evas *evas);
EAPI void e_client_ping(E_Client *cw);
EAPI void e_client_move_cancel(void);
EAPI void e_client_resize_cancel(void);
EAPI Eina_Bool e_client_resize_begin(E_Client *ec);
EAPI void e_client_frame_recalc(E_Client *ec);
EAPI void e_client_signal_move_begin(E_Client *ec, const char *sig, const char *src EINA_UNUSED);
EAPI void e_client_signal_move_end(E_Client *ec, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
EAPI void e_client_signal_resize_begin(E_Client *ec, const char *dir, const char *sig, const char *src EINA_UNUSED);
EAPI void e_client_signal_resize_end(E_Client *ec, const char *dir EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
EAPI void e_client_resize_limit(E_Client *ec, int *w, int *h);
EAPI E_Client *e_client_under_pointer_get(E_Desk *desk, E_Client *exclude);
EAPI int e_client_pointer_warp_to_center_now(E_Client *ec);
EAPI int e_client_pointer_warp_to_center(E_Client *ec);
EAPI void e_client_redirected_set(E_Client *ec, Eina_Bool set);
EAPI Eina_Bool e_client_is_stacking(const E_Client *ec);
EAPI Eina_Bool e_client_desk_window_profile_available_check(E_Client *ec, const char *profile);
EAPI void e_client_desk_window_profile_wait_desk_set(E_Client *ec, E_Desk *desk);
EAPI void e_client_layout_cb_set(E_Client_Layout_Cb cb);
E_API E_Client *e_client_new(E_Comp *c, E_Pixmap *cp, int first_map, int internal);
E_API void e_client_desk_set(E_Client *ec, E_Desk *desk);
E_API Eina_Bool e_client_comp_grabbed_get(void);
E_API E_Client *e_client_action_get(void);
E_API E_Client *e_client_warping_get(void);
E_API Eina_List *e_clients_immortal_list(const E_Comp *c);
E_API void e_client_mouse_in(E_Client *ec, int x, int y);
E_API void e_client_mouse_out(E_Client *ec, int x, int y);
E_API void e_client_mouse_wheel(E_Client *ec, Evas_Point *output, E_Binding_Event_Wheel *ev);
E_API void e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button *ev);
E_API void e_client_mouse_up(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button* ev);
E_API void e_client_mouse_move(E_Client *ec, Evas_Point *output);
E_API void e_client_res_change_geometry_save(E_Client *bd);
E_API void e_client_res_change_geometry_restore(E_Client *ec);
E_API void e_client_zone_set(E_Client *ec, E_Zone *zone);
E_API void e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
E_API E_Client *e_client_above_get(const E_Client *ec);
E_API E_Client *e_client_below_get(const E_Client *ec);
E_API E_Client *e_client_bottom_get(const E_Comp *c);
E_API E_Client *e_client_top_get(const E_Comp *c);
E_API unsigned int e_clients_count(E_Comp *c);
E_API void e_client_move_intercept_cb_set(E_Client *ec, E_Client_Move_Intercept_Cb cb);
E_API E_Client_Hook *e_client_hook_add(E_Client_Hook_Point hookpoint, E_Client_Hook_Cb func, const void *data);
E_API void e_client_hook_del(E_Client_Hook *ch);
E_API void e_client_focus_latest_set(E_Client *ec);
E_API void e_client_raise_latest_set(E_Client *ec);
E_API Eina_Bool e_client_focus_track_enabled(void);
E_API void e_client_focus_track_freeze(void);
E_API void e_client_focus_track_thaw(void);
E_API void e_client_refocus(void);
E_API void e_client_focus_set_with_pointer(E_Client *ec);
E_API void e_client_activate(E_Client *ec, Eina_Bool just_do_it);
E_API E_Client *e_client_focused_get(void);
E_API Eina_List *e_client_focus_stack_get(void);
E_API Eina_List *e_client_raise_stack_get(void);
E_API Eina_List *e_client_lost_windows_get(E_Zone *zone);
E_API void e_client_shade(E_Client *ec, E_Direction dir);
E_API void e_client_unshade(E_Client *ec, E_Direction dir);
E_API void e_client_maximize(E_Client *ec, E_Maximize max);
E_API void e_client_unmaximize(E_Client *ec, E_Maximize max);
E_API void e_client_fullscreen(E_Client *ec, E_Fullscreen policy);
E_API void e_client_unfullscreen(E_Client *ec);
E_API void e_client_iconify(E_Client *ec);
E_API void e_client_uniconify(E_Client *ec);
E_API void e_client_urgent_set(E_Client *ec, Eina_Bool urgent);
E_API void e_client_stick(E_Client *ec);
E_API void e_client_unstick(E_Client *ec);
E_API void e_client_pinned_set(E_Client *ec, Eina_Bool set);
E_API void e_client_comp_hidden_set(E_Client *ec, Eina_Bool hidden);
E_API Eina_Bool e_client_border_set(E_Client *ec, const char *name);
E_API void e_client_act_move_keyboard(E_Client *ec);
E_API void e_client_act_resize_keyboard(E_Client *ec);
E_API void e_client_act_move_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev);
E_API void e_client_act_move_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
E_API void e_client_act_resize_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev);
E_API void e_client_act_resize_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
E_API void e_client_act_menu_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev, int key);
E_API void e_client_act_close_begin(E_Client *ec);
E_API void e_client_act_kill_begin(E_Client *ec);
E_API Evas_Object *e_client_icon_add(E_Client *ec, Evas *evas);
E_API void e_client_ping(E_Client *cw);
E_API void e_client_move_cancel(void);
E_API void e_client_resize_cancel(void);
E_API Eina_Bool e_client_resize_begin(E_Client *ec);
E_API void e_client_frame_recalc(E_Client *ec);
E_API void e_client_signal_move_begin(E_Client *ec, const char *sig, const char *src EINA_UNUSED);
E_API void e_client_signal_move_end(E_Client *ec, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
E_API void e_client_signal_resize_begin(E_Client *ec, const char *dir, const char *sig, const char *src EINA_UNUSED);
E_API void e_client_signal_resize_end(E_Client *ec, const char *dir EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
E_API void e_client_resize_limit(E_Client *ec, int *w, int *h);
E_API E_Client *e_client_under_pointer_get(E_Desk *desk, E_Client *exclude);
E_API int e_client_pointer_warp_to_center_now(E_Client *ec);
E_API int e_client_pointer_warp_to_center(E_Client *ec);
E_API void e_client_redirected_set(E_Client *ec, Eina_Bool set);
E_API Eina_Bool e_client_is_stacking(const E_Client *ec);
E_API Eina_Bool e_client_desk_window_profile_available_check(E_Client *ec, const char *profile);
E_API void e_client_desk_window_profile_wait_desk_set(E_Client *ec, E_Desk *desk);
E_API void e_client_layout_cb_set(E_Client_Layout_Cb cb);
#include "e_client.x"
#endif

View File

@ -80,7 +80,7 @@ static inline Eina_Bool
e_client_util_desk_visible(const E_Client *ec, const E_Desk *desk)
{
if (!ec) return EINA_FALSE;
return ec->sticky || (ec->desk == desk);
return !ec->desk || ec->sticky || (ec->desk == desk);
}
static inline Ecore_Window

View File

@ -25,8 +25,8 @@ struct _E_Color
int a;
};
EAPI void e_color_update_rgb (E_Color *ec);
EAPI void e_color_update_hsv (E_Color *ec);
EAPI void e_color_copy (const E_Color *from, E_Color *to);
E_API void e_color_update_rgb (E_Color *ec);
E_API void e_color_update_hsv (E_Color *ec);
E_API void e_color_copy (const E_Color *from, E_Color *to);
#endif
#endif

View File

@ -37,7 +37,7 @@ e_color_class_node_find_stringshared(const char *name)
return NULL;
}
EAPI E_Color_Class *
E_API E_Color_Class *
e_color_class_find_stringshared(const char *name)
{
Eina_List *l = e_color_class_node_find_stringshared(name);
@ -45,7 +45,7 @@ e_color_class_find_stringshared(const char *name)
return l->data;
}
EAPI E_Color_Class *
E_API E_Color_Class *
e_color_class_find(const char *name)
{
E_Color_Class *cc;
@ -57,7 +57,7 @@ e_color_class_find(const char *name)
return cc;
}
EAPI void
E_API void
e_color_class_instance_set(E_Color_Class *cc, int r, int g, int b, int a, int r2, int b2, int g2, int a2, int r3, int g3, int b3, int a3)
{
if (!cc) return;
@ -82,7 +82,7 @@ e_color_class_instance_set(E_Color_Class *cc, int r, int g, int b, int a, int r2
e_config_save_queue();
}
EAPI E_Color_Class *
E_API E_Color_Class *
e_color_class_set_stringshared(const char *color_class, int r, int g, int b, int a, int r2, int b2, int g2, int a2, int r3, int g3, int b3, int a3)
{
E_Color_Class *cc = e_color_class_find_stringshared(color_class);
@ -104,7 +104,7 @@ e_color_class_set_stringshared(const char *color_class, int r, int g, int b, int
return cc;
}
EAPI E_Color_Class *
E_API E_Color_Class *
e_color_class_set(const char *color_class, int r, int g, int b, int a, int r2, int b2, int g2, int a2, int r3, int g3, int b3, int a3)
{
E_Color_Class *cc;
@ -131,7 +131,7 @@ e_color_class_node_del(Eina_List *n)
e_config_save_queue();
}
EAPI void
E_API void
e_color_class_instance_del(E_Color_Class *cc)
{
Eina_List *n = eina_list_data_find_list(e_config->color_classes, cc);
@ -139,7 +139,7 @@ e_color_class_instance_del(E_Color_Class *cc)
e_color_class_node_del(n);
}
EAPI void
E_API void
e_color_class_del_stringshared(const char *name)
{
Eina_List *n = e_color_class_node_find_stringshared(name);
@ -147,7 +147,7 @@ e_color_class_del_stringshared(const char *name)
e_color_class_node_del(n);
}
EAPI void
E_API void
e_color_class_del(const char *name)
{
name = eina_stringshare_add(name);
@ -155,7 +155,7 @@ e_color_class_del(const char *name)
eina_stringshare_del(name);
}
EAPI Eina_List *
E_API Eina_List *
e_color_class_list(void)
{
return e_config->color_classes;

View File

@ -17,27 +17,27 @@ struct _E_Color_Class
EINTERN int e_color_class_init(void);
EINTERN int e_color_class_shutdown(void);
EAPI void e_color_class_instance_set(E_Color_Class *cc,
E_API void e_color_class_instance_set(E_Color_Class *cc,
int r, int g, int b, int a,
int r2, int b2, int g2, int a2,
int r3, int g3, int b3, int a3);
EAPI E_Color_Class *e_color_class_set_stringshared(const char *color_class,
E_API E_Color_Class *e_color_class_set_stringshared(const char *color_class,
int r, int g, int b, int a,
int r2, int b2, int g2, int a2,
int r3, int g3, int b3, int a3);
EAPI E_Color_Class *e_color_class_set(const char *color_class,
E_API E_Color_Class *e_color_class_set(const char *color_class,
int r, int g, int b, int a,
int r2, int b2, int g2, int a2,
int r3, int g3, int b3, int a3);
EAPI E_Color_Class *e_color_class_find(const char *name);
EAPI E_Color_Class *e_color_class_find_stringshared(const char *name);
E_API E_Color_Class *e_color_class_find(const char *name);
E_API E_Color_Class *e_color_class_find_stringshared(const char *name);
EAPI void e_color_class_instance_del(E_Color_Class *cc);
EAPI void e_color_class_del_stringshared(const char *name);
EAPI void e_color_class_del(const char *name);
E_API void e_color_class_instance_del(E_Color_Class *cc);
E_API void e_color_class_del_stringshared(const char *name);
E_API void e_color_class_del(const char *name);
EAPI Eina_List *e_color_class_list(void);
E_API Eina_List *e_color_class_list(void);
#endif
#endif

View File

@ -80,7 +80,7 @@ e_color_dialog_cancel_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dia
dia->cancel_data = data;
}
EAPI void
E_API void
e_color_dialog_change_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data)
{
dia->change_func = func;

View File

@ -24,14 +24,14 @@ struct _E_Color_Dialog
void *change_data;
};
EAPI E_Color_Dialog *e_color_dialog_new (E_Comp *c, const E_Color *initial_color, Eina_Bool alpha_enabled);
EAPI void e_color_dialog_show (E_Color_Dialog *dia);
EAPI void e_color_dialog_title_set (E_Color_Dialog *dia, const char *title);
E_API E_Color_Dialog *e_color_dialog_new (E_Comp *c, const E_Color *initial_color, Eina_Bool alpha_enabled);
E_API void e_color_dialog_show (E_Color_Dialog *dia);
E_API void e_color_dialog_title_set (E_Color_Dialog *dia, const char *title);
/* select and change pass the current color back, cancel passes the initial color */
EAPI void e_color_dialog_select_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
EAPI void e_color_dialog_cancel_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
EAPI void e_color_dialog_change_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
E_API void e_color_dialog_select_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
E_API void e_color_dialog_cancel_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
E_API void e_color_dialog_change_callback_set(E_Color_Dialog *dia, void (*func)(E_Color_Dialog *dia, E_Color *color, void *data), void *data);
#endif
#endif

View File

@ -36,9 +36,9 @@ static double ecore_frametime = 0;
static int _e_comp_log_dom = -1;
EAPI int E_EVENT_COMPOSITOR_RESIZE = -1;
EAPI int E_EVENT_COMPOSITOR_DISABLE = -1;
EAPI int E_EVENT_COMPOSITOR_ENABLE = -1;
E_API int E_EVENT_COMPOSITOR_RESIZE = -1;
E_API int E_EVENT_COMPOSITOR_DISABLE = -1;
E_API int E_EVENT_COMPOSITOR_ENABLE = -1;
//////////////////////////////////////////////////////////////////////////
#undef DBG
@ -241,7 +241,17 @@ _e_comp_cb_nocomp_begin(E_Comp *c)
INF("NOCOMP %p: frame %p", ecf, ecf->frame);
c->nocomp = 1;
evas_object_raise(ecf->frame);
{
Eina_Bool fs;
fs = c->nocomp_ec->fullscreen;
if (!fs)
c->nocomp_ec->saved.layer = c->nocomp_ec->layer;
c->nocomp_ec->fullscreen = 0;
c->nocomp_ec->layer = E_LAYER_CLIENT_PRIO;
evas_object_layer_set(c->nocomp_ec->frame, E_LAYER_CLIENT_PRIO);
c->nocomp_ec->fullscreen = fs;
}
e_client_redirected_set(ecf, 0);
//ecore_evas_manual_render_set(c->ee, EINA_TRUE);
@ -271,9 +281,12 @@ _e_comp_cb_nocomp_end(E_Comp *c)
E_CLIENT_FOREACH(c, ec)
{
e_client_redirected_set(ec, 1);
if (ec->visible)
if (ec->visible && (!ec->input_only))
e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
}
#ifndef HAVE_WAYLAND_ONLY
e_comp_x_nocomp_end(c);
#endif
e_comp_render_queue(c);
e_comp_shape_queue_block(c, 0);
ecore_event_add(E_EVENT_COMPOSITOR_ENABLE, NULL, NULL, NULL);
@ -294,14 +307,13 @@ _e_comp_cb_nocomp_begin_timeout(void *data)
}
static Eina_Bool
static void
_e_comp_client_update(E_Client *ec)
{
int pw, ph;
Eina_Bool post = EINA_FALSE;
DBG("UPDATE [%p] pm = %p", ec, ec->pixmap);
if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE;
if (e_object_is_del(E_OBJECT(ec))) return;
e_pixmap_size_get(ec->pixmap, &pw, &ph);
@ -314,7 +326,6 @@ _e_comp_client_update(E_Client *ec)
e_pixmap_size_changed(ec->pixmap, pw, ph))
{
e_pixmap_image_clear(ec->pixmap, 0);
post = EINA_TRUE;
e_comp_object_render_update_del(ec->frame); //clear update
}
else if (!e_pixmap_size_get(ec->pixmap, NULL, NULL))
@ -333,7 +344,6 @@ _e_comp_client_update(E_Client *ec)
if (e_pixmap_is_x(ec->pixmap) && (!ec->override))
evas_object_resize(ec->frame, ec->w, ec->h);
}
return post || (!e_pixmap_is_x(ec->pixmap));
}
static void
@ -342,6 +352,28 @@ _e_comp_nocomp_end(E_Comp *c)
c->nocomp_want = 0;
E_FREE_FUNC(c->nocomp_delay_timer, ecore_timer_del);
_e_comp_cb_nocomp_end(c);
if (c->nocomp_ec)
{
E_Layer layer = MAX(c->nocomp_ec->saved.layer, E_LAYER_CLIENT_NORMAL);
Eina_Bool fs;
if (!e_config->allow_above_fullscreen)
layer = E_LAYER_CLIENT_FULLSCREEN;
else if (e_config->mode.presentation)
layer = E_LAYER_CLIENT_TOP;
fs = c->nocomp_ec->fullscreen;
c->nocomp_ec->fullscreen = 0;
if (fs)
{
if (!e_config->allow_above_fullscreen)
layer = E_LAYER_CLIENT_FULLSCREEN;
else if (e_config->mode.presentation)
layer = E_LAYER_CLIENT_TOP;
}
evas_object_layer_set(c->nocomp_ec->frame, layer);
c->nocomp_ec->fullscreen = fs;
}
c->nocomp_ec = NULL;
}
@ -370,11 +402,7 @@ _e_comp_cb_update(E_Comp *c)
{
/* clear update flag */
e_comp_object_render_update_del(ec->frame);
if (_e_comp_client_update(ec))
{
c->post_updates = eina_list_append(c->post_updates, ec);
e_object_ref(E_OBJECT(ec));
}
_e_comp_client_update(ec);
}
_e_comp_fps_update(c);
if (conf->fps_show)
@ -488,7 +516,7 @@ nocomp:
if (ec == c->nocomp_ec) break;
if (evas_object_layer_get(ec->frame) < evas_object_layer_get(c->nocomp_ec->frame)) break;
if (e_client_is_stacking(ec)) continue;
if (!evas_object_visible_get(ec->frame)) continue;
if (!ec->visible) continue;
if (evas_object_data_get(ec->frame, "comp_skip")) continue;
if (e_object_is_del(E_OBJECT(ec)) || (!e_client_util_desk_visible(ec, e_desk_current_get(ec->zone)))) continue;
if (ec->override || (e_config->allow_above_fullscreen && (!e_config->mode.presentation)))
@ -500,7 +528,7 @@ nocomp:
evas_object_stack_below(ec->frame, c->nocomp_ec->frame);
}
}
else if ((!c->nocomp) && (!c->nocomp_override > 0))
else if ((!c->nocomp) && (!c->nocomp_override))
{
if (!c->nocomp_delay_timer)
c->nocomp_delay_timer = ecore_timer_add(1.0, _e_comp_cb_nocomp_begin_timeout, c);
@ -601,7 +629,7 @@ _e_comp_shapes_update_comp_client_shape_comp_helper(E_Client *ec, Eina_Tiler *tb
INF("COMP EC: %p", ec);
#endif
if (ec->shape_input_rects || ec->shape_rects)
if (ec->shaped || ec->shaped_input)
{
int num, tot;
int l, r, t, b;
@ -830,6 +858,16 @@ _e_comp_free(E_Comp *c)
//////////////////////////////////////////////////////////////////////////
static Eina_Bool
_e_comp_object_add(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Comp_Object *ev)
{
E_Comp *c = e_comp_util_evas_object_comp_get(ev->comp_object);
if ((!c->nocomp) || (!c->nocomp_ec)) return ECORE_CALLBACK_RENEW;
if (evas_object_layer_get(ev->comp_object) > MAX(c->nocomp_ec->saved.layer, E_LAYER_CLIENT_NORMAL))
_e_comp_nocomp_end(c);
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_e_comp_override_expire(void *data)
{
@ -1081,6 +1119,7 @@ out:
E_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_KEY_DOWN, _e_comp_key_down, NULL);
E_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_SIGNAL_USER, _e_comp_signal_user, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_COMP_OBJECT_ADD, _e_comp_object_add, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_MOVE_RESIZE, _e_comp_cb_zone_change, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_ADD, _e_comp_cb_zone_change, NULL);
@ -1271,7 +1310,7 @@ e_comp_style_selector_create(Evas *evas, const char **source)
return oi;
}
EAPI E_Comp *
E_API E_Comp *
e_comp_new(void)
{
E_Comp *c;
@ -1289,7 +1328,7 @@ e_comp_new(void)
return c;
}
EAPI int
E_API int
e_comp_internal_save(void)
{
return e_config_domain_save("e_comp", conf_edd, conf);
@ -1328,7 +1367,7 @@ e_comp_shutdown(void)
return 1;
}
EAPI void
E_API void
e_comp_render_queue(E_Comp *c)
{
E_OBJECT_CHECK(c);
@ -1350,7 +1389,7 @@ e_comp_render_queue(E_Comp *c)
}
}
EAPI void
E_API void
e_comp_shape_queue(E_Comp *c)
{
EINA_SAFETY_ON_NULL_RETURN(c);
@ -1360,7 +1399,7 @@ e_comp_shape_queue(E_Comp *c)
c->shape_job = ecore_job_add((Ecore_Cb)_e_comp_shapes_update_job, c);
}
EAPI void
E_API void
e_comp_shape_queue_block(E_Comp *c, Eina_Bool block)
{
EINA_SAFETY_ON_NULL_RETURN(c);
@ -1372,19 +1411,19 @@ e_comp_shape_queue_block(E_Comp *c, Eina_Bool block)
e_comp_shape_queue(c);
}
EAPI E_Comp_Config *
E_API E_Comp_Config *
e_comp_config_get(void)
{
return conf;
}
EAPI const Eina_List *
E_API const Eina_List *
e_comp_list(void)
{
return compositors;
}
EAPI void
E_API void
e_comp_shadows_reset(void)
{
Eina_List *l;
@ -1401,7 +1440,7 @@ e_comp_shadows_reset(void)
}
}
EAPI E_Comp *
E_API E_Comp *
e_comp_get(const void *o)
{
E_Client *ec;
@ -1488,7 +1527,7 @@ e_comp_get(const void *o)
}
EAPI Ecore_Window
E_API Ecore_Window
e_comp_top_window_at_xy_get(E_Comp *c, Evas_Coord x, Evas_Coord y)
{
E_Client *ec;
@ -1502,7 +1541,7 @@ e_comp_top_window_at_xy_get(E_Comp *c, Evas_Coord x, Evas_Coord y)
return c->ee_win;
}
EAPI void
E_API void
e_comp_util_wins_print(const E_Comp *c)
{
Evas_Object *o;
@ -1528,7 +1567,7 @@ e_comp_util_wins_print(const E_Comp *c)
fputc('\n', stderr);
}
EAPI void
E_API void
e_comp_ignore_win_add(E_Pixmap_Type type, Ecore_Window win)
{
E_Client *ec;
@ -1540,7 +1579,7 @@ e_comp_ignore_win_add(E_Pixmap_Type type, Ecore_Window win)
if (ec->visible) evas_object_hide(ec->frame);
}
EAPI void
E_API void
e_comp_ignore_win_del(E_Pixmap_Type type, Ecore_Window win)
{
E_Client *ec;
@ -1552,13 +1591,13 @@ e_comp_ignore_win_del(E_Pixmap_Type type, Ecore_Window win)
if (ec->visible) evas_object_show(ec->frame);
}
EAPI Eina_Bool
E_API Eina_Bool
e_comp_ignore_win_find(Ecore_Window win)
{
return !!eina_hash_find(ignores, &win);
}
EAPI void
E_API void
e_comp_override_del(E_Comp *c)
{
c->nocomp_override--;
@ -1569,16 +1608,16 @@ e_comp_override_del(E_Comp *c)
}
}
EAPI void
E_API void
e_comp_override_add(E_Comp *c)
{
c->nocomp_override++;
if ((c->nocomp_override > 0) && (c->nocomp)) _e_comp_cb_nocomp_end(c);
if ((c->nocomp_override > 0) && (c->nocomp)) _e_comp_nocomp_end(c);
}
#if 0
FIXME
EAPI void
E_API void
e_comp_block_window_add(void)
{
E_Comp *c;
@ -1599,7 +1638,7 @@ e_comp_block_window_add(void)
}
}
EAPI void
E_API void
e_comp_block_window_del(void)
{
E_Comp *c;
@ -1616,7 +1655,7 @@ e_comp_block_window_del(void)
}
#endif
EAPI E_Comp *
E_API E_Comp *
e_comp_find_by_window(Ecore_Window win)
{
Eina_List *l;
@ -1629,7 +1668,7 @@ e_comp_find_by_window(Ecore_Window win)
return NULL;
}
EAPI void
E_API void
e_comp_override_timed_pop(E_Comp *c)
{
EINA_SAFETY_ON_NULL_RETURN(c);
@ -1640,7 +1679,7 @@ e_comp_override_timed_pop(E_Comp *c)
c->nocomp_override_timer = ecore_timer_add(1.0, _e_comp_override_expire, c);
}
EAPI unsigned int
E_API unsigned int
e_comp_e_object_layer_get(const E_Object *obj)
{
E_Gadcon *gc = NULL;
@ -1674,7 +1713,7 @@ e_comp_e_object_layer_get(const E_Object *obj)
return 0;
}
EAPI Eina_Bool
E_API Eina_Bool
e_comp_grab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd)
{
Eina_Bool ret = EINA_FALSE;
@ -1697,7 +1736,7 @@ e_comp_grab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd)
return ret;
}
EAPI void
E_API void
e_comp_ungrab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd)
{
Ecore_Window mwin = 0, kwin = 0;
@ -1718,22 +1757,23 @@ e_comp_ungrab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd)
evas_event_feed_mouse_out(c->evas, 0, NULL);
evas_event_feed_mouse_in(c->evas, 0, NULL);
if (e_client_focused_get()) return;
e_client_refocus();
if (e_config->focus_policy != E_FOCUS_MOUSE)
e_client_refocus();
}
EAPI void
E_API void
e_comp_gl_set(Eina_Bool set)
{
gl_avail = !!set;
}
EAPI Eina_Bool
E_API Eina_Bool
e_comp_gl_get(void)
{
return gl_avail;
}
EAPI E_Comp *
E_API E_Comp *
e_comp_evas_find(const Evas *e)
{
Eina_List *l;
@ -1744,7 +1784,7 @@ e_comp_evas_find(const Evas *e)
return NULL;
}
EAPI void
E_API void
e_comp_button_bindings_ungrab_all(void)
{
Eina_List *l;
@ -1755,7 +1795,7 @@ e_comp_button_bindings_ungrab_all(void)
c->bindings_ungrab_cb(c);
}
EAPI void
E_API void
e_comp_button_bindings_grab_all(void)
{
Eina_List *l;
@ -1766,7 +1806,7 @@ e_comp_button_bindings_grab_all(void)
c->bindings_grab_cb(c);
}
EAPI void
E_API void
e_comp_client_redirect_toggle(E_Client *ec)
{
EINA_SAFETY_ON_NULL_RETURN(ec);
@ -1778,7 +1818,7 @@ e_comp_client_redirect_toggle(E_Client *ec)
e_comp_shape_queue(ec->comp);
}
EAPI Eina_Bool
E_API Eina_Bool
e_comp_util_object_is_above_nocomp(Evas_Object *obj)
{
E_Comp *comp;

View File

@ -52,8 +52,8 @@ typedef enum _E_Layer
# include "e_comp_cfdata.h"
extern EAPI int E_EVENT_COMPOSITOR_DISABLE;
extern EAPI int E_EVENT_COMPOSITOR_ENABLE;
extern E_API int E_EVENT_COMPOSITOR_DISABLE;
extern E_API int E_EVENT_COMPOSITOR_ENABLE;
struct _E_Comp
{
@ -154,42 +154,42 @@ typedef enum
} E_Comp_Engine;
EINTERN Eina_Bool e_comp_init(void);
EAPI E_Comp *e_comp_new(void);
EAPI int e_comp_internal_save(void);
E_API E_Comp *e_comp_new(void);
E_API int e_comp_internal_save(void);
EINTERN int e_comp_shutdown(void);
EAPI void e_comp_render_queue(E_Comp *c);
EAPI void e_comp_shape_queue(E_Comp *c);
EAPI void e_comp_shape_queue_block(E_Comp *c, Eina_Bool block);
EAPI E_Comp_Config *e_comp_config_get(void);
EAPI const Eina_List *e_comp_list(void);
EAPI void e_comp_shadows_reset(void);
EAPI E_Comp *e_comp_get(const void *o);
EAPI Ecore_Window e_comp_top_window_at_xy_get(E_Comp *c, Evas_Coord x, Evas_Coord y);
EAPI void e_comp_util_wins_print(const E_Comp *c);
EAPI void e_comp_ignore_win_add(E_Pixmap_Type type, Ecore_Window win);
EAPI void e_comp_ignore_win_del(E_Pixmap_Type type, Ecore_Window win);
EAPI Eina_Bool e_comp_ignore_win_find(Ecore_Window win);
EAPI void e_comp_override_del(E_Comp *c);
EAPI void e_comp_override_add(E_Comp *c);
EAPI void e_comp_block_window_add(void);
EAPI void e_comp_block_window_del(void);
EAPI E_Comp *e_comp_find_by_window(Ecore_Window win);
EAPI void e_comp_override_timed_pop(E_Comp *c);
EAPI unsigned int e_comp_e_object_layer_get(const E_Object *obj);
EAPI Eina_Bool e_comp_grab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd);
EAPI void e_comp_ungrab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd);
EAPI void e_comp_gl_set(Eina_Bool set);
EAPI Eina_Bool e_comp_gl_get(void);
EAPI E_Comp *e_comp_evas_find(const Evas *e);
E_API void e_comp_render_queue(E_Comp *c);
E_API void e_comp_shape_queue(E_Comp *c);
E_API void e_comp_shape_queue_block(E_Comp *c, Eina_Bool block);
E_API E_Comp_Config *e_comp_config_get(void);
E_API const Eina_List *e_comp_list(void);
E_API void e_comp_shadows_reset(void);
E_API E_Comp *e_comp_get(const void *o);
E_API Ecore_Window e_comp_top_window_at_xy_get(E_Comp *c, Evas_Coord x, Evas_Coord y);
E_API void e_comp_util_wins_print(const E_Comp *c);
E_API void e_comp_ignore_win_add(E_Pixmap_Type type, Ecore_Window win);
E_API void e_comp_ignore_win_del(E_Pixmap_Type type, Ecore_Window win);
E_API Eina_Bool e_comp_ignore_win_find(Ecore_Window win);
E_API void e_comp_override_del(E_Comp *c);
E_API void e_comp_override_add(E_Comp *c);
E_API void e_comp_block_window_add(void);
E_API void e_comp_block_window_del(void);
E_API E_Comp *e_comp_find_by_window(Ecore_Window win);
E_API void e_comp_override_timed_pop(E_Comp *c);
E_API unsigned int e_comp_e_object_layer_get(const E_Object *obj);
E_API Eina_Bool e_comp_grab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd);
E_API void e_comp_ungrab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd);
E_API void e_comp_gl_set(Eina_Bool set);
E_API Eina_Bool e_comp_gl_get(void);
E_API E_Comp *e_comp_evas_find(const Evas *e);
EAPI void e_comp_button_bindings_grab_all(void);
EAPI void e_comp_button_bindings_ungrab_all(void);
EAPI void e_comp_client_redirect_toggle(E_Client *ec);
EAPI Eina_Bool e_comp_util_object_is_above_nocomp(Evas_Object *obj);
E_API void e_comp_button_bindings_grab_all(void);
E_API void e_comp_button_bindings_ungrab_all(void);
E_API void e_comp_client_redirect_toggle(E_Client *ec);
E_API Eina_Bool e_comp_util_object_is_above_nocomp(Evas_Object *obj);
EINTERN Evas_Object *e_comp_style_selector_create(Evas *evas, const char **source);
EAPI E_Config_Dialog *e_int_config_comp(E_Comp *comp, const char *params);
EAPI E_Config_Dialog *e_int_config_comp_match(E_Comp *comp, const char *params);
E_API E_Config_Dialog *e_int_config_comp(E_Comp *comp, const char *params);
E_API E_Config_Dialog *e_int_config_comp_match(E_Comp *comp, const char *params);
static inline E_Comp *
e_comp_util_evas_object_comp_get(Evas_Object *obj)

View File

@ -109,7 +109,7 @@ _e_comp_canvas_cb_zone_sort(const void *data1, const void *data2)
}
EAPI Eina_Bool
E_API Eina_Bool
e_comp_canvas_init(E_Comp *c)
{
Evas_Object *o;
@ -125,7 +125,7 @@ e_comp_canvas_init(E_Comp *c)
evas_object_layer_set(o, E_LAYER_BOTTOM);
evas_object_move(o, 0, 0);
evas_object_resize(o, c->man->w, c->man->h);
evas_object_color_set(o, 255, 255, 255, 255);
evas_object_color_set(o, 0, 0, 0, 255);
evas_object_name_set(o, "comp->bg_blank_object");
evas_object_data_set(o, "e_comp", c);
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, (Evas_Object_Event_Cb)_e_comp_canvas_cb_mouse_down, c);
@ -174,7 +174,7 @@ e_comp_canvas_clear(E_Comp *c)
//////////////////////////////////////////////
EAPI void
E_API void
e_comp_all_freeze(void)
{
Eina_List *l;
@ -184,7 +184,7 @@ e_comp_all_freeze(void)
evas_event_freeze(man->comp->evas);
}
EAPI void
E_API void
e_comp_all_thaw(void)
{
Eina_List *l;
@ -194,7 +194,7 @@ e_comp_all_thaw(void)
evas_event_thaw(man->comp->evas);
}
EAPI E_Zone *
E_API E_Zone *
e_comp_zone_xy_get(const E_Comp *c, Evas_Coord x, Evas_Coord y)
{
const Eina_List *l;
@ -206,7 +206,7 @@ e_comp_zone_xy_get(const E_Comp *c, Evas_Coord x, Evas_Coord y)
return NULL;
}
EAPI E_Zone *
E_API E_Zone *
e_comp_zone_number_get(E_Comp *c, int num)
{
Eina_List *l = NULL;
@ -221,7 +221,7 @@ e_comp_zone_number_get(E_Comp *c, int num)
return NULL;
}
EAPI E_Zone *
E_API E_Zone *
e_comp_zone_id_get(E_Comp *c, int id)
{
Eina_List *l = NULL;
@ -236,7 +236,7 @@ e_comp_zone_id_get(E_Comp *c, int id)
return NULL;
}
EAPI E_Comp *
E_API E_Comp *
e_comp_number_get(unsigned int num)
{
const Eina_List *l;
@ -247,7 +247,7 @@ e_comp_number_get(unsigned int num)
return NULL;
}
EAPI E_Desk *
E_API E_Desk *
e_comp_desk_window_profile_get(E_Comp *c, const char *profile)
{
Eina_List *l = NULL;
@ -278,7 +278,7 @@ e_comp_desk_window_profile_get(E_Comp *c, const char *profile)
return NULL;
}
EAPI void
E_API void
e_comp_canvas_zone_update(E_Zone *zone)
{
Evas_Object *o;
@ -329,7 +329,7 @@ e_comp_canvas_zone_update(E_Zone *zone)
evas_object_show(o);
}
EAPI void
E_API void
e_comp_canvas_update(E_Comp *c)
{
E_Event_Compositor_Resize *ev;
@ -462,7 +462,7 @@ e_comp_canvas_update(E_Comp *c)
}
}
EAPI void
E_API void
e_comp_canvas_fake_layers_init(E_Comp *comp)
{
unsigned int layer;
@ -478,7 +478,7 @@ e_comp_canvas_fake_layers_init(E_Comp *comp)
}
}
EAPI void
E_API void
e_comp_canvas_fps_toggle(void)
{
E_Comp_Config *conf = e_comp_config_get();
@ -488,7 +488,7 @@ e_comp_canvas_fps_toggle(void)
E_LIST_FOREACH(e_comp_list(), e_comp_render_queue);
}
EAPI E_Layer
E_API E_Layer
e_comp_canvas_layer_map_to(unsigned int layer)
{
switch (layer)
@ -517,7 +517,7 @@ e_comp_canvas_layer_map_to(unsigned int layer)
return -INT_MAX;
}
EAPI unsigned int
E_API unsigned int
e_comp_canvas_layer_map(E_Layer layer)
{
switch (layer)
@ -546,7 +546,7 @@ e_comp_canvas_layer_map(E_Layer layer)
return 9999;
}
EAPI unsigned int
E_API unsigned int
e_comp_canvas_client_layer_map(E_Layer layer)
{
switch (layer)
@ -567,7 +567,7 @@ e_comp_canvas_client_layer_map(E_Layer layer)
return 9999;
}
EAPI E_Layer
E_API E_Layer
e_comp_canvas_client_layer_map_nearest(int layer)
{
#define LAYER_MAP(X) \

View File

@ -13,25 +13,25 @@ struct _E_Event_Compositor_Resize
E_Comp *comp;
};
extern EAPI int E_EVENT_COMPOSITOR_RESIZE;
extern E_API int E_EVENT_COMPOSITOR_RESIZE;
EAPI Eina_Bool e_comp_canvas_init(E_Comp *c);
E_API Eina_Bool e_comp_canvas_init(E_Comp *c);
EINTERN void e_comp_canvas_clear(E_Comp *c);
EAPI void e_comp_all_freeze(void);
EAPI void e_comp_all_thaw(void);
EAPI E_Zone * e_comp_zone_xy_get(const E_Comp *c, Evas_Coord x, Evas_Coord y);
EAPI E_Zone * e_comp_zone_number_get(E_Comp *c, int num);
EAPI E_Zone * e_comp_zone_id_get(E_Comp *c, int id);
EAPI E_Comp * e_comp_number_get(unsigned int num);
EAPI E_Desk * e_comp_desk_window_profile_get(E_Comp *c, const char *profile);
EAPI void e_comp_canvas_zone_update(E_Zone *zone);
EAPI void e_comp_canvas_update(E_Comp *c);
EAPI void e_comp_canvas_fake_layers_init(E_Comp *comp);
EAPI void e_comp_canvas_fps_toggle(void);
EAPI E_Layer e_comp_canvas_layer_map_to(unsigned int layer);
EAPI unsigned int e_comp_canvas_layer_map(E_Layer layer);
EAPI unsigned int e_comp_canvas_client_layer_map(E_Layer layer);
EAPI E_Layer e_comp_canvas_client_layer_map_nearest(int layer);
E_API void e_comp_all_freeze(void);
E_API void e_comp_all_thaw(void);
E_API E_Zone * e_comp_zone_xy_get(const E_Comp *c, Evas_Coord x, Evas_Coord y);
E_API E_Zone * e_comp_zone_number_get(E_Comp *c, int num);
E_API E_Zone * e_comp_zone_id_get(E_Comp *c, int id);
E_API E_Comp * e_comp_number_get(unsigned int num);
E_API E_Desk * e_comp_desk_window_profile_get(E_Comp *c, const char *profile);
E_API void e_comp_canvas_zone_update(E_Zone *zone);
E_API void e_comp_canvas_update(E_Comp *c);
E_API void e_comp_canvas_fake_layers_init(E_Comp *comp);
E_API void e_comp_canvas_fps_toggle(void);
E_API E_Layer e_comp_canvas_layer_map_to(unsigned int layer);
E_API unsigned int e_comp_canvas_layer_map(E_Layer layer);
E_API unsigned int e_comp_canvas_client_layer_map(E_Layer layer);
E_API E_Layer e_comp_canvas_client_layer_map_nearest(int layer);
/* the following functions are used for adjusting root window coordinates

View File

@ -1,7 +1,7 @@
#include "e.h"
#include "e_comp_cfdata.h"
EAPI void
E_API void
e_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd)
{
*match_edd = E_CONFIG_DD_NEW("Comp_Match", E_Comp_Match);
@ -70,7 +70,7 @@ e_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd)
E_CONFIG_LIST(D, T, match.objects, *match_edd);
}
EAPI E_Comp_Config *
E_API E_Comp_Config *
e_comp_cfdata_config_new(void)
{
E_Comp_Config *cfg;
@ -195,7 +195,7 @@ e_comp_cfdata_config_new(void)
return cfg;
}
EAPI void
E_API void
e_comp_cfdata_match_free(E_Comp_Match *m)
{
if (!m) return;
@ -207,7 +207,7 @@ e_comp_cfdata_match_free(E_Comp_Match *m)
free(m);
}
EAPI void
E_API void
e_comp_cfdata_config_free(E_Comp_Config *cfg)
{
if (!cfg) return;

View File

@ -76,10 +76,10 @@ struct _E_Comp_Match
char no_shadow; // set whether shadow is disabled
};
EAPI void e_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd);
EAPI E_Comp_Config *e_comp_cfdata_config_new(void);
EAPI void e_comp_cfdata_config_free(E_Comp_Config *cfg);
EAPI void e_comp_cfdata_match_free(E_Comp_Match *m);
E_API void e_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd);
E_API E_Comp_Config *e_comp_cfdata_config_new(void);
E_API void e_comp_cfdata_config_free(E_Comp_Config *cfg);
E_API void e_comp_cfdata_match_free(E_Comp_Match *m);
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -33,54 +33,57 @@ struct E_Comp_Object_Frame
};
extern EAPI int E_EVENT_COMP_OBJECT_ADD;
extern E_API int E_EVENT_COMP_OBJECT_ADD;
EAPI void e_comp_object_zoomap_set(Evas_Object *obj, Eina_Bool enabled);
EAPI Evas_Object *e_comp_object_client_add(E_Client *ec);
EAPI Evas_Object *e_comp_object_util_mirror_add(Evas_Object *obj);
EAPI Evas_Object *e_comp_object_util_add(Evas_Object *obj, E_Comp_Object_Type type);
EAPI void e_comp_object_frame_xy_adjust(Evas_Object *obj, int x, int y, int *ax, int *ay);
EAPI void e_comp_object_frame_xy_unadjust(Evas_Object *obj, int x, int y, int *ax, int *ay);
EAPI void e_comp_object_frame_wh_adjust(Evas_Object *obj, int w, int h, int *aw, int *ah);
EAPI void e_comp_object_frame_wh_unadjust(Evas_Object *obj, int w, int h, int *aw, int *ah);
EAPI void e_comp_object_frame_extends_get(Evas_Object *obj, int *x, int *y, int *w, int *h);
EAPI E_Client *e_comp_object_client_get(Evas_Object *obj);
EAPI E_Zone *e_comp_object_util_zone_get(Evas_Object *obj);
EAPI void e_comp_object_util_del_list_append(Evas_Object *obj, Evas_Object *to_del);
EAPI void e_comp_object_util_del_list_remove(Evas_Object *obj, Evas_Object *to_del);
EAPI void e_comp_object_util_autoclose(Evas_Object *obj, E_Comp_Object_Autoclose_Cb del_cb, E_Comp_Object_Key_Cb cb, const void *data);
EAPI void e_comp_object_util_center(Evas_Object *obj);
EAPI void e_comp_object_util_center_on(Evas_Object *obj, Evas_Object *on);
EAPI void e_comp_object_util_center_pos_get(Evas_Object *obj, int *x, int *y);
EAPI void e_comp_object_util_fullscreen(Evas_Object *obj);
EAPI void e_comp_object_frame_geometry_get(Evas_Object *obj, int *l, int *r, int *t, int *b);
EAPI void e_comp_object_frame_icon_geometry_get(Evas_Object *obj, int *x, int *y, int *w, int *h);
EAPI Eina_Bool e_comp_object_frame_title_set(Evas_Object *obj, const char *name);
EAPI Eina_Bool e_comp_object_frame_exists(Evas_Object *obj);
EAPI void e_comp_object_frame_icon_update(Evas_Object *obj);
EAPI Eina_Bool e_comp_object_frame_theme_set(Evas_Object *obj, const char *name);
EAPI void e_comp_object_signal_emit(Evas_Object *obj, const char *sig, const char *src);
EAPI void e_comp_object_signal_callback_add(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb, const void *data);
EAPI void e_comp_object_signal_callback_del(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb);
EAPI void e_comp_object_signal_callback_del_full(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb, const void *data);
EAPI void e_comp_object_input_area_set(Evas_Object *obj, int x, int y, int w, int h);
EAPI void e_comp_object_damage(Evas_Object *obj, int x, int y, int w, int h);
EAPI Eina_Bool e_comp_object_damage_exists(Evas_Object *obj);
EAPI void e_comp_object_render_update_add(Evas_Object *obj);
EAPI void e_comp_object_render_update_del(Evas_Object *obj);
EAPI void e_comp_object_shape_apply(Evas_Object *obj);
EAPI void e_comp_object_redirected_set(Evas_Object *obj, Eina_Bool set);
EAPI void e_comp_object_native_surface_set(Evas_Object *obj, Eina_Bool set);
EAPI void e_comp_object_dirty(Evas_Object *obj);
EAPI Eina_Bool e_comp_object_render(Evas_Object *obj);
EAPI void e_comp_object_effect_set(Evas_Object *obj, const char *effect);
EAPI void e_comp_object_effect_params_set(Evas_Object *obj, int id, int *params, unsigned int count);
EAPI void e_comp_object_effect_clip(Evas_Object *obj);
EAPI void e_comp_object_effect_unclip(Evas_Object *obj);
EAPI void e_comp_object_effect_start(Evas_Object *obj, Edje_Signal_Cb end_cb, const void *end_data);
EAPI void e_comp_object_effect_stop(Evas_Object *obj, Edje_Signal_Cb end_cb);
EAPI E_Comp_Object_Mover *e_comp_object_effect_mover_add(int pri, const char *sig, E_Comp_Object_Mover_Cb provider, const void *data);
EAPI void e_comp_object_effect_mover_del(E_Comp_Object_Mover *prov);
E_API void e_comp_object_zoomap_set(Evas_Object *obj, Eina_Bool enabled);
E_API Eina_Bool e_comp_object_mirror_visibility_check(Evas_Object *obj);
E_API Evas_Object *e_comp_object_client_add(E_Client *ec);
E_API Evas_Object *e_comp_object_util_mirror_add(Evas_Object *obj);
E_API Evas_Object *e_comp_object_util_add(Evas_Object *obj, E_Comp_Object_Type type);
E_API void e_comp_object_frame_xy_adjust(Evas_Object *obj, int x, int y, int *ax, int *ay);
E_API void e_comp_object_frame_xy_unadjust(Evas_Object *obj, int x, int y, int *ax, int *ay);
E_API void e_comp_object_frame_wh_adjust(Evas_Object *obj, int w, int h, int *aw, int *ah);
E_API void e_comp_object_frame_wh_unadjust(Evas_Object *obj, int w, int h, int *aw, int *ah);
E_API void e_comp_object_frame_extends_get(Evas_Object *obj, int *x, int *y, int *w, int *h);
E_API E_Client *e_comp_object_client_get(Evas_Object *obj);
E_API E_Zone *e_comp_object_util_zone_get(Evas_Object *obj);
E_API void e_comp_object_util_del_list_append(Evas_Object *obj, Evas_Object *to_del);
E_API void e_comp_object_util_del_list_remove(Evas_Object *obj, Evas_Object *to_del);
E_API void e_comp_object_util_autoclose(Evas_Object *obj, E_Comp_Object_Autoclose_Cb del_cb, E_Comp_Object_Key_Cb cb, const void *data);
E_API void e_comp_object_util_center(Evas_Object *obj);
E_API void e_comp_object_util_center_on(Evas_Object *obj, Evas_Object *on);
E_API void e_comp_object_util_center_pos_get(Evas_Object *obj, int *x, int *y);
E_API void e_comp_object_util_fullscreen(Evas_Object *obj);
E_API Eina_Bool e_comp_object_frame_allowed(Evas_Object *obj);
E_API void e_comp_object_frame_geometry_get(Evas_Object *obj, int *l, int *r, int *t, int *b);
E_API void e_comp_object_frame_geometry_set(Evas_Object *obj, int l, int r, int t, int b);
E_API void e_comp_object_frame_icon_geometry_get(Evas_Object *obj, int *x, int *y, int *w, int *h);
E_API Eina_Bool e_comp_object_frame_title_set(Evas_Object *obj, const char *name);
E_API Eina_Bool e_comp_object_frame_exists(Evas_Object *obj);
E_API void e_comp_object_frame_icon_update(Evas_Object *obj);
E_API Eina_Bool e_comp_object_frame_theme_set(Evas_Object *obj, const char *name);
E_API void e_comp_object_signal_emit(Evas_Object *obj, const char *sig, const char *src);
E_API void e_comp_object_signal_callback_add(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb, const void *data);
E_API void e_comp_object_signal_callback_del(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb);
E_API void e_comp_object_signal_callback_del_full(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb, const void *data);
E_API void e_comp_object_input_area_set(Evas_Object *obj, int x, int y, int w, int h);
E_API void e_comp_object_damage(Evas_Object *obj, int x, int y, int w, int h);
E_API Eina_Bool e_comp_object_damage_exists(Evas_Object *obj);
E_API void e_comp_object_render_update_add(Evas_Object *obj);
E_API void e_comp_object_render_update_del(Evas_Object *obj);
E_API void e_comp_object_shape_apply(Evas_Object *obj);
E_API void e_comp_object_redirected_set(Evas_Object *obj, Eina_Bool set);
E_API void e_comp_object_native_surface_set(Evas_Object *obj, Eina_Bool set);
E_API void e_comp_object_dirty(Evas_Object *obj);
E_API Eina_Bool e_comp_object_render(Evas_Object *obj);
E_API void e_comp_object_effect_set(Evas_Object *obj, const char *effect);
E_API void e_comp_object_effect_params_set(Evas_Object *obj, int id, int *params, unsigned int count);
E_API void e_comp_object_effect_clip(Evas_Object *obj);
E_API void e_comp_object_effect_unclip(Evas_Object *obj);
E_API void e_comp_object_effect_start(Evas_Object *obj, Edje_Signal_Cb end_cb, const void *end_data);
E_API void e_comp_object_effect_stop(Evas_Object *obj, Edje_Signal_Cb end_cb);
E_API E_Comp_Object_Mover *e_comp_object_effect_mover_add(int pri, const char *sig, E_Comp_Object_Mover_Cb provider, const void *data);
E_API void e_comp_object_effect_mover_del(E_Comp_Object_Mover *prov);
#endif
#endif

View File

@ -2852,7 +2852,7 @@ _e_comp_wl_cb_hook_client_eval_fetch(void *data EINA_UNUSED, E_Client *ec)
e_zone_useful_geometry_get(ec->zone, &zx, &zy, &zw, &zh);
if (e_config->screen_limits == E_SCREEN_LIMITS_WITHIN)
if (e_config->screen_limits == E_CLIENT_OFFSCREEN_LIMIT_ALLOW_NONE)
{
x = E_CLAMP(ec->x, zx, zx + zw - ec->w);
y = E_CLAMP(ec->y, zy, zy + zh - ec->h);
@ -2883,13 +2883,13 @@ _e_comp_wl_cb_hook_client_eval_fetch(void *data EINA_UNUSED, E_Client *ec)
{
/* client is completely outside the screen, policy does not allow */
if (((!E_INTERSECTS(x, y, ec->w, ec->h, ec->comp->man->x, ec->comp->man->y, ec->comp->man->w - 5, ec->comp->man->h - 5)) &&
(e_config->screen_limits != E_SCREEN_LIMITS_COMPLETELY)) ||
(e_config->screen_limits != E_CLIENT_OFFSCREEN_LIMIT_ALLOW_FULL)) ||
/* client is partly outside the zone, policy does not allow */
(((!E_INSIDE(x, y, ec->comp->man->x, ec->comp->man->y, ec->comp->man->w - 5, ec->comp->man->h - 5)) &&
(!E_INSIDE(x + ec->w, y, ec->comp->man->x, ec->comp->man->y, ec->comp->man->w - 5, ec->comp->man->h - 5)) &&
(!E_INSIDE(x, y + ec->h, ec->comp->man->x, ec->comp->man->y, ec->comp->man->w - 5, ec->comp->man->h - 5)) &&
(!E_INSIDE(x + ec->w, y + ec->h, ec->comp->man->x, ec->comp->man->y, ec->comp->man->w - 5, ec->comp->man->h - 5))) &&
(e_config->screen_limits == E_SCREEN_LIMITS_WITHIN))
(e_config->screen_limits == E_CLIENT_OFFSCREEN_LIMIT_ALLOW_NONE))
)
e_comp_object_util_center(ec->frame);
else
@ -3142,7 +3142,7 @@ _e_comp_wl_cb_hook_client_focus_unset(void *data EINA_UNUSED, E_Client *ec)
ec->comp->wl_comp_data->kbd.focus = NULL;
}
EAPI Eina_Bool
E_API Eina_Bool
e_comp_wl_init(void)
{
/* set gl available */

View File

@ -262,7 +262,7 @@ struct _E_Comp_Wl_Client_Data
Eina_Bool frame_update : 1;
};
EAPI Eina_Bool e_comp_wl_init(void);
E_API Eina_Bool e_comp_wl_init(void);
EINTERN void e_comp_wl_shutdown(void);
EINTERN struct wl_resource *e_comp_wl_surface_create(struct wl_client *client, int version, uint32_t id);

View File

@ -420,7 +420,7 @@ e_comp_wl_input_keyboard_state_update(E_Comp_Data *cdata, uint32_t keycode, Eina
e_comp_wl_input_keyboard_modifiers_update(cdata);
}
EAPI void
E_API void
e_comp_wl_input_pointer_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
{
/* check for valid compositor data */
@ -434,7 +434,7 @@ e_comp_wl_input_pointer_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
_e_comp_wl_input_update_seat_caps(cdata);
}
EAPI void
E_API void
e_comp_wl_input_keyboard_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
{
/* check for valid compositor data */
@ -448,7 +448,7 @@ e_comp_wl_input_keyboard_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled)
_e_comp_wl_input_update_seat_caps(cdata);
}
EAPI void
E_API void
e_comp_wl_input_keymap_set(E_Comp_Data *cdata, const char *rules, const char *model, const char *layout)
{
struct xkb_keymap *keymap;

View File

@ -11,10 +11,10 @@ EINTERN Eina_Bool e_comp_wl_input_keyboard_check(struct wl_resource *res);
EINTERN void e_comp_wl_input_keyboard_modifiers_update(E_Comp_Data *cdata);
EINTERN void e_comp_wl_input_keyboard_state_update(E_Comp_Data *cdata, uint32_t keycode, Eina_Bool pressed);
EAPI void e_comp_wl_input_pointer_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled);
EAPI void e_comp_wl_input_keyboard_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled);
E_API void e_comp_wl_input_pointer_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled);
E_API void e_comp_wl_input_keyboard_enabled_set(E_Comp_Data *cdata, Eina_Bool enabled);
EAPI void e_comp_wl_input_keymap_set(E_Comp_Data *cdata, const char *rules, const char *model, const char *layout);
E_API void e_comp_wl_input_keymap_set(E_Comp_Data *cdata, const char *rules, const char *model, const char *layout);
# endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -105,11 +105,15 @@ struct _E_Comp_X_Client_Data
Eina_Bool frame_update : 1;
Eina_Bool evas_init : 1;
Eina_Bool unredirected_single : 1;
unsigned int parent_activate_count; //number of times a win has activated itself when parent was focused
Eina_Bool fetch_gtk_frame_extents : 1;
Eina_Bool iconic : 1;
};
EINTERN Eina_Bool e_comp_x_init(void);
EINTERN void e_comp_x_shutdown(void);
EAPI void e_alert_composite_win(Ecore_X_Window root, Ecore_X_Window win);
E_API void e_alert_composite_win(Ecore_X_Window root, Ecore_X_Window win);
EINTERN void e_comp_x_nocomp_end(E_Comp *comp);
# endif
#endif

View File

@ -6,8 +6,8 @@
#define DEF_MENUCLICK 0.25
#endif
EAPI E_Config *e_config = NULL;
EAPI E_Config_Bindings *e_bindings = NULL;
E_API E_Config *e_config = NULL;
E_API E_Config_Bindings *e_bindings = NULL;
static int _e_config_revisions = 9;
@ -51,9 +51,9 @@ static E_Config_DD *_e_config_env_var_edd = NULL;
static E_Config_DD *_e_config_xkb_layout_edd = NULL;
static E_Config_DD *_e_config_xkb_option_edd = NULL;
EAPI int E_EVENT_CONFIG_ICON_THEME = 0;
EAPI int E_EVENT_CONFIG_MODE_CHANGED = 0;
EAPI int E_EVENT_CONFIG_LOADED = 0;
E_API int E_EVENT_CONFIG_ICON_THEME = 0;
E_API int E_EVENT_CONFIG_MODE_CHANGED = 0;
E_API int E_EVENT_CONFIG_LOADED = 0;
static E_Dialog *_e_config_error_dialog = NULL;
@ -951,7 +951,7 @@ e_config_shutdown(void)
return 1;
}
EAPI void
E_API void
e_config_load(void)
{
int reload = 0;
@ -1089,7 +1089,7 @@ e_config_load(void)
else
e_bindings = e_config_domain_load("e_bindings", _e_config_binding_edd);
if (e_bindings && (e_bindings->config_version != E_CONFIG_BINDINGS_VERSION))
if ((!e_bindings) || (e_bindings->config_version != E_CONFIG_BINDINGS_VERSION))
{
Eina_Stringshare *prof;
@ -1463,9 +1463,9 @@ e_config_load(void)
E_CONFIG_LIMIT(e_config->clientlist_limit_caption_len, 0, 1);
E_CONFIG_LIMIT(e_config->clientlist_max_caption_len, 2, E_CLIENTLIST_MAX_CAPTION_LEN);
E_CONFIG_LIMIT(e_config->mouse_accel_numerator, 1, 10);
E_CONFIG_LIMIT(e_config->mouse_accel_numerator, 1, 30);
E_CONFIG_LIMIT(e_config->mouse_accel_denominator, 1, 10);
E_CONFIG_LIMIT(e_config->mouse_accel_threshold, 1, 10);
E_CONFIG_LIMIT(e_config->mouse_accel_threshold, 0, 10);
E_CONFIG_LIMIT(e_config->menu_favorites_show, 0, 1);
E_CONFIG_LIMIT(e_config->menu_apps_show, 0, 1);
@ -1510,7 +1510,7 @@ e_config_load(void)
ecore_event_add(E_EVENT_CONFIG_LOADED, NULL, NULL, NULL);
}
EAPI int
E_API int
e_config_save(void)
{
E_FREE_FUNC(_e_config_save_defer, e_powersave_deferred_action_del);
@ -1518,7 +1518,7 @@ e_config_save(void)
return e_config_domain_save("e", _e_config_edd, e_config);
}
EAPI void
E_API void
e_config_save_flush(void)
{
if (_e_config_save_defer)
@ -1529,7 +1529,7 @@ e_config_save_flush(void)
}
}
EAPI void
E_API void
e_config_save_queue(void)
{
if (_e_config_save_defer)
@ -1538,20 +1538,20 @@ e_config_save_queue(void)
NULL);
}
EAPI const char *
E_API const char *
e_config_profile_get(void)
{
return _e_config_profile;
}
EAPI void
E_API void
e_config_profile_set(const char *prof)
{
eina_stringshare_replace(&_e_config_profile, prof);
e_util_env_set("E_CONF_PROFILE", _e_config_profile);
}
EAPI char *
E_API char *
e_config_profile_dir_get(const char *prof)
{
char buf[PATH_MAX];
@ -1569,7 +1569,7 @@ _cb_sort_files(char *f1, char *f2)
return strcmp(f1, f2);
}
EAPI Eina_List *
E_API Eina_List *
e_config_profile_list(void)
{
Eina_List *files;
@ -1645,7 +1645,7 @@ e_config_profile_list(void)
return flist;
}
EAPI void
E_API void
e_config_profile_add(const char *prof)
{
char buf[4096];
@ -1654,7 +1654,7 @@ e_config_profile_add(const char *prof)
ecore_file_mkdir(buf);
}
EAPI void
E_API void
e_config_profile_del(const char *prof)
{
char buf[4096];
@ -1663,13 +1663,13 @@ e_config_profile_del(const char *prof)
ecore_file_recursive_rm(buf);
}
EAPI void
E_API void
e_config_save_block_set(int block)
{
_e_config_save_block = block;
}
EAPI int
E_API int
e_config_save_block_get(void)
{
return _e_config_save_block;
@ -1684,7 +1684,7 @@ e_config_save_block_get(void)
* @param edd to struct definition
* @return returns allocated struct on success, if unable to find config returns null
*/
EAPI void *
E_API void *
e_config_domain_load(const char *domain, E_Config_DD *edd)
{
Eet_File *ef;
@ -1717,7 +1717,7 @@ e_config_domain_load(const char *domain, E_Config_DD *edd)
return e_config_domain_system_load(domain, edd);
}
EAPI void *
E_API void *
e_config_domain_system_load(const char *domain, E_Config_DD *edd)
{
Eet_File *ef;
@ -1770,7 +1770,7 @@ _e_config_mv_error(const char *from, const char *to)
_e_config_error_dialog = dia;
}
EAPI int
E_API int
e_config_profile_save(void)
{
Eet_File *ef;
@ -1837,7 +1837,7 @@ e_config_profile_save(void)
* @param data struct to save as configuration file
* @return 1 if save success, 0 on failure
*/
EAPI int
E_API int
e_config_domain_save(const char *domain, E_Config_DD *edd, const void *data)
{
Eet_File *ef;
@ -1901,7 +1901,7 @@ e_config_domain_save(const char *domain, E_Config_DD *edd, const void *data)
return ok;
}
EAPI E_Config_Binding_Mouse *
E_API E_Config_Binding_Mouse *
e_config_binding_mouse_match(E_Config_Binding_Mouse *eb_in)
{
Eina_List *l;
@ -1922,7 +1922,7 @@ e_config_binding_mouse_match(E_Config_Binding_Mouse *eb_in)
return NULL;
}
EAPI E_Config_Binding_Key *
E_API E_Config_Binding_Key *
e_config_binding_key_match(E_Config_Binding_Key *eb_in)
{
Eina_List *l;
@ -1944,7 +1944,7 @@ e_config_binding_key_match(E_Config_Binding_Key *eb_in)
return NULL;
}
EAPI E_Config_Binding_Edge *
E_API E_Config_Binding_Edge *
e_config_binding_edge_match(E_Config_Binding_Edge *eb_in)
{
Eina_List *l;
@ -1967,7 +1967,7 @@ e_config_binding_edge_match(E_Config_Binding_Edge *eb_in)
return NULL;
}
EAPI E_Config_Binding_Signal *
E_API E_Config_Binding_Signal *
e_config_binding_signal_match(E_Config_Binding_Signal *eb_in)
{
Eina_List *l;
@ -1991,7 +1991,7 @@ e_config_binding_signal_match(E_Config_Binding_Signal *eb_in)
return NULL;
}
EAPI E_Config_Binding_Wheel *
E_API E_Config_Binding_Wheel *
e_config_binding_wheel_match(E_Config_Binding_Wheel *eb_in)
{
Eina_List *l;
@ -2013,7 +2013,7 @@ e_config_binding_wheel_match(E_Config_Binding_Wheel *eb_in)
return NULL;
}
EAPI E_Config_Binding_Acpi *
E_API E_Config_Binding_Acpi *
e_config_binding_acpi_match(E_Config_Binding_Acpi *eb_in)
{
Eina_List *l;
@ -2035,13 +2035,13 @@ e_config_binding_acpi_match(E_Config_Binding_Acpi *eb_in)
return NULL;
}
EAPI void
E_API void
e_config_mode_changed(void)
{
ecore_event_add(E_EVENT_CONFIG_MODE_CHANGED, NULL, NULL, NULL);
}
EAPI void
E_API void
e_config_binding_acpi_free(E_Config_Binding_Acpi *eba)
{
if (!eba) return;
@ -2050,7 +2050,7 @@ e_config_binding_acpi_free(E_Config_Binding_Acpi *eba)
free(eba);
}
EAPI void
E_API void
e_config_binding_key_free(E_Config_Binding_Key *ebk)
{
if (!ebk) return;
@ -2060,7 +2060,7 @@ e_config_binding_key_free(E_Config_Binding_Key *ebk)
free(ebk);
}
EAPI void
E_API void
e_config_binding_edge_free(E_Config_Binding_Edge *ebe)
{
if (!ebe) return;
@ -2069,7 +2069,7 @@ e_config_binding_edge_free(E_Config_Binding_Edge *ebe)
free(ebe);
}
EAPI void
E_API void
e_config_binding_mouse_free(E_Config_Binding_Mouse *ebm)
{
if (!ebm) return;
@ -2078,7 +2078,7 @@ e_config_binding_mouse_free(E_Config_Binding_Mouse *ebm)
free(ebm);
}
EAPI void
E_API void
e_config_binding_wheel_free(E_Config_Binding_Wheel *ebw)
{
if (!ebw) return;
@ -2087,7 +2087,7 @@ e_config_binding_wheel_free(E_Config_Binding_Wheel *ebw)
free(ebw);
}
EAPI void
E_API void
e_config_binding_signal_free(E_Config_Binding_Signal *ebs)
{
if (!ebs) return;
@ -2098,7 +2098,7 @@ e_config_binding_signal_free(E_Config_Binding_Signal *ebs)
free(ebs);
}
EAPI void
E_API void
e_config_bindings_free(E_Config_Bindings *ecb)
{
if (!ecb) return;

View File

@ -646,50 +646,50 @@ struct _E_Config_XKB_Option
EINTERN int e_config_init(void);
EINTERN int e_config_shutdown(void);
EAPI void e_config_load(void);
E_API void e_config_load(void);
EAPI int e_config_save(void);
EAPI void e_config_save_flush(void);
EAPI void e_config_save_queue(void);
E_API int e_config_save(void);
E_API void e_config_save_flush(void);
E_API void e_config_save_queue(void);
EAPI const char *e_config_profile_get(void);
EAPI char *e_config_profile_dir_get(const char *prof);
EAPI void e_config_profile_set(const char *prof);
EAPI Eina_List *e_config_profile_list(void);
EAPI void e_config_profile_add(const char *prof);
EAPI void e_config_profile_del(const char *prof);
E_API const char *e_config_profile_get(void);
E_API char *e_config_profile_dir_get(const char *prof);
E_API void e_config_profile_set(const char *prof);
E_API Eina_List *e_config_profile_list(void);
E_API void e_config_profile_add(const char *prof);
E_API void e_config_profile_del(const char *prof);
EAPI void e_config_save_block_set(int block);
EAPI int e_config_save_block_get(void);
E_API void e_config_save_block_set(int block);
E_API int e_config_save_block_get(void);
EAPI void *e_config_domain_load(const char *domain, E_Config_DD *edd);
EAPI void *e_config_domain_system_load(const char *domain, E_Config_DD *edd);
EAPI int e_config_profile_save(void);
EAPI int e_config_domain_save(const char *domain, E_Config_DD *edd, const void *data);
E_API void *e_config_domain_load(const char *domain, E_Config_DD *edd);
E_API void *e_config_domain_system_load(const char *domain, E_Config_DD *edd);
E_API int e_config_profile_save(void);
E_API int e_config_domain_save(const char *domain, E_Config_DD *edd, const void *data);
EAPI E_Config_Binding_Mouse *e_config_binding_mouse_match(E_Config_Binding_Mouse *eb_in);
EAPI E_Config_Binding_Key *e_config_binding_key_match(E_Config_Binding_Key *eb_in);
EAPI E_Config_Binding_Edge *e_config_binding_edge_match(E_Config_Binding_Edge *eb_in);
EAPI E_Config_Binding_Signal *e_config_binding_signal_match(E_Config_Binding_Signal *eb_in);
EAPI E_Config_Binding_Wheel *e_config_binding_wheel_match(E_Config_Binding_Wheel *eb_in);
EAPI E_Config_Binding_Acpi *e_config_binding_acpi_match(E_Config_Binding_Acpi *eb_in);
EAPI void e_config_mode_changed(void);
E_API E_Config_Binding_Mouse *e_config_binding_mouse_match(E_Config_Binding_Mouse *eb_in);
E_API E_Config_Binding_Key *e_config_binding_key_match(E_Config_Binding_Key *eb_in);
E_API E_Config_Binding_Edge *e_config_binding_edge_match(E_Config_Binding_Edge *eb_in);
E_API E_Config_Binding_Signal *e_config_binding_signal_match(E_Config_Binding_Signal *eb_in);
E_API E_Config_Binding_Wheel *e_config_binding_wheel_match(E_Config_Binding_Wheel *eb_in);
E_API E_Config_Binding_Acpi *e_config_binding_acpi_match(E_Config_Binding_Acpi *eb_in);
E_API void e_config_mode_changed(void);
EAPI void e_config_bindings_free(E_Config_Bindings *ecb);
EAPI void e_config_binding_signal_free(E_Config_Binding_Signal *ebs);
EAPI void e_config_binding_wheel_free(E_Config_Binding_Wheel *ebw);
EAPI void e_config_binding_mouse_free(E_Config_Binding_Mouse *ebm);
EAPI void e_config_binding_edge_free(E_Config_Binding_Edge *ebe);
EAPI void e_config_binding_key_free(E_Config_Binding_Key *ebk);
EAPI void e_config_binding_acpi_free(E_Config_Binding_Acpi *eba);
E_API void e_config_bindings_free(E_Config_Bindings *ecb);
E_API void e_config_binding_signal_free(E_Config_Binding_Signal *ebs);
E_API void e_config_binding_wheel_free(E_Config_Binding_Wheel *ebw);
E_API void e_config_binding_mouse_free(E_Config_Binding_Mouse *ebm);
E_API void e_config_binding_edge_free(E_Config_Binding_Edge *ebe);
E_API void e_config_binding_key_free(E_Config_Binding_Key *ebk);
E_API void e_config_binding_acpi_free(E_Config_Binding_Acpi *eba);
extern EAPI E_Config *e_config;
extern EAPI E_Config_Bindings *e_bindings;
extern E_API E_Config *e_config;
extern E_API E_Config_Bindings *e_bindings;
extern EAPI int E_EVENT_CONFIG_ICON_THEME;
extern EAPI int E_EVENT_CONFIG_MODE_CHANGED;
extern EAPI int E_EVENT_CONFIG_LOADED;
extern E_API int E_EVENT_CONFIG_ICON_THEME;
extern E_API int E_EVENT_CONFIG_MODE_CHANGED;
extern E_API int E_EVENT_CONFIG_LOADED;
#endif
#endif

View File

@ -2,14 +2,14 @@
static Eina_Hash *config_hash = NULL;
EAPI void
E_API void
e_config_descriptor_free(E_Config_DD *edd)
{
eina_hash_del_by_key(config_hash, eet_data_descriptor_name_get((Eet_Data_Descriptor*)edd));
eet_data_descriptor_free((Eet_Data_Descriptor*)edd);
}
EAPI E_Config_DD *
E_API E_Config_DD *
e_config_descriptor_new(const char *name, int size)
{
Eet_Data_Descriptor_Class eddc;
@ -29,7 +29,7 @@ e_config_descriptor_new(const char *name, int size)
return edd;
}
EAPI E_Config_DD *
E_API E_Config_DD *
e_config_descriptor_find(const char *name)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL);

View File

@ -55,9 +55,9 @@ typedef Eet_Data_Descriptor E_Config_DD;
#ifndef E_CONFIG_DATA_H
#define E_CONFIG_DATA_H
EAPI E_Config_DD *e_config_descriptor_new(const char *name, int size);
EAPI void e_config_descriptor_free(E_Config_DD *edd);
EAPI E_Config_DD *e_config_descriptor_find(const char *name);
E_API E_Config_DD *e_config_descriptor_new(const char *name, int size);
E_API void e_config_descriptor_free(E_Config_DD *edd);
E_API E_Config_DD *e_config_descriptor_find(const char *name);
#endif
#endif

View File

@ -31,7 +31,7 @@ static Eina_List *_e_config_dialog_list = NULL;
* @param data additional data to attach to the dialog, will be passed to the callbacks
* @return returns the created dialog. Null on failure
*/
EAPI E_Config_Dialog *
E_API E_Config_Dialog *
e_config_dialog_new(E_Comp *c, const char *title, const char *name, const char *class, const char *icon, int icon_size, E_Config_Dialog_View *view, void *data)
{
E_Config_Dialog *cfd;
@ -92,7 +92,7 @@ e_config_dialog_new(E_Comp *c, const char *title, const char *name, const char *
return cfd;
}
EAPI int
E_API int
e_config_dialog_find(const char *name, const char *class)
{
Eina_List *l;
@ -109,7 +109,10 @@ e_config_dialog_find(const char *name, const char *class)
e_client_uniconify(cfd->dia->win->client);
e_win_raise(cfd->dia->win);
if (z->comp == cfd->dia->win->client->zone->comp)
e_client_desk_set(cfd->dia->win->client, e_desk_current_get(z));
{
cfd->dia->win->client->hidden = 0;
e_client_desk_set(cfd->dia->win->client, e_desk_current_get(z));
}
else
{
if (!cfd->dia->win->client->sticky)
@ -127,7 +130,7 @@ e_config_dialog_find(const char *name, const char *class)
return 0;
}
EAPI E_Config_Dialog *
E_API E_Config_Dialog *
e_config_dialog_get(const char *name, const char *class)
{
Eina_List *l;
@ -488,14 +491,14 @@ _e_config_dialog_cb_close(void *data __UNUSED__, E_Dialog *dia)
if (ok) e_util_defer_object_del(E_OBJECT(cfd));
}
EAPI void
E_API void
e_config_dialog_changed_auto_set(E_Config_Dialog *cfd, unsigned char value)
{
if (!cfd) return;
cfd->cfg_changed_auto = !!value;
}
EAPI void
E_API void
e_config_dialog_changed_set(E_Config_Dialog *cfd, unsigned char value)
{
if (!cfd) return;

View File

@ -55,12 +55,12 @@ struct _E_Config_Dialog
unsigned char cfg_changed_auto : 1;
};
EAPI E_Config_Dialog *e_config_dialog_new(E_Comp *c, const char *title, const char *name, const char *class, const char *icon, int icon_size, E_Config_Dialog_View *view, void *data);
EAPI int e_config_dialog_find(const char *name, const char *class);
EAPI E_Config_Dialog *e_config_dialog_get(const char *name, const char *class);
E_API E_Config_Dialog *e_config_dialog_new(E_Comp *c, const char *title, const char *name, const char *class, const char *icon, int icon_size, E_Config_Dialog_View *view, void *data);
E_API int e_config_dialog_find(const char *name, const char *class);
E_API E_Config_Dialog *e_config_dialog_get(const char *name, const char *class);
EAPI void e_config_dialog_changed_auto_set(E_Config_Dialog *cfd, unsigned char value);
EAPI void e_config_dialog_changed_set(E_Config_Dialog *cfd, unsigned char value);
E_API void e_config_dialog_changed_auto_set(E_Config_Dialog *cfd, unsigned char value);
E_API void e_config_dialog_changed_set(E_Config_Dialog *cfd, unsigned char value);
#endif
#endif

View File

@ -11,7 +11,7 @@ static void _e_configure_registry_item_free(E_Configure_It *eci);
static void _configure_job(void *data);
static Eina_Bool _configure_init_timer(void *data);
EAPI Eina_List *e_configure_registry = NULL;
E_API Eina_List *e_configure_registry = NULL;
static Eina_List *handlers = NULL;
static E_Int_Menu_Augmentation *maug = NULL;
@ -46,7 +46,7 @@ e_configure_init(void)
ecore_timer_add(0.0, _configure_init_timer, NULL);
}
EAPI void
E_API void
e_configure_registry_call(const char *path, E_Comp *c, const char *params)
{
E_Configure_Cat *ecat;
@ -89,19 +89,19 @@ e_configure_registry_call(const char *path, E_Comp *c, const char *params)
free(cat);
}
EAPI void
E_API void
e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Comp *c, const char *params))
{
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, func, NULL, NULL, NULL);
}
EAPI void
E_API void
e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func)(E_Comp *c, const char *params))
{
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, NULL, generic_func, NULL, NULL);
}
EAPI void
E_API void
e_configure_registry_item_params_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Comp *c, const char *params), const char *params)
{
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, func, NULL, NULL, params);
@ -112,7 +112,7 @@ e_configure_registry_item_params_add(const char *path, int pri, const char *labe
*
*@param path location the item to delete
*/
EAPI void
E_API void
e_configure_registry_item_del(const char *path)
{
E_Configure_Cat *ecat;
@ -162,7 +162,7 @@ _E_configure_category_pri_cb(E_Configure_Cat *ecat, E_Configure_Cat *ecat2)
return ecat->pri - ecat2->pri;
}
EAPI void
E_API void
e_configure_registry_category_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon)
{
E_Configure_Cat *ecat2;
@ -191,7 +191,7 @@ e_configure_registry_category_add(const char *path, int pri, const char *label,
*
*@param path location the category to delete
*/
EAPI void
E_API void
e_configure_registry_category_del(const char *path)
{
E_Configure_Cat *ecat;
@ -227,14 +227,14 @@ e_configure_registry_category_del(const char *path)
*@param func the callback to use when the configuration item is clicked
*/
EAPI void
E_API void
e_configure_registry_custom_desktop_exec_callback_set(void (*func)(const void *data, E_Comp *c, const char *params, Efreet_Desktop *desktop), const void *data)
{
custom_desktop_exec.func = func;
custom_desktop_exec.data = data;
}
EAPI int
E_API int
e_configure_registry_exists(const char *path)
{
E_Configure_Cat *ecat;

View File

@ -30,18 +30,18 @@ struct _E_Configure_It
Efreet_Desktop *desktop;
};
EAPI void e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Comp *c, const char *params));
EAPI void e_configure_registry_item_params_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Comp *c, const char *params), const char *params);
EAPI void e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func) (E_Comp *c, const char *params));
EAPI void e_configure_registry_item_del(const char *path);
EAPI void e_configure_registry_category_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon);
EAPI void e_configure_registry_category_del(const char *path);
EAPI void e_configure_registry_call(const char *path, E_Comp *c, const char *params);
EAPI int e_configure_registry_exists(const char *path);
EAPI void e_configure_registry_custom_desktop_exec_callback_set(void (*func) (const void *data, E_Comp *c, const char *params, Efreet_Desktop *desktop), const void *data);
E_API void e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Comp *c, const char *params));
E_API void e_configure_registry_item_params_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Comp *c, const char *params), const char *params);
E_API void e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func) (E_Comp *c, const char *params));
E_API void e_configure_registry_item_del(const char *path);
E_API void e_configure_registry_category_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon);
E_API void e_configure_registry_category_del(const char *path);
E_API void e_configure_registry_call(const char *path, E_Comp *c, const char *params);
E_API int e_configure_registry_exists(const char *path);
E_API void e_configure_registry_custom_desktop_exec_callback_set(void (*func) (const void *data, E_Comp *c, const char *params, Efreet_Desktop *desktop), const void *data);
EINTERN void e_configure_init(void);
extern EAPI Eina_List *e_configure_registry;
extern E_API Eina_List *e_configure_registry;
#endif
#endif

View File

@ -15,7 +15,7 @@ _dia_del(void *data)
}
/********** externally accesible functions ****************/
EAPI E_Confirm_Dialog *
E_API E_Confirm_Dialog *
e_confirm_dialog_show(const char *title, const char *icon, const char *text,
const char *button_text, const char *button2_text,
void (*func)(void *data), void (*func2)(void *data),

View File

@ -45,7 +45,7 @@ struct _E_Confirm_Dialog
* del_func - the function to call before dialog is deleted
* del_data - the pointer passer to del_func
*/
EAPI E_Confirm_Dialog *e_confirm_dialog_show(const char *title, const char *icon, const char *text, const char *button_text, const char *button2_text, void (*func)(void *data), void (*func2)(void *data), void *data, void *data2, void (*del_func)(void *data), void *del_data);
E_API E_Confirm_Dialog *e_confirm_dialog_show(const char *title, const char *icon, const char *text, const char *button_text, const char *button2_text, void (*func)(void *data), void (*func2)(void *data), void *data, void *data2, void (*del_func)(void *data), void *del_data);
#endif
#endif

View File

@ -6,7 +6,7 @@
static Eina_Hash *store = NULL;
/* externally accessible functions */
EAPI void
E_API void
e_datastore_set(char *key, void *data)
{
if (!store) store = eina_hash_string_superfast_new(NULL);
@ -14,13 +14,13 @@ e_datastore_set(char *key, void *data)
eina_hash_add(store, key, data);
}
EAPI void *
E_API void *
e_datastore_get(char *key)
{
return eina_hash_find(store, key);
}
EAPI void
E_API void
e_datastore_del(char *key)
{
eina_hash_del(store, key, NULL);

View File

@ -4,9 +4,9 @@
#ifndef E_DATASTORE_H
#define E_DATASTORE_H
EAPI void e_datastore_set(char *key, void *data);
EAPI void *e_datastore_get(char *key);
EAPI void e_datastore_del(char *key);
E_API void e_datastore_set(char *key, void *data);
E_API void *e_datastore_get(char *key);
E_API void e_datastore_del(char *key);
#endif
#endif

View File

@ -337,7 +337,7 @@ layout_updated_cb(void *data, const Eldbus_Message *msg EINA_UNUSED)
layout_update(ctx);
}
EAPI E_DBusMenu_Ctx *
E_API E_DBusMenu_Ctx *
e_dbusmenu_load(Eldbus_Connection *conn, const char *bus, const char *path, const void *data)
{
Eldbus_Object *obj;
@ -371,7 +371,7 @@ e_dbusmenu_load(Eldbus_Connection *conn, const char *bus, const char *path, cons
return ctx;
}
EAPI void
E_API void
e_dbusmenu_event_send(E_DBusMenu_Item *m, E_DBusMenu_Item_Event event)
{
Eldbus_Message *msg;
@ -397,7 +397,7 @@ e_dbusmenu_event_send(E_DBusMenu_Item *m, E_DBusMenu_Item_Event event)
eldbus_proxy_send(m->ctx->proxy, msg, NULL, NULL, -1);
}
EAPI void
E_API void
e_dbusmenu_unload(E_DBusMenu_Ctx *ctx)
{
Eldbus_Connection *conn;
@ -414,13 +414,13 @@ e_dbusmenu_unload(E_DBusMenu_Ctx *ctx)
free(ctx);
}
EAPI void
E_API void
e_dbusmenu_pop_request_cb_set(E_DBusMenu_Ctx *ctx, E_DBusMenu_Pop_Request_Cb cb)
{
ctx->pop_request_cb = cb;
}
EAPI void
E_API void
e_dbusmenu_update_cb_set(E_DBusMenu_Ctx *ctx, E_DBusMenu_Update_Cb cb)
{
ctx->update_cb = cb;

View File

@ -61,11 +61,11 @@ struct _E_DBusMenu_Item
typedef void (*E_DBusMenu_Pop_Request_Cb)(void *data, const E_DBusMenu_Item *item);
typedef void (*E_DBusMenu_Update_Cb)(void *data, E_DBusMenu_Item *new_root_item);
EAPI E_DBusMenu_Ctx * e_dbusmenu_load(Eldbus_Connection *conn, const char *bus, const char *path, const void *data);
EAPI void e_dbusmenu_unload(E_DBusMenu_Ctx *ctx);
EAPI void e_dbusmenu_update_cb_set(E_DBusMenu_Ctx *menu_data, E_DBusMenu_Update_Cb cb);
EAPI void e_dbusmenu_pop_request_cb_set(E_DBusMenu_Ctx *menu_data, E_DBusMenu_Pop_Request_Cb cb);
E_API E_DBusMenu_Ctx * e_dbusmenu_load(Eldbus_Connection *conn, const char *bus, const char *path, const void *data);
E_API void e_dbusmenu_unload(E_DBusMenu_Ctx *ctx);
E_API void e_dbusmenu_update_cb_set(E_DBusMenu_Ctx *menu_data, E_DBusMenu_Update_Cb cb);
E_API void e_dbusmenu_pop_request_cb_set(E_DBusMenu_Ctx *menu_data, E_DBusMenu_Pop_Request_Cb cb);
EAPI void e_dbusmenu_event_send(E_DBusMenu_Item *m, E_DBusMenu_Item_Event event);
E_API void e_dbusmenu_event_send(E_DBusMenu_Item *m, E_DBusMenu_Item_Event event);
#endif

View File

@ -19,12 +19,12 @@ static void _e_desk_window_profile_change_protocol_set(void);
static E_Desk_Flip_Cb _e_desk_flip_cb = NULL;
static void *_e_desk_flip_data = NULL;
EAPI int E_EVENT_DESK_SHOW = 0;
EAPI int E_EVENT_DESK_BEFORE_SHOW = 0;
EAPI int E_EVENT_DESK_AFTER_SHOW = 0;
EAPI int E_EVENT_DESK_DESKSHOW = 0;
EAPI int E_EVENT_DESK_NAME_CHANGE = 0;
EAPI int E_EVENT_DESK_WINDOW_PROFILE_CHANGE = 0;
E_API int E_EVENT_DESK_SHOW = 0;
E_API int E_EVENT_DESK_BEFORE_SHOW = 0;
E_API int E_EVENT_DESK_AFTER_SHOW = 0;
E_API int E_EVENT_DESK_DESKSHOW = 0;
E_API int E_EVENT_DESK_NAME_CHANGE = 0;
E_API int E_EVENT_DESK_WINDOW_PROFILE_CHANGE = 0;
EINTERN int
e_desk_init(void)
@ -44,7 +44,7 @@ e_desk_shutdown(void)
return 1;
}
EAPI E_Desk *
E_API E_Desk *
e_desk_new(E_Zone *zone, int x, int y)
{
E_Desk *desk;
@ -103,7 +103,7 @@ e_desk_new(E_Zone *zone, int x, int y)
return desk;
}
EAPI E_Client *
E_API E_Client *
e_desk_client_top_visible_get(const E_Desk *desk)
{
E_Client *ec;
@ -116,7 +116,7 @@ e_desk_client_top_visible_get(const E_Desk *desk)
return NULL;
}
EAPI void
E_API void
e_desk_name_set(E_Desk *desk, const char *name)
{
E_Event_Desk_Name_Change *ev;
@ -133,7 +133,7 @@ e_desk_name_set(E_Desk *desk, const char *name)
_e_desk_event_desk_name_change_free, NULL);
}
EAPI void
E_API void
e_desk_name_add(int manager, int zone, int desk_x, int desk_y, const char *name)
{
E_Config_Desktop_Name *cfname;
@ -150,7 +150,7 @@ e_desk_name_add(int manager, int zone, int desk_x, int desk_y, const char *name)
e_config->desktop_names = eina_list_append(e_config->desktop_names, cfname);
}
EAPI void
E_API void
e_desk_name_del(int manager, int zone, int desk_x, int desk_y)
{
Eina_List *l = NULL;
@ -170,7 +170,7 @@ e_desk_name_del(int manager, int zone, int desk_x, int desk_y)
}
}
EAPI void
E_API void
e_desk_name_update(void)
{
const Eina_List *z, *l, *ll;
@ -218,61 +218,54 @@ e_desk_name_update(void)
}
}
EAPI void
E_API void
e_desk_show(E_Desk *desk)
{
E_Event_Desk_Show *ev;
E_Event_Desk_Before_Show *eev;
E_Event_Desk_After_Show *eeev;
Edje_Message_Int_Set *msg;
Edje_Message_Float_Set *msg;
Eina_List *l;
E_Shelf *es;
int was_zone = 0, x, y, dx = 0, dy = 0;
E_Desk *desk2;
int was_zone = 0, dx = 0, dy = 0;
E_OBJECT_CHECK(desk);
E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
if (desk->visible) return;
desk2 = e_desk_at_xy_get(desk->zone, desk->zone->desk_x_current, desk->zone->desk_y_current);
if ((!starting) && (!desk2->visible)) return;
eev = E_NEW(E_Event_Desk_Before_Show, 1);
eev->desk = e_desk_current_get(desk->zone);
e_object_ref(E_OBJECT(eev->desk));
ecore_event_add(E_EVENT_DESK_BEFORE_SHOW, eev,
_e_desk_event_desk_before_show_free, NULL);
for (x = 0; x < desk->zone->desk_x_count; x++)
if (desk2->visible)
{
for (y = 0; y < desk->zone->desk_y_count; y++)
desk2->visible = 0;
if (e_config->desk_flip_wrap)
{
E_Desk *desk2;
desk2 = e_desk_at_xy_get(desk->zone, x, y);
if (desk2->visible)
/* current desk (desk2) is last desk, switching to first desk (desk) */
if ((!desk->x) && (!desk->y) && (desk2->x + 1 == desk->zone->desk_x_count) && (desk2->y + 1 == desk->zone->desk_y_count))
{
desk2->visible = 0;
if (e_config->desk_flip_wrap)
{
/* current desk (desk2) is last desk, switching to first desk (desk) */
if ((!desk->x) && (!desk->y) && (desk2->x + 1 == desk->zone->desk_x_count) && (desk2->y + 1 == desk->zone->desk_y_count))
{
dx = (desk->x != desk2->x) ? 1 : 0;
dy = (desk->y != desk2->y) ? 1 : 0;
}
/* current desk (desk2) is first desk, switching to last desk (desk) */
else if ((!desk2->x) && (!desk2->y) && (desk->x + 1 == desk->zone->desk_x_count) && (desk->y + 1 == desk->zone->desk_y_count))
{
dx = (desk->x != desk2->x) ? -1 : 0;
dy = (desk->y != desk2->y) ? -1 : 0;
}
}
if ((!dx) && (!dy))
{
dx = desk->x - desk2->x;
dy = desk->y - desk2->y;
}
_e_desk_hide_begin(desk2, dx, dy);
break;
dx = (desk->x != desk2->x) ? 1 : 0;
dy = (desk->y != desk2->y) ? 1 : 0;
}
/* current desk (desk2) is first desk, switching to last desk (desk) */
else if ((!desk2->x) && (!desk2->y) && (desk->x + 1 == desk->zone->desk_x_count) && (desk->y + 1 == desk->zone->desk_y_count))
{
dx = (desk->x != desk2->x) ? -1 : 0;
dy = (desk->y != desk2->y) ? -1 : 0;
}
}
if ((!dx) && (!dy))
{
dx = desk->x - desk2->x;
dy = desk->y - desk2->y;
}
_e_desk_hide_begin(desk2, dx, dy);
}
desk->zone->desk_x_prev = desk->zone->desk_x_current;
@ -281,24 +274,18 @@ e_desk_show(E_Desk *desk)
desk->zone->desk_y_current = desk->y;
desk->visible = 1;
msg = alloca(sizeof(Edje_Message_Int_Set) + (3 * sizeof(int)));
msg->count = 4;
msg->val[0] = desk->x;
msg->val[1] = desk->zone->desk_x_count;
msg->val[2] = desk->y;
msg->val[3] = desk->zone->desk_y_count;
msg = alloca(sizeof(Edje_Message_Float_Set) + (4 * sizeof(double)));
msg->count = 5;
msg->val[0] = 0.2 * (!!e_config->desk_flip_animate_mode);//e_config->desk_flip_animate_time;
msg->val[1] = desk->x;
msg->val[2] = desk->zone->desk_x_count;
msg->val[3] = desk->y;
msg->val[4] = desk->zone->desk_y_count;
if (desk->zone->bg_object)
edje_object_message_send(desk->zone->bg_object, EDJE_MESSAGE_INT_SET, 0, msg);
edje_object_message_send(desk->zone->bg_object, EDJE_MESSAGE_FLOAT_SET, 0, msg);
if (desk->zone->bg_object) was_zone = 1;
_e_desk_show_begin(desk, dx, dy);
if (!e_config->desk_flip_animate_type)
{
if (e_config->focus_last_focused_per_desktop)
e_desk_last_focused_focus(desk);
else if (e_client_focused_get())
evas_object_focus_set(e_client_focused_get()->frame, 0);
}
if (was_zone)
e_bg_zone_update(desk->zone, E_BG_TRANSITION_DESK);
@ -330,7 +317,7 @@ e_desk_show(E_Desk *desk)
e_zone_edge_flip_eval(desk->zone);
}
EAPI void
E_API void
e_desk_deskshow(E_Zone *zone)
{
E_Client *ec;
@ -341,23 +328,31 @@ e_desk_deskshow(E_Zone *zone)
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
desk = e_desk_current_get(zone);
/* uniconify raises windows and changes stacking order
* go top-down to avoid skipping windows
*/
E_CLIENT_REVERSE_FOREACH(zone->comp, ec)
if (desk->deskshow_toggle)
{
if (e_client_util_ignored_get(ec)) continue;
if (ec->desk != desk) continue;
if (desk->deskshow_toggle)
/* uniconify raises windows and changes stacking order
* go top-down to avoid skipping windows
*/
E_CLIENT_REVERSE_FOREACH(zone->comp, ec)
{
if (e_client_util_ignored_get(ec)) continue;
if (ec->desk != desk) continue;
if (ec->deskshow)
{
ec->deskshow = 0;
e_client_uniconify(ec);
}
}
else
}
else
{
/*
* iconify raises, so we ahve to start from the bottom so we are going forward
*/
E_CLIENT_FOREACH(zone->comp, ec)
{
if (e_client_util_ignored_get(ec)) continue;
if (ec->desk != desk) continue;
if (ec->iconic) continue;
if (ec->netwm.state.skip_taskbar) continue;
if (ec->user_skip_winlist) continue;
@ -373,7 +368,7 @@ e_desk_deskshow(E_Zone *zone)
_e_desk_event_desk_deskshow_free, NULL);
}
EAPI E_Client *
E_API E_Client *
e_desk_last_focused_focus(E_Desk *desk)
{
Eina_List *l = NULL;
@ -381,7 +376,7 @@ e_desk_last_focused_focus(E_Desk *desk)
EINA_LIST_FOREACH(e_client_focus_stack_get(), l, ec)
{
if ((!ec->iconic) && (evas_object_visible_get(ec->frame)) &&
if ((!ec->iconic) && (evas_object_visible_get(ec->frame) || ec->changes.visible) &&
((ec->desk == desk) || ((ec->zone == desk->zone) && ec->sticky)) &&
(ec->icccm.accepts_focus || ec->icccm.take_focus) &&
(ec->netwm.type != E_WINDOW_TYPE_DOCK) &&
@ -398,16 +393,22 @@ e_desk_last_focused_focus(E_Desk *desk)
ecs = ec;
continue;
}
e_client_focus_set_with_pointer(ec);
if (ec->changes.visible && (!evas_object_visible_get(ec->frame)))
ec->want_focus = ec->take_focus = 1;
else
e_client_focus_set_with_pointer(ec);
if (e_config->raise_on_revert_focus)
evas_object_raise(ec->frame);
return ec;
}
}
}
if (ecs && evas_object_visible_get(ecs->frame))
if (ecs)
{
e_client_focus_set_with_pointer(ecs);
if (ecs->changes.visible && (!evas_object_visible_get(ecs->frame)))
ecs->want_focus = ecs->take_focus = 1;
else
e_client_focus_set_with_pointer(ecs);
if (e_config->raise_on_revert_focus)
evas_object_raise(ecs->frame);
return ecs;
@ -417,31 +418,31 @@ e_desk_last_focused_focus(E_Desk *desk)
return NULL;
}
EAPI void
E_API void
e_desk_row_add(E_Zone *zone)
{
e_zone_desk_count_set(zone, zone->desk_x_count, zone->desk_y_count + 1);
}
EAPI void
E_API void
e_desk_row_remove(E_Zone *zone)
{
e_zone_desk_count_set(zone, zone->desk_x_count, zone->desk_y_count - 1);
}
EAPI void
E_API void
e_desk_col_add(E_Zone *zone)
{
e_zone_desk_count_set(zone, zone->desk_x_count + 1, zone->desk_y_count);
}
EAPI void
E_API void
e_desk_col_remove(E_Zone *zone)
{
e_zone_desk_count_set(zone, zone->desk_x_count - 1, zone->desk_y_count);
}
EAPI E_Desk *
E_API E_Desk *
e_desk_current_get(E_Zone *zone)
{
E_OBJECT_CHECK_RETURN(zone, NULL);
@ -450,7 +451,7 @@ e_desk_current_get(E_Zone *zone)
return e_desk_at_xy_get(zone, zone->desk_x_current, zone->desk_y_current);
}
EAPI E_Desk *
E_API E_Desk *
e_desk_at_xy_get(E_Zone *zone, int x, int y)
{
E_OBJECT_CHECK_RETURN(zone, NULL);
@ -465,7 +466,7 @@ e_desk_at_xy_get(E_Zone *zone, int x, int y)
return zone->desks[x + (y * zone->desk_x_count)];
}
EAPI E_Desk *
E_API E_Desk *
e_desk_at_pos_get(E_Zone *zone, int pos)
{
int x, y;
@ -482,7 +483,7 @@ e_desk_at_pos_get(E_Zone *zone, int pos)
return zone->desks[x + (y * zone->desk_x_count)];
}
EAPI void
E_API void
e_desk_xy_get(E_Desk *desk, int *x, int *y)
{
E_OBJECT_CHECK(desk);
@ -492,7 +493,7 @@ e_desk_xy_get(E_Desk *desk, int *x, int *y)
if (y) *y = desk->y;
}
EAPI void
E_API void
e_desk_next(E_Zone *zone)
{
int x, y;
@ -517,7 +518,7 @@ e_desk_next(E_Zone *zone)
e_desk_show(e_desk_at_xy_get(zone, x, y));
}
EAPI void
E_API void
e_desk_prev(E_Zone *zone)
{
int x, y;
@ -541,7 +542,7 @@ e_desk_prev(E_Zone *zone)
e_desk_show(e_desk_at_xy_get(zone, x, y));
}
EAPI void
E_API void
e_desk_window_profile_set(E_Desk *desk,
const char *profile)
{
@ -559,7 +560,7 @@ e_desk_window_profile_set(E_Desk *desk,
_e_desk_event_desk_window_profile_change_free, NULL);
}
EAPI void
E_API void
e_desk_window_profile_add(int manager,
int zone,
int desk_x,
@ -579,7 +580,7 @@ e_desk_window_profile_add(int manager,
e_config->desktop_window_profiles = eina_list_append(e_config->desktop_window_profiles, cfprof);
}
EAPI void
E_API void
e_desk_window_profile_del(int manager,
int zone,
int desk_x,
@ -604,7 +605,7 @@ e_desk_window_profile_del(int manager,
}
}
EAPI void
E_API void
e_desk_window_profile_update(void)
{
const Eina_List *z, *l, *ll;
@ -654,14 +655,14 @@ e_desk_window_profile_update(void)
}
}
EAPI void
E_API void
e_desk_flip_cb_set(E_Desk_Flip_Cb cb, const void *data)
{
_e_desk_flip_cb = cb;
_e_desk_flip_data = (void*)data;
}
EAPI void
E_API void
e_desk_flip_end(E_Desk *desk)
{
E_Event_Desk_After_Show *ev;
@ -844,7 +845,7 @@ _e_desk_show_begin(E_Desk *desk, int dx, int dy)
else
ec->hidden = 0;
e_client_comp_hidden_set(ec, ec->hidden);
e_client_comp_hidden_set(ec, ec->hidden || ec->shaded);
evas_object_show(ec->frame);
}
if ((!e_config->desk_flip_animate_type) || (!desk->animate_count))
@ -881,6 +882,8 @@ _e_desk_hide_begin(E_Desk *desk, int dx, int dy)
else
{
ec->hidden = 1;
evas_object_show(ec->frame);
ec->changes.visible = 0;
evas_object_hide(ec->frame);
}
e_client_comp_hidden_set(ec, EINA_TRUE);

View File

@ -66,39 +66,39 @@ struct _E_Event_Desk_Window_Profile_Change
EINTERN int e_desk_init(void);
EINTERN int e_desk_shutdown(void);
EAPI E_Desk *e_desk_new(E_Zone *zone, int x, int y);
EAPI void e_desk_name_set(E_Desk *desk, const char *name);
EAPI void e_desk_name_add(int manager, int zone, int desk_x, int desk_y, const char *name);
EAPI void e_desk_name_del(int manager, int zone, int desk_x, int desk_y);
EAPI void e_desk_name_update(void);
EAPI void e_desk_show(E_Desk *desk);
EAPI void e_desk_deskshow(E_Zone *zone);
EAPI E_Client *e_desk_last_focused_focus(E_Desk *desk);
EAPI E_Client *e_desk_client_top_visible_get(const E_Desk *desk);
EAPI E_Desk *e_desk_current_get(E_Zone *zone);
EAPI E_Desk *e_desk_at_xy_get(E_Zone *zone, int x, int y);
EAPI E_Desk *e_desk_at_pos_get(E_Zone *zone, int pos);
EAPI void e_desk_xy_get(E_Desk *desk, int *x, int *y);
EAPI void e_desk_next(E_Zone *zone);
EAPI void e_desk_prev(E_Zone *zone);
EAPI void e_desk_row_add(E_Zone *zone);
EAPI void e_desk_row_remove(E_Zone *zone);
EAPI void e_desk_col_add(E_Zone *zone);
EAPI void e_desk_col_remove(E_Zone *zone);
EAPI void e_desk_window_profile_set(E_Desk *desk, const char *profile);
EAPI void e_desk_window_profile_add(int manager, int zone, int desk_x, int desk_y, const char *profile);
EAPI void e_desk_window_profile_del(int manager, int zone, int desk_x, int desk_y);
EAPI void e_desk_window_profile_update(void);
E_API E_Desk *e_desk_new(E_Zone *zone, int x, int y);
E_API void e_desk_name_set(E_Desk *desk, const char *name);
E_API void e_desk_name_add(int manager, int zone, int desk_x, int desk_y, const char *name);
E_API void e_desk_name_del(int manager, int zone, int desk_x, int desk_y);
E_API void e_desk_name_update(void);
E_API void e_desk_show(E_Desk *desk);
E_API void e_desk_deskshow(E_Zone *zone);
E_API E_Client *e_desk_last_focused_focus(E_Desk *desk);
E_API E_Client *e_desk_client_top_visible_get(const E_Desk *desk);
E_API E_Desk *e_desk_current_get(E_Zone *zone);
E_API E_Desk *e_desk_at_xy_get(E_Zone *zone, int x, int y);
E_API E_Desk *e_desk_at_pos_get(E_Zone *zone, int pos);
E_API void e_desk_xy_get(E_Desk *desk, int *x, int *y);
E_API void e_desk_next(E_Zone *zone);
E_API void e_desk_prev(E_Zone *zone);
E_API void e_desk_row_add(E_Zone *zone);
E_API void e_desk_row_remove(E_Zone *zone);
E_API void e_desk_col_add(E_Zone *zone);
E_API void e_desk_col_remove(E_Zone *zone);
E_API void e_desk_window_profile_set(E_Desk *desk, const char *profile);
E_API void e_desk_window_profile_add(int manager, int zone, int desk_x, int desk_y, const char *profile);
E_API void e_desk_window_profile_del(int manager, int zone, int desk_x, int desk_y);
E_API void e_desk_window_profile_update(void);
EAPI void e_desk_flip_cb_set(E_Desk_Flip_Cb cb, const void *data);
EAPI void e_desk_flip_end(E_Desk *desk);
E_API void e_desk_flip_cb_set(E_Desk_Flip_Cb cb, const void *data);
E_API void e_desk_flip_end(E_Desk *desk);
extern EAPI int E_EVENT_DESK_SHOW;
extern EAPI int E_EVENT_DESK_BEFORE_SHOW;
extern EAPI int E_EVENT_DESK_AFTER_SHOW;
extern EAPI int E_EVENT_DESK_DESKSHOW;
extern EAPI int E_EVENT_DESK_NAME_CHANGE;
extern EAPI int E_EVENT_DESK_WINDOW_PROFILE_CHANGE;
extern E_API int E_EVENT_DESK_SHOW;
extern E_API int E_EVENT_DESK_BEFORE_SHOW;
extern E_API int E_EVENT_DESK_AFTER_SHOW;
extern E_API int E_EVENT_DESK_DESKSHOW;
extern E_API int E_EVENT_DESK_NAME_CHANGE;
extern E_API int E_EVENT_DESK_WINDOW_PROFILE_CHANGE;
#endif
#endif

View File

@ -48,7 +48,7 @@ e_deskenv_shutdown(void)
return 1;
}
EAPI void
E_API void
e_deskenv_xmodmap_run(void)
{
#ifndef HAVE_WAYLAND_ONLY

View File

@ -5,6 +5,6 @@
EINTERN int e_deskenv_init(void);
EINTERN int e_deskenv_shutdown(void);
EAPI void e_deskenv_xmodmap_run(void);
E_API void e_deskenv_xmodmap_run(void);
#endif
#endif

View File

@ -41,7 +41,7 @@ static Eina_Bool _e_desklock_state = EINA_FALSE;
static void _e_desklock_ask_presentation_mode(void);
EAPI int E_EVENT_DESKLOCK = 0;
E_API int E_EVENT_DESKLOCK = 0;
EINTERN int
e_desklock_init(void)
@ -95,7 +95,7 @@ e_desklock_shutdown(void)
return 1;
}
EAPI Eina_Stringshare *
E_API Eina_Stringshare *
e_desklock_user_wallpaper_get(E_Zone *zone)
{
const E_Config_Desktop_Background *cdbg;
@ -118,7 +118,7 @@ e_desklock_user_wallpaper_get(E_Zone *zone)
return e_theme_edje_file_get("base/theme/desklock", "e/desklock/background");
}
EAPI void
E_API void
e_desklock_interface_append(E_Desklock_Interface *iface)
{
EINA_SAFETY_ON_NULL_RETURN(iface);
@ -140,7 +140,7 @@ e_desklock_interface_append(E_Desklock_Interface *iface)
}
}
EAPI void
E_API void
e_desklock_interface_remove(E_Desklock_Interface *iface)
{
E_Desklock_Interface *diface;
@ -169,35 +169,35 @@ e_desklock_interface_remove(E_Desklock_Interface *iface)
*/
}
EAPI void
E_API void
e_desklock_show_hook_add(E_Desklock_Show_Cb cb)
{
EINA_SAFETY_ON_NULL_RETURN(cb);
show_hooks = eina_list_append(show_hooks, cb);
}
EAPI void
E_API void
e_desklock_show_hook_del(E_Desklock_Show_Cb cb)
{
EINA_SAFETY_ON_NULL_RETURN(cb);
show_hooks = eina_list_remove(show_hooks, cb);
}
EAPI void
E_API void
e_desklock_hide_hook_add(E_Desklock_Hide_Cb cb)
{
EINA_SAFETY_ON_NULL_RETURN(cb);
hide_hooks = eina_list_append(hide_hooks, cb);
}
EAPI void
E_API void
e_desklock_hide_hook_del(E_Desklock_Hide_Cb cb)
{
EINA_SAFETY_ON_NULL_RETURN(cb);
hide_hooks = eina_list_remove(hide_hooks, cb);
}
EAPI int
E_API int
e_desklock_show_autolocked(void)
{
if (_e_desklock_autolock_time < 1.0)
@ -205,7 +205,7 @@ e_desklock_show_autolocked(void)
return e_desklock_show(EINA_FALSE);
}
EAPI int
E_API int
e_desklock_show(Eina_Bool suspend)
{
const Eina_List *l;
@ -326,7 +326,7 @@ fail:
return 0;
}
EAPI void
E_API void
e_desklock_hide(void)
{
Eina_List *l;
@ -392,7 +392,7 @@ e_desklock_hide(void)
e_util_env_set("E_DESKLOCK_UNLOCKED", "happened");
}
EAPI Eina_Bool
E_API Eina_Bool
e_desklock_state_get(void)
{
return _e_desklock_state;

View File

@ -42,20 +42,20 @@ struct _E_Event_Desklock
EINTERN int e_desklock_init(void);
EINTERN int e_desklock_shutdown(void);
EAPI int e_desklock_show(Eina_Bool suspend);
EAPI int e_desklock_show_autolocked(void);
EAPI void e_desklock_hide(void);
EAPI Eina_Bool e_desklock_state_get(void);
E_API int e_desklock_show(Eina_Bool suspend);
E_API int e_desklock_show_autolocked(void);
E_API void e_desklock_hide(void);
E_API Eina_Bool e_desklock_state_get(void);
EAPI void e_desklock_interface_append(E_Desklock_Interface *iface);
EAPI void e_desklock_interface_remove(E_Desklock_Interface *iface);
EAPI Eina_Stringshare *e_desklock_user_wallpaper_get(E_Zone *zone);
EAPI void e_desklock_show_hook_add(E_Desklock_Show_Cb cb);
EAPI void e_desklock_show_hook_del(E_Desklock_Show_Cb cb);
EAPI void e_desklock_hide_hook_add(E_Desklock_Hide_Cb cb);
EAPI void e_desklock_hide_hook_del(E_Desklock_Hide_Cb cb);
E_API void e_desklock_interface_append(E_Desklock_Interface *iface);
E_API void e_desklock_interface_remove(E_Desklock_Interface *iface);
E_API Eina_Stringshare *e_desklock_user_wallpaper_get(E_Zone *zone);
E_API void e_desklock_show_hook_add(E_Desklock_Show_Cb cb);
E_API void e_desklock_show_hook_del(E_Desklock_Show_Cb cb);
E_API void e_desklock_hide_hook_add(E_Desklock_Hide_Cb cb);
E_API void e_desklock_hide_hook_del(E_Desklock_Hide_Cb cb);
extern EAPI int E_EVENT_DESKLOCK;
extern E_API int E_EVENT_DESKLOCK;
static inline Eina_Bool
e_desklock_is_external(void)

View File

@ -15,6 +15,7 @@ typedef struct E_Smart_Data
Evas_Object *clip;
Evas_Object *bgpreview;
Evas_Object *layout;
Evas_Object *events;
Eina_Inlist *mirrors;
Eina_Hash *mirror_hash;
@ -40,7 +41,7 @@ typedef struct Mirror
Evas_Object *comp_object;
Evas_Object *mirror;
int x, y, w, h;
Eina_Bool frame : 1;
int ref;
Eina_Bool added : 1;
} Mirror;
@ -56,6 +57,7 @@ static Evas_Smart *_e_deskmirror_smart = NULL;
static Evas_Smart *_mirror_client_smart = NULL;
static void _e_deskmirror_mirror_setup(Mirror *m);
static void _comp_object_dirty(void *data, Evas_Object *obj, void *event_info EINA_UNUSED);
static void _comp_object_hide(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED);
static void _comp_object_show(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED);
static void _comp_object_stack(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED);
@ -65,7 +67,7 @@ static Eina_Bool
_e_deskmirror_visible_get(E_Smart_Data *sd, Mirror *m)
{
Eina_Bool visible = evas_object_visible_get(m->comp_object);
if (m->ec)
if (m->ec && (!e_object_is_del(E_OBJECT(m->ec))))
{
visible = m->ec->visible;
/* all iconic visibility changes occur with iconic flag set:
@ -101,12 +103,27 @@ _mirror_scale_set(Mirror *m, float sc)
Edje_Message_Float msg;
Mirror_Border *mb;
if (!m->frame) return;
if (!m->mirror) return;
mb = evas_object_smart_data_get(m->mirror);
if (!mb) return;
msg.val = sc;
edje_object_message_send(mb->frame, EDJE_MESSAGE_FLOAT, 0, &msg);
}
static void
_mirror_ref(Mirror *m)
{
m->ref++;
}
static void
_mirror_unref(Mirror *m)
{
m->ref--;
if (m->ref > 0) return;
free(m);
}
static void
_e_deskmirror_smart_reconfigure(E_Smart_Data *sd)
{
@ -114,6 +131,8 @@ _e_deskmirror_smart_reconfigure(E_Smart_Data *sd)
evas_object_move(sd->clip, sd->x, sd->y);
evas_object_move(sd->bgpreview, sd->x, sd->y);
evas_object_move(sd->layout, sd->x, sd->y);
if (sd->events)
evas_object_move(sd->events, sd->x, sd->y);
if (sd->resize)
{
@ -122,6 +141,8 @@ _e_deskmirror_smart_reconfigure(E_Smart_Data *sd)
evas_object_resize(sd->clip, sd->w, sd->h);
evas_object_resize(sd->bgpreview, sd->w, sd->h);
evas_object_resize(sd->layout, sd->w, sd->h);
if (sd->events)
evas_object_resize(sd->events, sd->w, sd->h);
EINA_INLIST_FOREACH(sd->mirrors, m)
_mirror_scale_set(m, (float)sd->h / (float)sd->desk->zone->h);
}
@ -162,6 +183,7 @@ _e_deskmirror_smart_del(Evas_Object *obj)
evas_object_del(sd->clip);
evas_object_del(sd->bgpreview);
evas_object_del(sd->layout);
evas_object_del(sd->events);
free(sd);
}
@ -222,65 +244,46 @@ _e_deskmirror_smart_clip_unset(Evas_Object *obj)
////////////////////////////////////////////////////////
static void
_mirror_client_theme_setup(Mirror_Border *mb)
_mirror_client_theme_setup(Mirror_Border *mb, Evas_Object *o)
{
char buf[4096];
snprintf(buf, sizeof(buf), "e/deskmirror/frame/%s", mb->m->ec->border.name);
e_theme_edje_object_set(mb->frame, "base/theme/borders", buf);
if (e_client_util_shadow_state_get(mb->m->ec))
edje_object_signal_emit(mb->frame, "e,state,shadow,on", "e");
if (e_comp_object_frame_exists(mb->m->ec->frame))
snprintf(buf, sizeof(buf), "e/deskmirror/frame/%s", mb->m->ec->border.name);
else
edje_object_signal_emit(mb->frame, "e,state,shadow,off", "e");
snprintf(buf, sizeof(buf), "e/deskmirror/frame/borderless");
e_theme_edje_object_set(o, "base/theme/borders", buf);
if (e_client_util_shadow_state_get(mb->m->ec))
edje_object_signal_emit(o, "e,state,shadow,on", "e");
else
edje_object_signal_emit(o, "e,state,shadow,off", "e");
if (mb->m->ec->focused)
edje_object_signal_emit(mb->frame, "e,state,focused", "e");
edje_object_signal_emit(o, "e,state,focused", "e");
if (mb->m->ec->shaded)
edje_object_signal_emit(mb->frame, "e,state,shaded", "e");
edje_object_signal_emit(o, "e,state,shaded", "e");
if (mb->m->ec->maximized)
edje_object_signal_emit(mb->frame, "e,action,maximize", "e");
edje_object_signal_emit(o, "e,action,maximize", "e");
if (mb->m->ec->sticky)
edje_object_signal_emit(mb->frame, "e,state,sticky", "e");
edje_object_signal_emit(o, "e,state,sticky", "e");
if (mb->m->ec->iconic)
edje_object_signal_emit(mb->frame, "e,action,iconify", "e");
edje_object_signal_emit(o, "e,action,iconify", "e");
}
static void
_e_deskmirror_mirror_frame_recalc_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
_e_deskmirror_mirror_frame_recalc_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Mirror *m = data;
Mirror_Border *mb;
if (m->frame)
if (!m->mirror) return;
mb = evas_object_smart_data_get(m->mirror);
if (mb->m->ec && (!e_object_is_del(E_OBJECT(mb->m->ec))))
{
mb = evas_object_smart_data_get(m->mirror);
if (mb->m->ec && (!e_object_is_del(E_OBJECT(mb->m->ec))))
{
if (e_comp_object_frame_exists(obj))
{
_mirror_client_theme_setup(mb);
_mirror_scale_set(mb->m, (float)mb->m->sd->h / (float)mb->m->sd->desk->zone->h);
return;
}
evas_object_smart_member_del(mb->mirror);
mb->m->mirror = mb->mirror;
mb->mirror = NULL;
mb->m->frame = 0;
}
else
mb->m->comp_object = NULL;
evas_object_del(mb->obj);
e_layout_pack(m->sd->layout, m->mirror);
_mirror_client_theme_setup(mb, mb->frame);
_mirror_scale_set(mb->m, (float)mb->m->sd->h / (float)mb->m->sd->desk->zone->h);
}
else
{
if (m->ec && (!e_object_is_del(E_OBJECT(m->ec))))
{
if (!e_comp_object_frame_exists(obj)) return;
e_layout_unpack(m->mirror);
_e_deskmirror_mirror_setup(m);
}
}
mb->m->comp_object = NULL;
}
static void
@ -323,7 +326,10 @@ _mirror_client_smart_del(Evas_Object *obj)
evas_object_smart_callback_del_full(mb->m->ec->frame, "shadow_change", _mirror_client_shadow_change, mb->frame);
}
evas_object_del(mb->frame);
mb->frame = NULL;
evas_object_del(mb->mirror);
mb->mirror = NULL;
_mirror_unref(mb->m);
free(mb);
}
@ -456,15 +462,17 @@ static void
_e_deskmirror_mirror_del_hash(Mirror *m)
{
m->sd->mirrors = eina_inlist_remove(m->sd->mirrors, EINA_INLIST_GET(m));
evas_object_smart_callback_del_full(m->comp_object, "dirty", _comp_object_dirty, m);
evas_object_smart_callback_del_full(m->comp_object, "frame_recalc_done", _e_deskmirror_mirror_frame_recalc_cb, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
evas_object_del(m->mirror);
m->mirror = NULL;
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_comp_object_show, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_HIDE, (Evas_Object_Event_Cb)_comp_object_hide, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESTACK, (Evas_Object_Event_Cb)_comp_object_stack, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESIZE, (Evas_Object_Event_Cb)_comp_object_configure, m);
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_MOVE, (Evas_Object_Event_Cb)_comp_object_configure, m);
free(m);
_mirror_unref(m);
}
static Evas_Object *
@ -477,9 +485,10 @@ _mirror_client_new(Mirror *m)
o = evas_object_smart_add(m->sd->e, _mirror_client_smart);
mb = evas_object_smart_data_get(o);
mb->m = m;
_mirror_ref(m);
mb->frame = edje_object_add(m->sd->e);
evas_object_name_set(mb->frame, "mirror_border");
_mirror_client_theme_setup(mb);
_mirror_client_theme_setup(mb, mb->frame);
if (m->comp_object)
{
e_comp_object_signal_callback_add(mb->m->comp_object, "*", "*", _mirror_client_signal_cb, mb->frame);
@ -500,10 +509,9 @@ _e_deskmirror_mirror_setup(Mirror *m)
{
if (!m->mirror) return;
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
if (m->ec && e_comp_object_frame_exists(m->comp_object))
if (m->ec)
{
m->mirror = _mirror_client_new(m);
m->frame = 1;
_mirror_scale_set(m, (double)m->sd->h / (double)m->sd->desk->zone->h);
}
else
@ -521,6 +529,8 @@ _e_deskmirror_mirror_setup(Mirror *m)
if (!m->added)
evas_object_smart_callback_call(m->sd->obj, "mirror_add", m->mirror);
}
else
e_layout_child_raise(m->mirror);
m->added = 1;
}
@ -531,9 +541,14 @@ _comp_object_check(Mirror *m)
evas_object_geometry_get(m->comp_object, NULL, NULL, &w, &h);
if ((w < 2) || (h < 2)) return EINA_FALSE;
m->mirror = e_comp_object_util_mirror_add(m->comp_object);
if (!m->mirror)
{
m->mirror = e_comp_object_util_mirror_add(m->comp_object);
if (!m->mirror) return EINA_FALSE;
}
evas_object_smart_callback_del(m->comp_object, "dirty", _comp_object_dirty);
if (m->added) return EINA_TRUE;
evas_object_name_set(m->mirror, "m->mirror");
if (m->mirror) evas_object_layer_set(m->mirror, evas_object_layer_get(m->comp_object));
_e_deskmirror_mirror_setup(m);
return EINA_TRUE;
}
@ -559,8 +574,6 @@ _comp_object_stack(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj, void *event
{
Evas_Object *comp_object;
if (m->ec && m->ec->layer_block) return; //ignore layer blockers
if (!m->mirror)
{
if (!_comp_object_check(m)) return;
@ -591,6 +604,12 @@ _comp_object_configure(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNU
_e_deskmirror_mirror_reconfigure(m);
}
static void
_comp_object_dirty(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
_comp_object_check(data);
}
static Mirror *
_e_deskmirror_mirror_add(E_Smart_Data *sd, Evas_Object *obj)
{
@ -635,13 +654,15 @@ _e_deskmirror_mirror_add(E_Smart_Data *sd, Evas_Object *obj)
m->ec = ec;
m->sd = sd;
m->mirror = o;
if (o) evas_object_layer_set(o, evas_object_layer_get(obj));
m->ref = 1;
evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_comp_object_show, m);
evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, (Evas_Object_Event_Cb)_comp_object_hide, m);
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESTACK, (Evas_Object_Event_Cb)_comp_object_stack, m);
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, (Evas_Object_Event_Cb)_comp_object_configure, m);
evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, (Evas_Object_Event_Cb)_comp_object_configure, m);
evas_object_smart_callback_add(obj, "frame_recalc_done", _e_deskmirror_mirror_frame_recalc_cb, m);
if (ec && (!ec->redirected) && (!ec->new_client) && e_pixmap_usable_get(ec->pixmap))
evas_object_smart_callback_add(obj, "dirty", _comp_object_dirty, m);
sd->mirrors = eina_inlist_append(sd->mirrors, EINA_INLIST_GET(m));
eina_hash_add(sd->mirror_hash, &obj, m);
_e_deskmirror_mirror_setup(m);
@ -668,7 +689,7 @@ _client_desk_set(E_Smart_Data *sd, int type EINA_UNUSED, E_Event_Client_Desk_Set
if ((ev->desk == sd->desk) && (!ev->ec->sticky))
eina_hash_del_by_key(sd->mirror_hash, &ev->ec->frame);
}
if (sd->desk == ev->ec->desk)
if ((!m) && (sd->desk == ev->ec->desk))
_e_deskmirror_mirror_add(sd, ev->ec->frame);
return ECORE_CALLBACK_RENEW;
}
@ -698,7 +719,7 @@ _client_property(E_Smart_Data *sd, int type EINA_UNUSED, E_Event_Client_Property
}
/* externally accessible functions */
EAPI Evas_Object *
E_API Evas_Object *
e_deskmirror_add(E_Desk *desk, Eina_Bool pager, Eina_Bool taskbar)
{
E_Smart_Data *sd;
@ -715,6 +736,14 @@ e_deskmirror_add(E_Desk *desk, Eina_Bool pager, Eina_Bool taskbar)
sd->desk = desk;
sd->mirror_hash = eina_hash_pointer_new((Eina_Free_Cb)_e_deskmirror_mirror_del_hash);
sd->desk_delfn = e_object_delfn_add(E_OBJECT(desk), (Ecore_End_Cb)_e_deskmirror_delfn, sd);
if (pager || taskbar)
{
sd->events = evas_object_rectangle_add(e);
evas_object_color_set(sd->events, 0, 0, 0, 0);
evas_object_clip_set(sd->events, sd->clip);
evas_object_smart_member_add(sd->events, o);
evas_object_show(sd->events);
}
sd->bgpreview = e_widget_bgpreview_desk_add(e, desk->zone, desk->x, desk->y);
evas_object_pass_events_set(sd->bgpreview, 1);
evas_object_clip_set(sd->bgpreview, sd->clip);
@ -746,7 +775,7 @@ e_deskmirror_add(E_Desk *desk, Eina_Bool pager, Eina_Bool taskbar)
return o;
}
EAPI Evas_Object *
E_API Evas_Object *
e_deskmirror_mirror_find(Evas_Object *deskmirror, Evas_Object *comp_object)
{
Mirror *m;
@ -758,7 +787,7 @@ e_deskmirror_mirror_find(Evas_Object *deskmirror, Evas_Object *comp_object)
return m ? m->mirror : NULL;
}
EAPI Eina_List *
E_API Eina_List *
e_deskmirror_mirror_list(Evas_Object *deskmirror)
{
Eina_List *l = NULL;
@ -782,7 +811,7 @@ _mirror_copy_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_
evas_object_smart_callback_del_full(data, "shadow_change", _mirror_client_shadow_change, obj);
}
EAPI Evas_Object *
E_API Evas_Object *
e_deskmirror_mirror_copy(Evas_Object *obj)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
@ -791,60 +820,34 @@ e_deskmirror_mirror_copy(Evas_Object *obj)
{
Evas_Object *o, *oo;
Edje_Message_Float msg;
char buf[1024];
Mirror_Border *mb;
mb = evas_object_smart_data_get(obj);
o = edje_object_add(evas_object_evas_get(obj));
snprintf(buf, sizeof(buf), "e/deskmirror/frame/%s", mb->m->ec->border.name);
e_theme_edje_object_set(o, "base/theme/borders", buf);
if (e_client_util_shadow_state_get(mb->m->ec))
edje_object_signal_emit(o, "e,state,shadow,on", "e");
else
edje_object_signal_emit(o, "e,state,shadow,off", "e");
_mirror_client_theme_setup(mb, o);
if (mb->m->comp_object)
{
e_comp_object_signal_callback_add(mb->m->comp_object, "*", "*", _mirror_client_signal_cb, o);
evas_object_smart_callback_add(mb->m->comp_object, "shadow_change", _mirror_client_shadow_change, o);
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _mirror_copy_del, mb->m->comp_object);
}
if (mb->m->ec->focused)
edje_object_signal_emit(o, "e,state,focused", "e");
if (mb->m->ec->shaded)
edje_object_signal_emit(o, "e,state,shaded", "e");
if (mb->m->ec->maximized)
edje_object_signal_emit(o, "e,action,maximize", "e");
if (mb->m->ec->sticky)
edje_object_signal_emit(o, "e,state,sticky", "e");
if (mb->m->ec->iconic)
edje_object_signal_emit(o, "e,action,iconify", "e");
msg.val = mb->m->sd->h / mb->m->sd->desk->zone->h;
edje_object_message_send(o, EDJE_MESSAGE_FLOAT, 0, &msg);
oo = e_comp_object_util_mirror_add(mb->m->comp_object);
edje_object_part_swallow(o, "e.swallow.client", oo);
edje_object_part_text_set(o, "e.text.title", e_client_util_name_get(mb->m->ec));
if (e_comp_object_frame_exists(mb->m->ec->frame))
edje_object_part_text_set(o, "e.text.title", e_client_util_name_get(mb->m->ec));
e_comp_object_util_del_list_append(o, oo);
return o;
}
else if (!e_util_strcmp(evas_object_type_get(obj), "image"))
{
if (!e_util_strcmp(evas_object_name_get(obj), "m->mirror"))
{
E_Client *ec;
ec = evas_object_data_get(obj, "E_Client");
if (!ec) return NULL;
return e_comp_object_util_mirror_add(ec->frame);
}
else
return e_comp_object_util_mirror_add(obj);
}
return e_comp_object_util_mirror_add(obj);
CRI("NOT A DESKMIRROR CLIENT");
return NULL;
}
EAPI void
E_API void
e_deskmirror_coord_canvas_to_virtual(Evas_Object *obj, Evas_Coord cx, Evas_Coord cy, Evas_Coord *vx, Evas_Coord *vy)
{
API_ENTRY(obj);
@ -852,7 +855,7 @@ e_deskmirror_coord_canvas_to_virtual(Evas_Object *obj, Evas_Coord cx, Evas_Coord
e_layout_coord_canvas_to_virtual(sd->layout, cx, cy, vx, vy);
}
EAPI void
E_API void
e_deskmirror_coord_virtual_to_canvas(Evas_Object *obj, Evas_Coord vx, Evas_Coord vy, Evas_Coord *cx, Evas_Coord *cy)
{
API_ENTRY(obj);
@ -860,14 +863,14 @@ e_deskmirror_coord_virtual_to_canvas(Evas_Object *obj, Evas_Coord vx, Evas_Coord
e_layout_coord_virtual_to_canvas(sd->layout, vx, vy, cx, cy);
}
EAPI E_Desk *
E_API E_Desk *
e_deskmirror_desk_get(Evas_Object *obj)
{
API_ENTRY(obj) NULL;
return sd->desk;
}
EAPI void
E_API void
e_deskmirror_util_wins_print(Evas_Object *obj)
{
E_Smart_Data *sd;

View File

@ -1,14 +1,14 @@
#ifndef E_WIDGET_DESKMIRROR_H
#define E_WIDGET_DESKMIRROR_H
EAPI Evas_Object *e_deskmirror_add(E_Desk *desk, Eina_Bool pager, Eina_Bool taskbar);
EAPI Evas_Object *e_deskmirror_mirror_find(Evas_Object *deskmirror, Evas_Object *comp_object);
EAPI Eina_List *e_deskmirror_mirror_list(Evas_Object *deskmirror);
EAPI Evas_Object *e_deskmirror_mirror_copy(Evas_Object *obj);
EAPI void e_deskmirror_coord_canvas_to_virtual(Evas_Object *obj, Evas_Coord cx, Evas_Coord cy, Evas_Coord *vx, Evas_Coord *vy);
EAPI void e_deskmirror_coord_virtual_to_canvas(Evas_Object *obj, Evas_Coord vx, Evas_Coord vy, Evas_Coord *cx, Evas_Coord *cy);
EAPI E_Desk *e_deskmirror_desk_get(Evas_Object *obj);
EAPI void e_deskmirror_util_wins_print(Evas_Object *obj);
E_API Evas_Object *e_deskmirror_add(E_Desk *desk, Eina_Bool pager, Eina_Bool taskbar);
E_API Evas_Object *e_deskmirror_mirror_find(Evas_Object *deskmirror, Evas_Object *comp_object);
E_API Eina_List *e_deskmirror_mirror_list(Evas_Object *deskmirror);
E_API Evas_Object *e_deskmirror_mirror_copy(Evas_Object *obj);
E_API void e_deskmirror_coord_canvas_to_virtual(Evas_Object *obj, Evas_Coord cx, Evas_Coord cy, Evas_Coord *vx, Evas_Coord *vy);
E_API void e_deskmirror_coord_virtual_to_canvas(Evas_Object *obj, Evas_Coord vx, Evas_Coord vy, Evas_Coord *cx, Evas_Coord *cy);
E_API E_Desk *e_deskmirror_desk_get(Evas_Object *obj);
E_API void e_deskmirror_util_wins_print(Evas_Object *obj);
//#define DESKMIRROR_TEST
#endif

View File

@ -95,7 +95,7 @@ _e_util_icon_save(Ecore_X_Icon *icon, const char *filename)
}
/* externally accessible functions */
EAPI Efreet_Desktop *
E_API Efreet_Desktop *
e_desktop_client_create(E_Client *ec)
{
Efreet_Desktop *desktop = NULL;
@ -183,7 +183,7 @@ e_desktop_client_create(E_Client *ec)
return desktop;
}
EAPI E_Desktop_Edit *
E_API E_Desktop_Edit *
e_desktop_border_edit(E_Comp *c, E_Client *ec)
{
E_Desktop_Edit *editor;
@ -228,7 +228,7 @@ e_desktop_border_edit(E_Comp *c, E_Client *ec)
return editor;
}
EAPI E_Desktop_Edit *
E_API E_Desktop_Edit *
e_desktop_edit(E_Comp *c, Efreet_Desktop *desktop)
{
E_Desktop_Edit *editor;
@ -528,6 +528,7 @@ _e_desktop_edit_basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialo
cfdata->editor->saved = efreet_desktop_save_as
(cfdata->desktop, cfdata->orig_path);
}
e_int_menus_cache_clear();
return 1;
}
@ -846,6 +847,7 @@ _e_desktop_editor_cb_icon_select(void *data1, void *data2)
dia = e_dialog_new(cfdata->editor->cfd->comp, "E", "_eap_icon_select_dialog");
if (!dia) return;
e_dialog_resizable_set(dia, 1);
e_object_del_attach_func_set(E_OBJECT(dia),
_e_desktop_edit_cb_icon_select_destroy);
snprintf(buf, sizeof(buf), _("Select an Icon for '%s'"), ecore_file_file_get(cfdata->orig_path));

View File

@ -32,9 +32,9 @@ struct _E_Desktop_Edit
E_Config_Dialog *cfd;
};
EAPI Efreet_Desktop *e_desktop_client_create(E_Client *ec);
EAPI E_Desktop_Edit *e_desktop_border_edit(E_Comp *c, E_Client *ec);
EAPI E_Desktop_Edit *e_desktop_edit(E_Comp *c, Efreet_Desktop *desktop);
E_API Efreet_Desktop *e_desktop_client_create(E_Client *ec);
E_API E_Desktop_Edit *e_desktop_border_edit(E_Comp *c, E_Client *ec);
E_API E_Desktop_Edit *e_desktop_edit(E_Comp *c, Efreet_Desktop *desktop);
#endif
#endif

View File

@ -75,19 +75,19 @@ _e_dialog_internal_new(E_Comp *c, const char *name, const char *class, int dialo
return dia;
}
EAPI E_Dialog *
E_API E_Dialog *
e_dialog_new(E_Comp *c, const char *name, const char *class)
{
return _e_dialog_internal_new(c, name, class, 1);
}
EAPI E_Dialog *
E_API E_Dialog *
e_dialog_normal_win_new(E_Comp *c, const char *name, const char *class)
{
return _e_dialog_internal_new(c, name, class, 0);
}
EAPI void
E_API void
e_dialog_button_add(E_Dialog *dia, const char *label, const char *icon, E_Dialog_Cb func, void *data)
{
Evas_Object *o;
@ -98,7 +98,7 @@ e_dialog_button_add(E_Dialog *dia, const char *label, const char *icon, E_Dialog
dia->buttons = eina_list_append(dia->buttons, o);
}
EAPI int
E_API int
e_dialog_button_focus_num(E_Dialog *dia, int button)
{
Evas_Object *o;
@ -108,7 +108,7 @@ e_dialog_button_focus_num(E_Dialog *dia, int button)
return 1;
}
EAPI int
E_API int
e_dialog_button_disable_num_set(E_Dialog *dia, int button, int disabled)
{
Evas_Object *o;
@ -118,7 +118,7 @@ e_dialog_button_disable_num_set(E_Dialog *dia, int button, int disabled)
return 1;
}
EAPI int
E_API int
e_dialog_button_disable_num_get(E_Dialog *dia, int button)
{
Evas_Object *o;
@ -129,13 +129,13 @@ e_dialog_button_disable_num_get(E_Dialog *dia, int button)
return ret;
}
EAPI void
E_API void
e_dialog_title_set(E_Dialog *dia, const char *title)
{
e_win_title_set(dia->win, title);
}
EAPI void
E_API void
e_dialog_text_set(E_Dialog *dia, const char *text)
{
if (!dia->text_object)
@ -152,7 +152,7 @@ e_dialog_text_set(E_Dialog *dia, const char *text)
edje_object_part_text_set(dia->text_object, "e.textblock.message", text);
}
EAPI void
E_API void
e_dialog_icon_set(E_Dialog *dia, const char *icon, Evas_Coord size)
{
if (!icon)
@ -175,7 +175,11 @@ e_dialog_icon_set(E_Dialog *dia, const char *icon, Evas_Coord size)
evas_object_show(dia->icon_object);
}
if (!e_util_icon_theme_set(dia->icon_object, icon))
e_icon_file_edje_set(dia->icon_object, icon, "icon");
if (!e_icon_file_edje_set(dia->icon_object, icon, "icon"))
{
E_FREE_FUNC(dia->icon_object, evas_object_del);
return;
}
evas_object_size_hint_min_set(dia->icon_object, size * e_scale, size * e_scale);
edje_object_signal_emit(dia->bg_object, "e,state,icon", "e");
edje_object_signal_emit(dia->bg_object, "e,icon,enabled", "e");
@ -183,7 +187,7 @@ e_dialog_icon_set(E_Dialog *dia, const char *icon, Evas_Coord size)
edje_object_message_signal_process(dia->bg_object);
}
EAPI void
E_API void
e_dialog_border_icon_set(E_Dialog *dia, const char *icon)
{
E_Client *ec;
@ -193,7 +197,7 @@ e_dialog_border_icon_set(E_Dialog *dia, const char *icon)
eina_stringshare_replace(&ec->internal_icon, icon);
}
EAPI void
E_API void
e_dialog_content_set(E_Dialog *dia, Evas_Object *obj, Evas_Coord minw, Evas_Coord minh)
{
int mw, mh;
@ -209,7 +213,7 @@ e_dialog_content_set(E_Dialog *dia, Evas_Object *obj, Evas_Coord minw, Evas_Coor
evas_object_show(obj);
}
EAPI void
E_API void
e_dialog_resizable_set(E_Dialog *dia, int resizable)
{
dia->resizable = resizable;
@ -230,7 +234,7 @@ e_dialog_resizable_set(E_Dialog *dia, int resizable)
}
}
EAPI void
E_API void
e_dialog_parent_set(E_Dialog *dia, E_Win *win)
{
if (!dia) return;
@ -243,7 +247,7 @@ e_dialog_parent_set(E_Dialog *dia, E_Win *win)
ecore_evas_modal_set(dia->win->ecore_evas, !!win);
}
EAPI void
E_API void
e_dialog_show(E_Dialog *dia)
{
Evas_Coord mw, mh;

View File

@ -28,20 +28,20 @@ struct _E_Dialog
typedef void (*E_Dialog_Cb)(void *data, E_Dialog *dia);
EAPI E_Dialog *e_dialog_new (E_Comp *c, const char *name, const char *class);
EAPI E_Dialog *e_dialog_normal_win_new (E_Comp *c, const char *name, const char *class);
EAPI void e_dialog_parent_set(E_Dialog *dia, E_Win *win);
EAPI void e_dialog_button_add (E_Dialog *dia, const char *label, const char *icon, E_Dialog_Cb func, void *data);
EAPI int e_dialog_button_focus_num (E_Dialog *dia, int button);
EAPI int e_dialog_button_disable_num_set (E_Dialog *dia, int button, int disabled);
EAPI int e_dialog_button_disable_num_get (E_Dialog *dia, int button);
EAPI void e_dialog_title_set (E_Dialog *dia, const char *title);
EAPI void e_dialog_text_set (E_Dialog *dia, const char *text);
EAPI void e_dialog_icon_set (E_Dialog *dia, const char *icon, Evas_Coord size);
EAPI void e_dialog_border_icon_set (E_Dialog *dia, const char *icon);
EAPI void e_dialog_content_set (E_Dialog *dia, Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
EAPI void e_dialog_resizable_set (E_Dialog *dia, int resizable);
EAPI void e_dialog_show (E_Dialog *dia);
E_API E_Dialog *e_dialog_new (E_Comp *c, const char *name, const char *class);
E_API E_Dialog *e_dialog_normal_win_new (E_Comp *c, const char *name, const char *class);
E_API void e_dialog_parent_set(E_Dialog *dia, E_Win *win);
E_API void e_dialog_button_add (E_Dialog *dia, const char *label, const char *icon, E_Dialog_Cb func, void *data);
E_API int e_dialog_button_focus_num (E_Dialog *dia, int button);
E_API int e_dialog_button_disable_num_set (E_Dialog *dia, int button, int disabled);
E_API int e_dialog_button_disable_num_get (E_Dialog *dia, int button);
E_API void e_dialog_title_set (E_Dialog *dia, const char *title);
E_API void e_dialog_text_set (E_Dialog *dia, const char *text);
E_API void e_dialog_icon_set (E_Dialog *dia, const char *icon, Evas_Coord size);
E_API void e_dialog_border_icon_set (E_Dialog *dia, const char *icon);
E_API void e_dialog_content_set (E_Dialog *dia, Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
E_API void e_dialog_resizable_set (E_Dialog *dia, int resizable);
E_API void e_dialog_show (E_Dialog *dia);
#endif
#endif

View File

@ -170,13 +170,13 @@ e_dnd_shutdown(void)
return 1;
}
EAPI E_Drag *
E_API E_Drag *
e_drag_current_get(void)
{
return _drag_current;
}
EAPI E_Drag *
E_API E_Drag *
e_drag_new(E_Comp *comp, int x, int y,
const char **types, unsigned int num_types,
void *data, int size,
@ -226,13 +226,13 @@ e_drag_new(E_Comp *comp, int x, int y,
return drag;
}
EAPI Evas *
E_API Evas *
e_drag_evas_get(const E_Drag *drag)
{
return drag->evas;
}
EAPI void
E_API void
e_drag_object_set(E_Drag *drag, Evas_Object *object)
{
EINA_SAFETY_ON_NULL_RETURN(object);
@ -248,7 +248,7 @@ e_drag_object_set(E_Drag *drag, Evas_Object *object)
evas_object_pass_events_set(drag->comp_object, 1);
}
EAPI void
E_API void
e_drag_move(E_Drag *drag, int x, int y)
{
if ((drag->x == x) && (drag->y == y)) return;
@ -258,7 +258,7 @@ e_drag_move(E_Drag *drag, int x, int y)
evas_object_move(drag->comp_object, x, y);
}
EAPI void
E_API void
e_drag_resize(E_Drag *drag, int w, int h)
{
if ((drag->w == w) && (drag->h == h)) return;
@ -268,13 +268,13 @@ e_drag_resize(E_Drag *drag, int w, int h)
evas_object_resize(drag->comp_object, w, h);
}
EAPI int
E_API int
e_dnd_active(void)
{
return _drag_win != 0;
}
EAPI int
E_API int
e_drag_start(E_Drag *drag, int x, int y)
{
const Eina_List *l;
@ -285,6 +285,8 @@ e_drag_start(E_Drag *drag, int x, int y)
_drag_win = ecore_x_window_input_new(drag->comp->win,
drag->comp->man->x, drag->comp->man->y,
drag->comp->man->w, drag->comp->man->h);
ecore_event_window_register(_drag_win, drag->comp->ee, drag->comp->evas,
NULL, NULL, NULL, NULL);
ecore_x_window_show(_drag_win);
#endif
_drag_win_root = drag->comp->man->root;
@ -303,6 +305,7 @@ e_drag_start(E_Drag *drag, int x, int y)
evas_object_move(drag->comp_object, drag->x, drag->y);
evas_object_resize(drag->comp_object, drag->w, drag->h);
drag->visible = 1;
evas_object_show(drag->comp_object);
drag->type = E_DRAG_INTERNAL;
drag->dx = x - drag->x;
@ -330,7 +333,7 @@ e_drag_start(E_Drag *drag, int x, int y)
return 1;
}
EAPI int
E_API int
e_drag_xdnd_start(E_Drag *drag, int x, int y)
{
#ifndef HAVE_WAYLAND_ONLY
@ -367,6 +370,7 @@ e_drag_xdnd_start(E_Drag *drag, int x, int y)
evas_object_move(drag->comp_object, drag->x, drag->y);
evas_object_resize(drag->comp_object, drag->w, drag->h);
drag->visible = 1;
evas_object_show(drag->comp_object);
drag->type = E_DRAG_XDND;
drag->dx = x - drag->x;
@ -400,14 +404,14 @@ e_drag_xdnd_start(E_Drag *drag, int x, int y)
return 1;
}
EAPI void
E_API void
e_drop_handler_xds_set(E_Drop_Handler *handler, Eina_Bool (*cb)(void *data, const char *type))
{
handler->cb.xds = cb;
}
/* should only be used for windows */
EAPI void
E_API void
e_drop_xds_update(Eina_Bool enable, const char *value)
{
#ifndef HAVE_WAYLAND_ONLY
@ -441,7 +445,7 @@ e_drop_xds_update(Eina_Bool enable, const char *value)
#endif
}
EAPI E_Drop_Handler *
E_API E_Drop_Handler *
e_drop_handler_add(E_Object *obj,
void *data,
void (*enter_cb)(void *data, const char *type, void *event),
@ -477,7 +481,7 @@ e_drop_handler_add(E_Object *obj,
return handler;
}
EAPI void
E_API void
e_drop_handler_geometry_set(E_Drop_Handler *handler, int x, int y, int w, int h)
{
handler->x = x;
@ -486,7 +490,7 @@ e_drop_handler_geometry_set(E_Drop_Handler *handler, int x, int y, int w, int h)
handler->h = h;
}
EAPI int
E_API int
e_drop_inside(const E_Drop_Handler *handler, int x, int y)
{
int dx, dy;
@ -497,7 +501,7 @@ e_drop_inside(const E_Drop_Handler *handler, int x, int y)
return E_INSIDE(x, y, handler->x, handler->y, handler->w, handler->h);
}
EAPI void
E_API void
e_drop_handler_del(E_Drop_Handler *handler)
{
unsigned int i;
@ -523,7 +527,7 @@ e_drop_handler_del(E_Drop_Handler *handler)
free(handler);
}
EAPI int
E_API int
e_drop_xdnd_register_set(Ecore_Window win, int reg)
{
if (e_comp_get(NULL)->comp_type != E_PIXMAP_TYPE_X) return 0;
@ -547,7 +551,7 @@ e_drop_xdnd_register_set(Ecore_Window win, int reg)
return 1;
}
EAPI void
E_API void
e_drop_handler_responsive_set(E_Drop_Handler *handler)
{
Ecore_X_Window hwin = _e_drag_win_get(handler, 1);
@ -557,7 +561,7 @@ e_drop_handler_responsive_set(E_Drop_Handler *handler)
eina_hash_set(_drop_handlers_responsives, &hwin, eina_list_append(l, handler));
}
EAPI int
E_API int
e_drop_handler_responsive_get(const E_Drop_Handler *handler)
{
Ecore_X_Window hwin = _e_drag_win_get(handler, 1);
@ -567,32 +571,32 @@ e_drop_handler_responsive_get(const E_Drop_Handler *handler)
return l && eina_list_data_find(l, handler);
}
EAPI void
E_API void
e_drop_handler_action_set(unsigned int action)
{
_action = action;
}
EAPI unsigned int
E_API unsigned int
e_drop_handler_action_get(void)
{
return _action;
}
EAPI void
E_API void
e_drag_key_down_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, Ecore_Event_Key *e))
{
drag->cb.key_down = func;
}
EAPI void
E_API void
e_drag_key_up_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, Ecore_Event_Key *e))
{
drag->cb.key_up = func;
}
/* from ecore_x_selection.c */
EAPI Eina_List *
E_API Eina_List *
e_dnd_util_text_uri_list_convert(char *data, int size)
{
char *tmp;
@ -1153,6 +1157,7 @@ _e_drag_free(E_Drag *drag)
eina_stringshare_del(drag->types[i]);
free(drag);
#ifndef HAVE_WAYLAND_ONLY
ecore_event_window_unregister(_drag_win);
ecore_x_window_free(_drag_win);
ecore_x_window_shadow_tree_flush();
#endif

View File

@ -111,29 +111,29 @@ struct E_Dnd_X_Moz_Url
EINTERN int e_dnd_init(void);
EINTERN int e_dnd_shutdown(void);
EAPI int e_dnd_active(void);
E_API int e_dnd_active(void);
EAPI E_Drag *e_drag_current_get(void);
E_API E_Drag *e_drag_current_get(void);
/* x and y are the top left coords of the object that is to be dragged */
EAPI E_Drag *e_drag_new(E_Comp *comp, int x, int y,
E_API E_Drag *e_drag_new(E_Comp *comp, int x, int y,
const char **types, unsigned int num_types,
void *data, int size,
void *(*convert_cb)(E_Drag * drag, const char *type),
void (*finished_cb)(E_Drag *drag, int dropped));
EAPI Evas *e_drag_evas_get(const E_Drag *drag);
EAPI void e_drag_object_set(E_Drag *drag, Evas_Object *object);
EAPI void e_drag_move(E_Drag *drag, int x, int y);
EAPI void e_drag_resize(E_Drag *drag, int w, int h);
EAPI void e_drag_key_down_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, Ecore_Event_Key *e));
EAPI void e_drag_key_up_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, Ecore_Event_Key *e));
E_API Evas *e_drag_evas_get(const E_Drag *drag);
E_API void e_drag_object_set(E_Drag *drag, Evas_Object *object);
E_API void e_drag_move(E_Drag *drag, int x, int y);
E_API void e_drag_resize(E_Drag *drag, int w, int h);
E_API void e_drag_key_down_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, Ecore_Event_Key *e));
E_API void e_drag_key_up_cb_set(E_Drag *drag, void (*func)(E_Drag *drag, Ecore_Event_Key *e));
/* x and y are the coords where the mouse is when dragging starts */
EAPI int e_drag_start(E_Drag *drag, int x, int y);
EAPI int e_drag_xdnd_start(E_Drag *drag, int x, int y);
E_API int e_drag_start(E_Drag *drag, int x, int y);
E_API int e_drag_xdnd_start(E_Drag *drag, int x, int y);
EAPI void e_drop_xds_update(Eina_Bool enable, const char *value);
EAPI void e_drop_handler_xds_set(E_Drop_Handler *handler, Eina_Bool (*cb)(void *data, const char *type));
EAPI E_Drop_Handler *e_drop_handler_add(E_Object *obj,
E_API void e_drop_xds_update(Eina_Bool enable, const char *value);
E_API void e_drop_handler_xds_set(E_Drop_Handler *handler, Eina_Bool (*cb)(void *data, const char *type));
E_API E_Drop_Handler *e_drop_handler_add(E_Object *obj,
void *data,
void (*enter_cb)(void *data, const char *type, void *event),
void (*move_cb)(void *data, const char *type, void *event),
@ -141,15 +141,15 @@ EAPI E_Drop_Handler *e_drop_handler_add(E_Object *obj,
void (*drop_cb)(void *data, const char *type, void *event),
const char **types, unsigned int num_types,
int x, int y, int w, int h);
EAPI void e_drop_handler_geometry_set(E_Drop_Handler *handler, int x, int y, int w, int h);
EAPI int e_drop_inside(const E_Drop_Handler *handler, int x, int y);
EAPI void e_drop_handler_del(E_Drop_Handler *handler);
EAPI int e_drop_xdnd_register_set(Ecore_Window win, int reg);
EAPI void e_drop_handler_responsive_set(E_Drop_Handler *handler);
EAPI int e_drop_handler_responsive_get(const E_Drop_Handler *handler);
EAPI void e_drop_handler_action_set(unsigned int action);
EAPI unsigned int e_drop_handler_action_get(void);
EAPI Eina_List *e_dnd_util_text_uri_list_convert(char *data, int size);
E_API void e_drop_handler_geometry_set(E_Drop_Handler *handler, int x, int y, int w, int h);
E_API int e_drop_inside(const E_Drop_Handler *handler, int x, int y);
E_API void e_drop_handler_del(E_Drop_Handler *handler);
E_API int e_drop_xdnd_register_set(Ecore_Window win, int reg);
E_API void e_drop_handler_responsive_set(E_Drop_Handler *handler);
E_API int e_drop_handler_responsive_get(const E_Drop_Handler *handler);
E_API void e_drop_handler_action_set(unsigned int action);
E_API unsigned int e_drop_handler_action_get(void);
E_API Eina_List *e_dnd_util_text_uri_list_convert(char *data, int size);
static inline void

View File

@ -14,7 +14,7 @@ static unsigned int _e_dpms_timeout_suspend = 0;
static unsigned int _e_dpms_timeout_off = 0;
static int _e_dpms_enabled = EINA_FALSE;
EAPI void
E_API void
e_dpms_update(void)
{
unsigned int standby = 0, suspend = 0, off = 0;
@ -65,7 +65,7 @@ e_dpms_update(void)
#endif
}
EAPI void
E_API void
e_dpms_force_update(void)
{
unsigned int standby = 0, suspend = 0, off = 0;

View File

@ -6,8 +6,8 @@
EINTERN int e_dpms_init(void);
EINTERN int e_dpms_shutdown(void);
EAPI void e_dpms_update(void);
EAPI void e_dpms_force_update(void);
E_API void e_dpms_update(void);
E_API void e_dpms_force_update(void);
#endif
#endif

View File

@ -61,7 +61,7 @@ static int _e_entry_smart_use = 0;
* @param evas the evas where the entry object should be added
* @return Returns the new entry object
*/
EAPI Evas_Object *
E_API Evas_Object *
e_entry_add(Evas *evas)
{
if (!_e_entry_smart)
@ -101,7 +101,7 @@ e_entry_add(Evas *evas)
* @param entry an entry object
* @param text the text to set
*/
EAPI void
E_API void
e_entry_text_set(Evas_Object *entry, const char *_text)
{
E_Entry_Smart_Data *sd;
@ -139,7 +139,7 @@ e_entry_text_set(Evas_Object *entry, const char *_text)
* @param entry an entry object
* @return Returns the text of the entry object
*/
EAPI const char *
E_API const char *
e_entry_text_get(Evas_Object *entry)
{
E_Entry_Smart_Data *sd;
@ -164,7 +164,7 @@ e_entry_text_get(Evas_Object *entry)
*
* @param entry an entry object
*/
EAPI void
E_API void
e_entry_clear(Evas_Object *entry)
{
if (evas_object_smart_smart_get(entry) != _e_entry_smart) SMARTERRNR();
@ -176,7 +176,7 @@ e_entry_clear(Evas_Object *entry)
*
* @param entry an entry object
*/
EAPI void
E_API void
e_entry_select_all(Evas_Object *entry)
{
E_Entry_Smart_Data *sd;
@ -195,7 +195,7 @@ e_entry_select_all(Evas_Object *entry)
* @param entry an entry object
* @param password_mode 1 to turn on password mode, 0 to turn it off
*/
EAPI void
E_API void
e_entry_password_set(Evas_Object *entry, int password_mode)
{
E_Entry_Smart_Data *sd;
@ -239,7 +239,7 @@ e_entry_password_set(Evas_Object *entry, int password_mode)
* @param minw the location where to store the minimun width of the entry
* @param minh the location where to store the minimun height of the entry
*/
EAPI void
E_API void
e_entry_size_min_get(Evas_Object *entry, Evas_Coord *minw, Evas_Coord *minh)
{
E_Entry_Smart_Data *sd;
@ -261,7 +261,7 @@ e_entry_size_min_get(Evas_Object *entry, Evas_Coord *minw, Evas_Coord *minh)
*
* @param entry the entry to focus
*/
EAPI void
E_API void
e_entry_focus(Evas_Object *entry)
{
E_Entry_Smart_Data *sd;
@ -290,7 +290,7 @@ e_entry_focus(Evas_Object *entry)
*
* @param entry the entry object to unfocus
*/
EAPI void
E_API void
e_entry_unfocus(Evas_Object *entry)
{
E_Entry_Smart_Data *sd;
@ -313,7 +313,7 @@ e_entry_unfocus(Evas_Object *entry)
*
* @param entry the entry object to enable
*/
EAPI void
E_API void
e_entry_enable(Evas_Object *entry)
{
E_Entry_Smart_Data *sd;
@ -338,7 +338,7 @@ e_entry_enable(Evas_Object *entry)
*
* @param entry the entry object to disable
*/
EAPI void
E_API void
e_entry_disable(Evas_Object *entry)
{
E_Entry_Smart_Data *sd;
@ -361,7 +361,7 @@ e_entry_disable(Evas_Object *entry)
*
* @param entry the entry object to enable
*/
EAPI void
E_API void
e_entry_edit(Evas_Object *entry)
{
E_Entry_Smart_Data *sd;
@ -389,7 +389,7 @@ e_entry_edit(Evas_Object *entry)
*
* @param entry the entry object to disable
*/
EAPI void
E_API void
e_entry_noedit(Evas_Object *entry)
{
E_Entry_Smart_Data *sd;
@ -410,7 +410,7 @@ e_entry_noedit(Evas_Object *entry)
/**
* Disable right click menu for an entry
*/
EAPI void
E_API void
e_entry_nomenu(Evas_Object *entry)
{
if (evas_object_smart_smart_get(entry) != _e_entry_smart) SMARTERRNR();

View File

@ -3,20 +3,20 @@
#ifndef E_ENTRY_H
#define E_ENTRY_H
EAPI Evas_Object *e_entry_add (Evas *evas);
EAPI void e_entry_text_set (Evas_Object *entry, const char *text);
EAPI const char *e_entry_text_get (Evas_Object *entry);
EAPI void e_entry_clear (Evas_Object *entry);
EAPI void e_entry_select_all (Evas_Object *entry);
E_API Evas_Object *e_entry_add (Evas *evas);
E_API void e_entry_text_set (Evas_Object *entry, const char *text);
E_API const char *e_entry_text_get (Evas_Object *entry);
E_API void e_entry_clear (Evas_Object *entry);
E_API void e_entry_select_all (Evas_Object *entry);
EAPI void e_entry_password_set (Evas_Object *entry, int password_mode);
EAPI void e_entry_size_min_get (Evas_Object *entry, Evas_Coord *minw, Evas_Coord *minh);
EAPI void e_entry_focus (Evas_Object *entry);
EAPI void e_entry_unfocus (Evas_Object *entry);
EAPI void e_entry_enable (Evas_Object *entry);
EAPI void e_entry_disable (Evas_Object *entry);
EAPI void e_entry_edit (Evas_Object *entry);
EAPI void e_entry_noedit (Evas_Object *entry);
EAPI void e_entry_nomenu(Evas_Object *entry);
E_API void e_entry_password_set (Evas_Object *entry, int password_mode);
E_API void e_entry_size_min_get (Evas_Object *entry, Evas_Coord *minw, Evas_Coord *minh);
E_API void e_entry_focus (Evas_Object *entry);
E_API void e_entry_unfocus (Evas_Object *entry);
E_API void e_entry_enable (Evas_Object *entry);
E_API void e_entry_disable (Evas_Object *entry);
E_API void e_entry_edit (Evas_Object *entry);
E_API void e_entry_noedit (Evas_Object *entry);
E_API void e_entry_nomenu(Evas_Object *entry);
#endif
#endif

View File

@ -9,7 +9,7 @@ static void _e_entry_dialog_delete(E_Win *win);
static void _e_entry_cb_key_down(void *data, Evas_Object *obj, void *event_info);
/* Externally accesible functions */
EAPI E_Entry_Dialog *
E_API E_Entry_Dialog *
e_entry_dialog_show(const char *title, const char *icon, const char *text,
const char *initial_text,
const char *button_text, const char *button2_text,

View File

@ -25,7 +25,7 @@ struct _E_Entry_Dialog
} cancel;
};
EAPI E_Entry_Dialog *e_entry_dialog_show(const char *title,
E_API E_Entry_Dialog *e_entry_dialog_show(const char *title,
const char *icon,
const char *text,
const char *initial_text,

View File

@ -32,13 +32,13 @@ e_env_shutdown(void)
return 1;
}
EAPI void
E_API void
e_env_set(const char *var, const char *val)
{
e_util_env_set(var, val);
}
EAPI void
E_API void
e_env_unset(const char *var)
{
e_util_env_set(var, NULL);

View File

@ -8,8 +8,8 @@
EINTERN int e_env_init(void);
EINTERN int e_env_shutdown(void);
EAPI void e_env_set(const char *var, const char *val);
EAPI void e_env_unset(const char *var);
E_API void e_env_set(const char *var, const char *val);
E_API void e_env_unset(const char *var);
#endif
#endif

View File

@ -5,7 +5,7 @@
/* local subsystem globals */
/* externally accessible functions */
EAPI void
E_API void
e_error_message_show_internal(char *txt)
{
/* FIXME: maybe log these to a file and display them at some point */

View File

@ -12,7 +12,7 @@
#ifndef E_ERROR_H
#define E_ERROR_H
EAPI void e_error_message_show_internal(char *txt);
E_API void e_error_message_show_internal(char *txt);
#endif
#endif

View File

@ -50,6 +50,7 @@ struct _E_Config_Dialog_Data
static E_Exec_Instance *_e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining);
static Eina_Bool _e_exec_cb_expire_timer(void *data);
static Eina_Bool _e_exec_cb_exit(void *data, int type, void *event);
static Eina_Bool _e_exec_cb_desktop_update(void *data, int type, void *event);
static void _e_exec_cb_exec_new_free(void *data, void *event);
static void _e_exec_cb_exec_new_client_free(void *data, void *ev);
static void _e_exec_cb_exec_del_free(void *data, void *event);
@ -72,14 +73,14 @@ static Eina_Hash *e_exec_instances = NULL;
static int startup_id = 0;
static Ecore_Event_Handler *_e_exec_exit_handler = NULL;
static Ecore_Event_Handler *_e_exec_border_add_handler = NULL;
static Ecore_Event_Handler *_e_exec_desktop_update_handler = NULL;
static E_Exec_Instance *(*_e_exec_executor_func)(void *data, E_Zone * zone, Efreet_Desktop * desktop, const char *exec, Eina_List *files, const char *launch_method) = NULL;
static void *_e_exec_executor_data = NULL;
EAPI int E_EVENT_EXEC_NEW = -1;
EAPI int E_EVENT_EXEC_NEW_CLIENT = -1;
EAPI int E_EVENT_EXEC_DEL = -1;
E_API int E_EVENT_EXEC_NEW = -1;
E_API int E_EVENT_EXEC_NEW_CLIENT = -1;
E_API int E_EVENT_EXEC_DEL = -1;
/* externally accessible functions */
EINTERN int
@ -89,10 +90,8 @@ e_exec_init(void)
_e_exec_exit_handler =
ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _e_exec_cb_exit, NULL);
#if 0
_e_exec_border_add_handler =
ecore_event_handler_add(E_EVENT_CLIENT_ADD, _e_exec_cb_event_border_add, NULL);
#endif
_e_exec_desktop_update_handler =
ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, _e_exec_cb_desktop_update, NULL);
E_EVENT_EXEC_NEW = ecore_event_type_new();
E_EVENT_EXEC_NEW_CLIENT = ecore_event_type_new();
@ -105,21 +104,21 @@ e_exec_shutdown(void)
{
e_exehist_startup_id_set(startup_id);
if (_e_exec_exit_handler) ecore_event_handler_del(_e_exec_exit_handler);
if (_e_exec_border_add_handler)
ecore_event_handler_del(_e_exec_border_add_handler);
if (_e_exec_desktop_update_handler)
ecore_event_handler_del(_e_exec_desktop_update_handler);
eina_hash_free(e_exec_instances);
eina_list_free(e_exec_start_pending);
return 1;
}
EAPI void
E_API void
e_exec_executor_set(E_Exec_Instance *(*func)(void *data, E_Zone * zone, Efreet_Desktop * desktop, const char *exec, Eina_List *files, const char *launch_method), const void *data)
{
_e_exec_executor_func = func;
_e_exec_executor_data = (void *)data;
}
EAPI E_Exec_Instance *
E_API E_Exec_Instance *
e_exec(E_Zone *zone, Efreet_Desktop *desktop, const char *exec,
Eina_List *files, const char *launch_method)
{
@ -214,7 +213,7 @@ e_exec(E_Zone *zone, Efreet_Desktop *desktop, const char *exec,
return inst;
}
EAPI void
E_API void
e_exec_phony_del(E_Exec_Instance *inst)
{
if (!inst) return;
@ -224,7 +223,7 @@ e_exec_phony_del(E_Exec_Instance *inst)
_e_exec_instance_free(inst);
}
EAPI E_Exec_Instance *
E_API E_Exec_Instance *
e_exec_phony(E_Client *ec)
{
E_Exec_Instance *inst;
@ -290,7 +289,7 @@ e_exec_phony(E_Client *ec)
return inst;
}
EAPI E_Exec_Instance *
E_API E_Exec_Instance *
e_exec_startup_id_pid_instance_find(int id, pid_t pid)
{
E_Exec_Search search;
@ -303,7 +302,7 @@ e_exec_startup_id_pid_instance_find(int id, pid_t pid)
return search.inst;
}
EAPI Efreet_Desktop *
E_API Efreet_Desktop *
e_exec_startup_id_pid_find(int id, pid_t pid)
{
E_Exec_Instance *inst;
@ -313,7 +312,7 @@ e_exec_startup_id_pid_find(int id, pid_t pid)
return inst->desktop;
}
EAPI E_Exec_Instance *
E_API E_Exec_Instance *
e_exec_startup_desktop_instance_find(Efreet_Desktop *desktop)
{
E_Exec_Search search;
@ -351,14 +350,14 @@ _e_exe_instance_watchers_call(E_Exec_Instance *inst, E_Exec_Watch_Type type)
}
}
EAPI void
E_API void
e_exec_instance_found(E_Exec_Instance *inst)
{
E_FREE_FUNC(inst->expire_timer, ecore_timer_del);
_e_exe_instance_watchers_call(inst, E_EXEC_WATCH_STARTED);
}
EAPI void
E_API void
e_exec_instance_client_add(E_Exec_Instance *inst, E_Client *ec)
{
e_object_ref(E_OBJECT(ec));
@ -368,7 +367,7 @@ e_exec_instance_client_add(E_Exec_Instance *inst, E_Client *ec)
ecore_event_add(E_EVENT_EXEC_NEW_CLIENT, inst, _e_exec_cb_exec_new_client_free, ec);
}
EAPI void
E_API void
e_exec_instance_watcher_add(E_Exec_Instance *inst, void (*func)(void *data, E_Exec_Instance *inst, E_Exec_Watch_Type type), const void *data)
{
E_Exec_Watch *iw;
@ -380,7 +379,7 @@ e_exec_instance_watcher_add(E_Exec_Instance *inst, void (*func)(void *data, E_Ex
inst->watchers = eina_list_append(inst->watchers, iw);
}
EAPI void
E_API void
e_exec_instance_watcher_del(E_Exec_Instance *inst, void (*func)(void *data, E_Exec_Instance *inst, E_Exec_Watch_Type type), const void *data)
{
E_Exec_Watch *iw;
@ -593,8 +592,8 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char *exec, int remaining)
if (desktop)
{
efreet_desktop_ref(desktop);
inst->desktop = desktop;
efreet_desktop_ref(desktop);
inst->key = eina_stringshare_add(desktop->orig_path ?: desktop->name);
}
else
@ -811,6 +810,36 @@ _e_exec_cb_exit(void *data __UNUSED__, int type __UNUSED__, void *event)
return ECORE_CALLBACK_PASS_ON;
}
static Eina_Bool
_e_exec_cb_desktop_update(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
{
const Eina_Hash *execs = e_exec_instances_get();
Eina_Iterator *it;
const Eina_List *l, *ll;
E_Exec_Instance *exe;
it = eina_hash_iterator_data_new(execs);
EINA_ITERATOR_FOREACH(it, l)
{
EINA_LIST_FOREACH(l, ll, exe)
{
if (exe->desktop)
{
efreet_desktop_free(exe->desktop);
exe->desktop = NULL;
if (exe->key)
{
exe->desktop = efreet_desktop_get(exe->key);
if (!exe->desktop)
exe->desktop = efreet_util_desktop_name_find(exe->key);
}
}
}
}
eina_iterator_free(it);
return ECORE_CALLBACK_PASS_ON;
}
static Eina_Bool
_e_exec_startup_id_pid_find(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *value, void *data)
{
@ -1238,14 +1267,14 @@ _dialog_save_cb(void *data __UNUSED__, void *data2)
fclose(f);
}
EAPI const Eina_List *
E_API const Eina_List *
e_exec_desktop_instances_find(const Efreet_Desktop *desktop)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, NULL);
return eina_hash_find(e_exec_instances, desktop->orig_path ?: desktop->name);
}
EAPI const Eina_Hash *
E_API const Eina_Hash *
e_exec_instances_get(void)
{
return e_exec_instances;

View File

@ -33,25 +33,25 @@ typedef enum
EINTERN int e_exec_init(void);
EINTERN int e_exec_shutdown(void);
EAPI void e_exec_executor_set(E_Exec_Instance *(*func) (void *data, E_Zone *zone, Efreet_Desktop *desktop, const char *exec, Eina_List *files, const char *launch_method), const void *data);
EAPI E_Exec_Instance *e_exec(E_Zone *zone, Efreet_Desktop *desktop, const char *exec, Eina_List *files, const char *launch_method);
EAPI E_Exec_Instance *e_exec_phony(E_Client *ec);
EAPI void e_exec_phony_del(E_Exec_Instance *inst);
EAPI E_Exec_Instance *e_exec_startup_id_pid_instance_find(int id, pid_t pid);
EAPI Efreet_Desktop *e_exec_startup_id_pid_find(int startup_id, pid_t pid);
EAPI E_Exec_Instance *e_exec_startup_desktop_instance_find(Efreet_Desktop *desktop);
EAPI void e_exec_instance_found(E_Exec_Instance *inst);
EAPI void e_exec_instance_watcher_add(E_Exec_Instance *inst, void (*func) (void *data, E_Exec_Instance *inst, E_Exec_Watch_Type type), const void *data);
EAPI void e_exec_instance_watcher_del(E_Exec_Instance *inst, void (*func) (void *data, E_Exec_Instance *inst, E_Exec_Watch_Type type), const void *data);
EAPI const Eina_List *e_exec_desktop_instances_find(const Efreet_Desktop *desktop);
E_API void e_exec_executor_set(E_Exec_Instance *(*func) (void *data, E_Zone *zone, Efreet_Desktop *desktop, const char *exec, Eina_List *files, const char *launch_method), const void *data);
E_API E_Exec_Instance *e_exec(E_Zone *zone, Efreet_Desktop *desktop, const char *exec, Eina_List *files, const char *launch_method);
E_API E_Exec_Instance *e_exec_phony(E_Client *ec);
E_API void e_exec_phony_del(E_Exec_Instance *inst);
E_API E_Exec_Instance *e_exec_startup_id_pid_instance_find(int id, pid_t pid);
E_API Efreet_Desktop *e_exec_startup_id_pid_find(int startup_id, pid_t pid);
E_API E_Exec_Instance *e_exec_startup_desktop_instance_find(Efreet_Desktop *desktop);
E_API void e_exec_instance_found(E_Exec_Instance *inst);
E_API void e_exec_instance_watcher_add(E_Exec_Instance *inst, void (*func) (void *data, E_Exec_Instance *inst, E_Exec_Watch_Type type), const void *data);
E_API void e_exec_instance_watcher_del(E_Exec_Instance *inst, void (*func) (void *data, E_Exec_Instance *inst, E_Exec_Watch_Type type), const void *data);
E_API const Eina_List *e_exec_desktop_instances_find(const Efreet_Desktop *desktop);
EAPI const Eina_Hash *e_exec_instances_get(void);
EAPI void e_exec_instance_client_add(E_Exec_Instance *inst, E_Client *ec);
E_API const Eina_Hash *e_exec_instances_get(void);
E_API void e_exec_instance_client_add(E_Exec_Instance *inst, E_Client *ec);
/* sends E_Exec_Instance */
EAPI extern int E_EVENT_EXEC_NEW;
EAPI extern int E_EVENT_EXEC_NEW_CLIENT;
EAPI extern int E_EVENT_EXEC_DEL;
E_API extern int E_EVENT_EXEC_NEW;
E_API extern int E_EVENT_EXEC_NEW_CLIENT;
E_API extern int E_EVENT_EXEC_DEL;
#endif
#endif

View File

@ -1,7 +1,7 @@
#include "e.h"
#include <libgen.h>
EAPI int E_EVENT_EXEHIST_UPDATE = 0;
E_API int E_EVENT_EXEHIST_UPDATE = 0;
/* local subsystem functions */
typedef struct _E_Exehist E_Exehist;
@ -82,7 +82,7 @@ e_exehist_shutdown(void)
return 1;
}
EAPI void
E_API void
e_exehist_startup_id_set(int id)
{
_e_exehist_load();
@ -92,7 +92,7 @@ e_exehist_startup_id_set(int id)
_e_exehist_unload_queue();
}
EAPI int
E_API int
e_exehist_startup_id_get(void)
{
int id;
@ -103,7 +103,7 @@ e_exehist_startup_id_get(void)
return id;
}
EAPI void
E_API void
e_exehist_add(const char *launch_method, const char *exe)
{
E_Exehist_Item *ei;
@ -127,7 +127,7 @@ e_exehist_add(const char *launch_method, const char *exe)
_e_exehist_unload_queue();
}
EAPI void
E_API void
e_exehist_del(const char *exe)
{
E_Exehist_Item *ei;
@ -155,7 +155,7 @@ e_exehist_del(const char *exe)
ecore_event_add(E_EVENT_EXEHIST_UPDATE, NULL, NULL, NULL);
}
EAPI void
E_API void
e_exehist_clear(void)
{
_e_exehist_load();
@ -166,7 +166,7 @@ e_exehist_clear(void)
_e_exehist_unload_queue();
}
EAPI int
E_API int
e_exehist_popularity_get(const char *exe)
{
Eina_List *l;
@ -188,7 +188,7 @@ e_exehist_popularity_get(const char *exe)
return count;
}
EAPI double
E_API double
e_exehist_newest_run_get(const char *exe)
{
Eina_List *l;
@ -213,13 +213,13 @@ e_exehist_newest_run_get(const char *exe)
return 0.0;
}
EAPI Eina_List *
E_API Eina_List *
e_exehist_list_get(void)
{
return e_exehist_sorted_list_get(E_EXEHIST_SORT_BY_DATE, 0);
}
EAPI Eina_List *
E_API Eina_List *
e_exehist_sorted_list_get(E_Exehist_Sort sort_type, int max)
{
Eina_List *list = NULL, *pop = NULL, *l = NULL, *m;
@ -296,7 +296,7 @@ e_exehist_sorted_list_get(E_Exehist_Sort sort_type, int max)
return list;
}
EAPI void
E_API void
e_exehist_mime_desktop_add(const char *mime, Efreet_Desktop *desktop)
{
const char *f;
@ -363,7 +363,7 @@ e_exehist_mime_desktop_add(const char *mime, Efreet_Desktop *desktop)
_e_exehist_unload_queue();
}
EAPI Efreet_Desktop *
E_API Efreet_Desktop *
e_exehist_mime_desktop_get(const char *mime)
{
Efreet_Desktop *desktop;

View File

@ -14,19 +14,19 @@ typedef enum _E_Exehist_Sort
EINTERN int e_exehist_init(void);
EINTERN int e_exehist_shutdown(void);
EAPI void e_exehist_startup_id_set(int id);
EAPI int e_exehist_startup_id_get(void);
EAPI void e_exehist_add(const char *launch_method, const char *exe);
EAPI void e_exehist_del(const char *exe);
EAPI void e_exehist_clear(void);
EAPI int e_exehist_popularity_get(const char *exe);
EAPI double e_exehist_newest_run_get(const char *exe);
EAPI Eina_List *e_exehist_list_get(void);
EAPI Eina_List *e_exehist_sorted_list_get(E_Exehist_Sort sort_type, int max);
EAPI void e_exehist_mime_desktop_add(const char *mime, Efreet_Desktop *desktop);
EAPI Efreet_Desktop *e_exehist_mime_desktop_get(const char *mime);
E_API void e_exehist_startup_id_set(int id);
E_API int e_exehist_startup_id_get(void);
E_API void e_exehist_add(const char *launch_method, const char *exe);
E_API void e_exehist_del(const char *exe);
E_API void e_exehist_clear(void);
E_API int e_exehist_popularity_get(const char *exe);
E_API double e_exehist_newest_run_get(const char *exe);
E_API Eina_List *e_exehist_list_get(void);
E_API Eina_List *e_exehist_sorted_list_get(E_Exehist_Sort sort_type, int max);
E_API void e_exehist_mime_desktop_add(const char *mime, Efreet_Desktop *desktop);
E_API Efreet_Desktop *e_exehist_mime_desktop_get(const char *mime);
extern EAPI int E_EVENT_EXEHIST_UPDATE;
extern E_API int E_EVENT_EXEHIST_UPDATE;
#endif
#endif

Some files were not shown because too many files have changed in this diff Show More