Commit Graph

19299 Commits

Author SHA1 Message Date
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