Commit Graph

17573 Commits

Author SHA1 Message Date
Mike Blumenkrantz 06f794bfe6 clear x11 client pixmap when returning from iconic
ensure pixmap remains usable during the entire hide process
2015-10-15 15:32:38 -04:00
Mike Blumenkrantz dc872be2df check systray dbus name existence before attempting to recover session
in the case that a system error occurs the dbus method for returning the
session name can fail, leading to a null return

CID 1327399
2015-10-15 13:13:22 -04:00
Mike Blumenkrantz 56ff9ead03 use dbus unique name for tracking systray sessions
the env var DBUS_SESSION_BUS_ADDRESS may not be set for all platforms
where enlightenment+dbus are usable, so it's necessary to get the dbus
id to ensure that this value exists and is properly tracked
2015-10-15 13:13:22 -04:00
Mike Blumenkrantz f6245e5535 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 13:13:18 -04:00
Carsten Haitzler f42c6aa187 e - comps sync - ec client was null - i think, so protect against crash
i got a crash here and the bt was broken and i couldnt check if
_e_comp_x_client_data_get() returned null, but it's the only thing
that would make sense, so protect against this to avoid a crash. as
this was a one-off, i can't find out more,

@fix
2015-10-15 19:29:14 +09:00
Marcel Hollerbach adbb5719f0 systray: search for the best available resolution of a icon
For example in telegram the first icon which was transmitted was in a
pretty bad resolution, the new code searches the best res.
2015-10-14 22:40:47 +02:00
Mike Blumenkrantz 432d1e3776 cache systray items for each dbus session
the current spec does not directly require any behavior from clients
when a systray host, leading to an issue where clients do not re-register
their items when a new host appears

when using an in-process systray watcher, as the current implementation does,
the best choice for maintaining consistency for systray items across restarts
is to cache them according to the current dbus session. the process of setting
up the item will validate it on subsequent restarts, and changes to the session
will clear the cache

fix T2786
2015-10-14 16:30:41 -04:00
Amitesh Singh 71f7720669 e_flowlayout: typecast return value to int
Summary:
return value is small enough, so there is no risk in casting from unsigned int to signed int.

CID: 1267211

Reviewers: devilhorns, raster, cedric, zmike

Subscribers: seoz, sachin.dev

Differential Revision: https://phab.enlightenment.org/D3179
2015-10-14 14:02:07 -04:00
Mike Blumenkrantz 984d664eef 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 12:59:14 -04:00
Mike Blumenkrantz 00895ca014 do not return when x11 damage event returns no rects
ensure first_damage flag is set in all cases
2015-10-14 12:59:14 -04:00
Amitesh Singh de740b2520 pulseaudio: pass big data as pass by reference
CID: 1308394
2015-10-14 21:51:00 +05:30
Chris Michael d74273f732 enlightenment: Make sure we have a zone before calling
_bgpreview_viewport_update

@fix CID1324753

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:59:31 -04:00
Chris Michael 2cd6fcc3a9 enlightenment: Use 'fabs' to compute absolute value of floating point
types

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:38:14 -04:00
Chris Michael e856f7acbb enlightenment: #if 0 out an unused variable
NB: The function which actually uses this variable is also #if 0'd out

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:30:33 -04:00
Chris Michael d72af795ad enlightenment: Use 'fabs' to get absolute value of floating point types
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:28:38 -04:00
Chris Michael 2814066c39 enlightenment: Fix E_CONFIG_LIMIT to use the proper min & max values
e_config->backlight.idle_dim is actually an unsigned char in the
structure, so use a 0 & 1 for min & max

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:22:19 -04:00
Chris Michael 59ffe3bed2 enlightenment: Add missing field initializers for Eina_Rectangle
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:19:43 -04:00
Chris Michael a6661a2066 enlightenment: Add missing field initializers for Evas_Point
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:18:04 -04:00
Chris Michael 4acd72c64a enlightenment: Add missing EINA_UNUSED for unused function paramaters
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:17:22 -04:00
Chris Michael fbc9b89d59 enlightenment: Add missing EINA_UNUSED for unused function parameters
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:16:25 -04:00
Chris Michael dc4eb9ca0d enlightenment: Add missing EINA_UNUSED for unused function paramaters
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:14:16 -04:00
Mike Blumenkrantz 98c44950b1 subtract x11 client damage region even when forcing full override damage
fix T2785
2015-10-13 22:38:50 -04:00
Mike Blumenkrantz f6be761226 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:09:00 -04:00
Marcel Hollerbach 8c77c613a1 Fix make distcheck 2015-10-13 22:06:00 +02:00
Marcel Hollerbach 2fd6f95a9b mixer: start app from bin directory
before the app was installed into the modules directory, now its
installed to the bin directory
2015-10-13 22:06:00 +02:00
Marcel Hollerbach 03888cf941 mixer: install icon and .desktop file 2015-10-13 22:06:00 +02:00
Marcel Hollerbach 57ec517904 mixer: install app to bin directory 2015-10-13 22:06:00 +02:00
Mike Blumenkrantz e8bcf1016f use correct param ordering for setting wayland client frame geometry
function uses l,r,t,b and not x,y,xx,yy

fix T2624
2015-10-13 13:31:47 -04:00
Mike Blumenkrantz 60a1dfaf4f remove duplicate surface size update for wayland clients during commit
this has already happened in e_comp_wl_surface_attach()
2015-10-13 13:25:15 -04:00
Tomáš Čech 10053f5d64 don't forget wl_desktop_shell's header in tarball
Summary: Merge branch 'master' of git://git.enlightenment.org/core/enlightenment

Reviewers: zmike

Subscribers: cedric

Maniphest Tasks: T2776

Differential Revision: https://phab.enlightenment.org/D3170
2015-10-12 11:56:45 -04:00
Carsten Haitzler 9c5b6acb05 e mixer - be more robust if pulse exits/crashes and def sink is null
ensure there are protections everywhere for when default sink is null
- mixer did crash when pulse crashed and a popup was to be shown...
2015-10-10 11:07:24 +09:00
Mike Blumenkrantz 45b7224b42 explicitly disable screensaver for wayland urgency wakeups 2015-10-09 15:23:15 -04:00
Mike Blumenkrantz 277eb14ace 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:21:41 -04:00
Mike Blumenkrantz ddc06559c7 apply _GTK_FRAME_EXTENTS for xwayland clients
not entirely sure this is worthwhile but may as well
2015-10-09 15:03:38 -04:00
Tom Hacohen 252198488c Intl: fix potential stack buffer overflow.
CID 1298051

@fix
2015-10-09 09:26:45 +01:00
Tom Hacohen 981e3f8f31 Client: fix potential out of bounds read.
This is an unsigned int underflow that could lead to an out
of bounds read.

CID 1291837

@fix
2015-10-09 09:19:53 +01:00
Mike Blumenkrantz 2ab7fed323 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:07 -04:00
Carsten Haitzler acbf4a79b4 e comp data - actually ... NO visibility effect by default is right
so a bit of a config wipe had my comp config reset (some dev
shenanigans) and i got to see what current e "out of box" config is -
and it was horrid for menus. visibilitiy effect was broken. vertial.
default was none - always. forever. like empty. so go back to that. in
fact why do this visibility effect? that was the point of having a
different shadow in the theme - each has its own look + effect. this
makes things far more complex...
2015-10-08 08:27:38 +09:00
Mike Blumenkrantz 95b9770f08 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:21 -04:00
Carsten Haitzler d99869fed2 e comp - default config was rather broken - fix
default config didnt select menu style shadow - was selecting
vertical/still which meant animation was rather horrible. fix.
2015-10-07 19:54:21 +09:00
Mike Blumenkrantz a68e375479 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:28:26 -04:00
Mike Blumenkrantz 8e5f0a0bb6 repopulate app list dialogs when efreet deskop cache updates
should improve usage when installing/uninstalling apps
2015-10-05 16:01:10 -04:00
Mike Blumenkrantz a6408d95a6 attempt to load default e_bindings if initial load fails 2015-10-05 15:56:28 -04:00
Mike Blumenkrantz be49b11bd3 do not set frame geometry on frame-possessing wayland clients 2015-10-05 15:56:04 -04:00
Mike Blumenkrantz 85cf1305be throw an ACK when trying to set comp frame geometry if frame exists 2015-10-05 15:55:44 -04:00
Mike Blumenkrantz e27a0cbeba clear menu cache when saving a menu file
force regeneration of menus after editing them

ref T2271
2015-10-05 13:41:10 -04:00
Mike Blumenkrantz ac9daa55fb make icon selection dialog resizable in .desktop editor
ref T2271
2015-10-05 13:33:13 -04:00
Mike Blumenkrantz 29fb270450 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:09:38 -04:00
Seunghun Lee 1ce8b362de clear the tiler for input region after setting to comp object.
Summary:
there is no need to set repeatedly input region even if it's already applied.
and this patch remove the code to clear tiler from client's unmapped case.
this fixes that tiler for input region is removed before applying it to comp object in case client is unmmaped yet.

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3076
2015-10-05 12:47:29 -04:00
Peter Kjellerstedt 872c3d2601 Add support for the ISO 8601 date format to the clock module
Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3129
2015-10-04 13:02:48 -04:00
Chidambar Zinnoury 2a3742a52a e fm: Use correct string length when copying path.
Sometimes, trying to go to the parent directory wouldn’t work and end up showing some garbage. Unfortunately, the code ended up not NULL-ending the path, which made searching for the path separator buggy.
2015-10-04 18:52:03 +02:00
Peter Kjellerstedt 1ea9d73d33 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:54:47 -04:00
Chidambar Zinnoury c57f2ff611 e menus: Fix invalid comparisons.
Fixes CID 1267215 and 1267216.
2015-10-04 16:46:32 +02:00
Mike Blumenkrantz 6ff98d8a39 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:49:01 -04:00
Mike Blumenkrantz 4d30674ab8 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 13:57:29 -04:00
Mike Blumenkrantz 38a8de6a1d unify comp render returns for argb and non-argb clients 2015-10-02 13:57:29 -04:00
Mike Blumenkrantz 588a9766e4 fix comp render return value for failed draws of non-argb clients 2015-10-02 13:57:29 -04:00
Mike Blumenkrantz 269b5fcc0e fix return value of comp render for wayland clients 2015-10-02 13:57:29 -04:00
Mike Blumenkrantz 81b61634c4 add RENDER_DEBUG for forced renders when setting dirty flag 2015-10-02 13:57:29 -04:00
Boram Park b9b650806f should remove a frame resource from pending.frames list also
Summary: Signed-off-by: Boram Park <boram1288.park@samsung.com>

Reviewers: stefan_schmidt, gwanglim, raster, zmike, devilhorns

Reviewed By: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3079
2015-10-02 12:38:30 -04:00
Amitesh Singh c27ecb89fb 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-01 16:20:23 -04:00
Mike Blumenkrantz 4b40ad10e5 always apply all randr changes after a screen event
fixes case where plugging an external monitor would cause the screen
to expand onto that display without the display being effectively usable
until after a restart
2015-10-01 13:17:27 -04:00
Boram Park 00a597213d wl_desktop_shell: return void
Summary:
_e_input_panel_cb_surface_get() returns void.

Signed-off-by: Boram Park <boram1288.park@samsung.com>

Reviewers: zmike, stefan_schmidt, gwanglim, raster, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3119
2015-10-01 08:43:19 -04:00
Mike Blumenkrantz bb5daf2b57 remove remote colorclass editor usage
match current elm function signatures
2015-09-30 16:31:20 -04:00
Mike Blumenkrantz cdf6650a11 redo wayland client buffer referencing
the previous methodology was effectively:
attach -> ref(new buffer) x2 / unref(old buffer) x2
...
...
attach -> ref(new buffer) x2 / unref(old buffer) x2

this resulted in buffer management failures and crashing. now the
buffer gets 1x ref before render and 1x unref after render, ensuring
that the lifetime is accurate (assuming evas doesn't lie to us)

now we still have random crashing during resize, but not as much as
before
2015-09-29 18:53:15 -04:00
Mike Blumenkrantz 89a789fe3d redo CSD for wayland clients to use comp object frame geometry
this fixes issues with client placement and is a more native solution
than the previous hacks
2015-09-29 18:53:03 -04:00
Mike Blumenkrantz ba92337882 never mark wl client pixmaps as dirty or refresh them
this has no meaning for a wl pixmap in the current implementation
2015-09-29 16:35:30 -04:00
Mike Blumenkrantz bd8987c4d9 free x11 damage region rects 2015-09-29 13:03:35 -04:00
Mike Blumenkrantz 0a7c9ad5b9 do not roundtrip for x11 client message DBG if it will not be visible
also free fetched atom name
2015-09-29 13:02:10 -04:00
Mike Blumenkrantz 14a6ac6458 unset E_Client->internal_elm_win before deleting the client in e_win
==24509== Invalid write of size 8
==24509==    at 0x502D00: _e_elm_win_trap_del (e_win.c:39)
==24509==    by 0x509BFC2: _elm_win_evas_object_smart_del (elm_win.c:1886)
==24509==    by 0x91F4643: evas_obj_smart_del (in /usr/lib/libevas.so.1.15.99)
==24509==    by 0x91F5B5C: evas_object_smart_del (evas_object_smart.c:1021)
==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 0x5086715: _elm_widget_eo_base_destructor (elm_widget.c:5744)
==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 0x4D5B1A: _e_obj_dialog_free (e_obj_dialog.c:125)
==24509==    by 0x4D61FB: e_object_free (e_object.c:152)
==24509==    by 0x4D61FB: e_object_unref (e_object.c:152)
==24509==    by 0x4EDC54: _e_sys_logout_after (e_sys.c:750)
==24509==    by 0x4ED7AC: _e_sys_action_do (e_sys.c:925)
==24509==    by 0x4EE348: e_sys_action_raw_do (e_sys.c:311)
==24509==    by 0x4EE43F: _e_sys_comp_done_cb (e_sys.c:66)
==24509==    by 0x6097348: _edje_emit_cb (edje_program.c:1476)
==24509==    by 0x6097348: _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 0x14fb1a28 is 1,176 bytes inside a block of size 1,352 free'd
==24509==    at 0x4C2A65B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24509==    by 0x4D61FB: e_object_free (e_object.c:152)
==24509==    by 0x4D61FB: e_object_unref (e_object.c:152)
==24509==    by 0x502CED: _e_elm_win_trap_del (e_win.c:37)
==24509==    by 0x509BFC2: _elm_win_evas_object_smart_del (elm_win.c:1886)
==24509==    by 0x91F4643: evas_obj_smart_del (in /usr/lib/libevas.so.1.15.99)
==24509==    by 0x91F5B5C: evas_object_smart_del (evas_object_smart.c:1021)
==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 0x5086715: _elm_widget_eo_base_destructor (elm_widget.c:5744)
==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 0x4D5B1A: _e_obj_dialog_free (e_obj_dialog.c:125)
==24509==    by 0x4D61FB: e_object_free (e_object.c:152)
==24509==    by 0x4D61FB: e_object_unref (e_object.c:152)
==24509==    by 0x4EDC54: _e_sys_logout_after (e_sys.c:750)
==24509==    by 0x4ED7AC: _e_sys_action_do (e_sys.c:925)
==24509==    by 0x4EE348: e_sys_action_raw_do (e_sys.c:311)
==24509==    by 0x4EE43F: _e_sys_comp_done_cb (e_sys.c:66)
==24509==    by 0x6097348: _edje_emit_cb (edje_program.c:1476)
==24509==    by 0x6097348: _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 12:58:13 -04:00
Mike Blumenkrantz b843527a6c do not roundtrip for x11 client message DBG if it will not be visible
also free fetched atom name
2015-09-29 12:53:59 -04:00
Mike Blumenkrantz 06948d1a26 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 12:51:36 -04:00
Mike Blumenkrantz f94764feec 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:29:41 -04:00
Mike Blumenkrantz b9c4911374 s/EAPI/E_API/ ...again 2015-09-28 15:51:51 -04:00
Mike Blumenkrantz 6732398856 use client window coords for resize-moving without a frame_object
improves placement of csd windows

ref T2750
2015-09-28 15:39:15 -04:00
Mike Blumenkrantz 5f2f1cb67b 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 15:36:58 -04:00
Mike Blumenkrantz 9b2eb5541c use more accurate math to determine whether to apply a client maximize change 2015-09-28 14:42:21 -04:00
Mike Blumenkrantz 29823dbf1b 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 14:41:44 -04:00
Mike Blumenkrantz 7e5eb0a96d 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 14:39:42 -04:00
Mike Blumenkrantz 64c4adeca2 unset E_Client->changes.need_unmaximize after calling unmaximize
...just in case
2015-09-28 14:37:57 -04:00
Mike Blumenkrantz f0fc7a12de remove client maximize states during unmaximize only if they are active
do not accidentally remove untested states using bad math operations
2015-09-28 14:36:59 -04:00
Mike Blumenkrantz d641c9d963 force adjustment of client geometry when changing csd frame size
fix T2750
2015-09-28 14:02:02 -04:00
Mike Blumenkrantz 51789af53c _GTK_FRAME_EXTENTS changes using a property, not a client message 2015-09-28 14:01:47 -04:00
Mike Blumenkrantz ed9cd0ea61 reject identical calls to e_comp_object_frame_geometry_set() 2015-09-28 14:01:02 -04:00
Carsten Haitzler d0de6eb4fa 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 16:49:53 +09:00
Carsten Haitzler f468361817 efm - handle cancel of async eio if icon is freed and eio still active
@fix
2015-09-28 16:29:12 +09:00
Mike Blumenkrantz bb557cbf9f 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:41:29 -04:00
Mike Blumenkrantz 0e3cc2f533 don't call e_client_unignore() when un-withdrawing an x11 window
these clients were not ignored on creation, so they've already triggered
all the relevant events
2015-09-25 22:37:16 -04:00
Mike Blumenkrantz 2c73a0b311 map/unmap x11 client windows when toggling iconic state
ICCCM 4.1.4
2015-09-25 21:57:25 -04:00
Mike Blumenkrantz 80a9240e7a 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 21:57:25 -04:00
Mike Blumenkrantz ec7752cc90 set x11 supported atom array size correctly
CID 1324958
2015-09-25 21:57:25 -04:00
Mike Blumenkrantz 1c36bb8333 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
2015-09-25 21:56:14 -04:00
Mike Blumenkrantz 8a764901c6 check warp_client existence during pointer warp before dereferencing it
ref T2679
2015-09-25 16:26:50 -04:00
Carsten Haitzler 61ba406001 Revert "Revert "Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it""""
This reverts commit 2373b69c61.

stop crashing on restart
2015-09-25 08:23:39 +09:00
Mike Blumenkrantz 6252ac29da add csd case for compositor frame adjust messages
not 100% perfect, but close enough
2015-09-24 16:33:56 -04:00
Mike Blumenkrantz 7967f9983d move compositor frame adjust messages to pixels_get callback
native surfaces don't call e_comp_object_render()
2015-09-24 16:33:56 -04:00
Mike Blumenkrantz 5efb157c0c set comp object client_inset.calc based on frame_object existence 2015-09-24 16:33:56 -04:00
Mike Blumenkrantz 2b38eb9712 block border-affecting client functions for csd clients 2015-09-24 16:33:56 -04:00
Mike Blumenkrantz 14283ffefa block border-affecting entries from showing up in client menu with csd 2015-09-24 16:33:56 -04:00
Mike Blumenkrantz a4ebee266d fix e_shelf_position_calc() to not set struct members before applying them
fix T2743
2015-09-24 16:33:56 -04:00
Mike Blumenkrantz 39a39a41c8 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:33:56 -04:00
Mike Blumenkrantz b8322b2b0e 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:33:56 -04:00
Mike Blumenkrantz d1454e4e1a 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:33:56 -04:00
Boram Park 6d2572efc0 Creating wl_shm global object before creating other global objects
Summary:
  It's more useful for client to bind wl_shm before receiving other global
  object's events. Then, App can quickly prepare some buffers. i.e. cursor,
  etc.

Signed-off-by: Boram Park <boram1288.park@samsung.com>

Reviewers: stefan_schmidt, gwanglim, raster, zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3080
2015-09-23 09:15:53 -04:00
Mike Blumenkrantz 0978d22f8e 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:38:34 -04:00
Mike Blumenkrantz c9c880ec59 improve client exe_inst creation
ref T2679
2015-09-22 16:00:09 -04:00
Mike Blumenkrantz 4173bd0c0c add weekeyboard edj files 2015-09-22 15:03:39 -04:00
Mike Blumenkrantz 4ef9d9e518 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:17:35 -04:00
Mike Blumenkrantz f1faab997f 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:16:20 -04:00
Mike Blumenkrantz 81ea29a715 fix shot module compile without x11 support 2015-09-22 13:54:28 -04:00
Mike Blumenkrantz 8b932b053e 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:44:18 -04:00
Mike Blumenkrantz 4173bd9977 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:14:51 -04:00
Mike Blumenkrantz 8399ab4ff9 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:07:15 -04:00
Mike Blumenkrantz 2373b69c61 Revert "Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it"""
This reverts commit 6bef668a8f.
2015-09-22 12:54:10 -04:00
Mike Blumenkrantz 32aa812701 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:42:39 -04:00
Mike Blumenkrantz f3edf38e49 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:37:14 -04:00
Mike Blumenkrantz 37c146435d only unpopulate a shelf when applying new settings if the shelf won't be recreated 2015-09-22 12:36:41 -04:00
Mike Blumenkrantz 4eaeabc1c3 block gadcon thaw on unpopulate when gadcon is deleted
saves a huge amount of unnecessary calc time
2015-09-22 12:36:12 -04:00
Mike Blumenkrantz ae919fe716 unset E_Client->want/take_focus flags during client eval
ref 4a33cd7ba0
2015-09-22 12:03:09 -04:00
Carsten Haitzler f0ea0c94ca e config - cache sizes in config don't actually work, so remove
remove several config vars in advanced performance that frankly don't
work (unless you change them int he dialog). they are not set up on
startup or not even used at all. remove things that don't work anymore!

@fix
2015-09-22 14:06:40 +09:00
Carsten Haitzler d948225714 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 13:17:10 +09:00
Mike Blumenkrantz 498936e417 apply vertical maximize algorithm for LEFT/RIGHT maximized windows 2015-09-21 19:52:14 -04:00
Mike Blumenkrantz bfbdf5106a 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 19:19:15 -04:00
Mike Blumenkrantz 4a33cd7ba0 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 19:19:01 -04:00
Mike Blumenkrantz 7056d598c4 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:50:48 -04:00
Mike Blumenkrantz 342fa1880a 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:22:55 -04:00
Mike Blumenkrantz 4e811057f3 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:22:44 -04:00
Mike Blumenkrantz a04b3e4d94 only lower x11 layer windows for layers which have windows during init 2015-09-21 16:53:29 -04:00
Mike Blumenkrantz 6aa2342b7e decode .desktop link and directory uris in fileman menus
fix T1922
2015-09-21 16:16:00 -04:00
Mike Blumenkrantz 8491e11570 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:16:30 -04:00
Mike Blumenkrantz 6b1affe6f1 make bgpreview widget work with panoramic wallpapers 2015-09-21 15:03:41 -04:00
Mike Blumenkrantz 3762dd6caf send FLOAT_SET edje messages during desk flip
panoramic wallpapers are created to expect this type of message

ref T2219
2015-09-21 15:03:35 -04:00
Mike Blumenkrantz ae79929400 distribute weekeyboard edj files
creating these during dist is problematic due to filename length limits
so they will need to be precompiled
2015-09-21 13:09:01 -04:00
Seunghun Lee 945683824b Add initial module of weekeyboard as a wayland virtual keyboard.
Summary:
Depends on D2275

this module is a virtual keyboard used in wayland.

Test Plan:
<prerequisite>
- Configure with --enable-wl-weekeyboard.

1. run enlightenment as a wayland display server.
2. run weston-editor which has text entry using wayland protocol.

Reviewers: devilhorns, raster, ManMower, jonc, zmike

Subscribers: bryceharrington, jonc, jihoon, cedric, ManMower

Differential Revision: https://phab.enlightenment.org/D2858
2015-09-21 12:51:07 -04:00
Mike Blumenkrantz 7d2a55f7e9 add function to blank out a client's rendered image
when working with Extremely Serious effects, it may be the case that
a user is rendering at such an advanced level that any attempt by
enlightenment to perform rendering will be like a child trying to
reproduce a masterpiece of art while using fingerpaints

https://www.youtube.com/watch?v=tY6qag5KFx0&hd=1
2015-09-17 19:08:27 -04:00
Mike Blumenkrantz e8a9ba34b0 always send CLIENT_SHOW event when clients are shown
I think it was the case for <E19 that uniconifying a client would
not send a show event, but this is not ideal and so the event should
still be sent
2015-09-17 19:08:27 -04:00
Mike Blumenkrantz ad631964f8 remove unused variables in ilist widget 2015-09-17 19:08:27 -04:00
Mike Blumenkrantz e669eb9998 set comp object mirror alpha flag more accurately on creation 2015-09-17 16:54:00 -04:00
Mike Blumenkrantz 554eb76140 add smart callback for comp object damage calls
related to the previous commit, this will allow api users to determine
when a client needs to re-render with the least amount of overhead
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz e01009e1b5 add function for overriding the native surface of a client's comp object
it's a pretty trivial thing to hand-composite a client, so this will
allow someone to do something like render out a gaussian blur to an fbo
using a client's texture and then render the fbo onto the compositor
canvas with minimal overhead
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz f7d3952ec0 add smart callback for comp object hiding animation begin
it's impossible to determine this at the time of calling without adding
some sort of callback here; edje signals are deferred, meaning that
an interested user will not be able to check the state of a client
when it begins to hide
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz e09b0d3e03 create util function for enforcing comp object image alpha setting
this can be set in a couple places, so move all the logic into a single
caller to ensure correct setting
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz 1f3e730964 alias x11 pixmaps to parent windows during reparent
failure to allow pixmaps/clients to be retrived by parent window will
result in api users being greatly inconvenienced after a reparenting has
occurred
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz 441e266a83 add function for getting x11 pixmap from E_Pixmap 2015-09-17 16:54:00 -04:00
Mike Blumenkrantz bff9ae5feb add pre-render callback list for compositor canvas
someone doing fancy effects might want to add a callback to do various
tasks only when a render is about to occur
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz a99bc68baa enable depth+stencil bits for x11 gl compositor canvas creation 2015-09-17 16:54:00 -04:00
Mike Blumenkrantz 14d52506a0 rename E_Comp_Grab_Cb to E_Comp_Cb
this is a super generic global callback type which will never be used
elsewhere, so rename it to make it potentially useful in other places
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz f5657fc6c1 enforce gathering client moveinfo before beginning move/resize action 2015-09-17 16:54:00 -04:00
Mike Blumenkrantz ce78226c0e 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:05:21 -04:00
Mike Blumenkrantz 462c2ae151 unset client hidden flag on config dialogs when activating from another vdesk
fix T2731
2015-09-15 12:46:46 -04:00