Commit Graph

343 Commits

Author SHA1 Message Date
Elyes HAOUAS 0a9e0003d8 tree-wide: get rid of trailing whitespace (part 8)
Remove trailing whitespaces

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11828
2020-05-14 14:17:10 +02:00
Carsten Haitzler 7ab9466f77 everything - fix string index mishandle that causes segv's
also ensure we nuke time rhandles too - spotted that. this is a real
issue asan found and yomi first pointed at. reproduced, found, fixed.

@fix
2019-08-08 09:24:10 +01:00
Carsten Haitzler b88138cacb every - ensure all structs are zeroed out
valgrind spotted this, so fix.
2019-07-31 13:38:46 +01:00
Carsten Haitzler fccf2f5aef evry - move to non deprecated aspect set call 2019-01-12 01:51:43 +00:00
Marcel Hollerbach 8537923d2e everything:declare this object as const
The object is not meant to be moved, we only subscribe click events on
it, this isnt really changing the context where the api wants to declare
it const, so for now safe it everywhere as const and register /
unregister the callbacks with casts.
2017-08-17 18:46:51 +02:00
Marcel Hollerbach 430d7e0bb2 everything: use correct edje api
everything used here edje_object_part_swallow_get, which is somehow
wrong, since we dont really know if the everything theme gives the type
swallow, using the plain object_get of edje is the solution here. Its
returning a alias object that is hiding the internal edje object.
2017-08-13 21:18:49 +02:00
Derek Foreman 73aecd73ab Replace all timer_add with timer_loop_add
So yeah, I've literally used sed to replace every occurrence of
ecore_time_add() with ecore_timer_loop_add() because I'm reasonably
confident that no part of E has a legitimate need for timer based on the
exact current time.

It would be really nice if I'm not wrong. :)

The reason for this is the incredible spew of clock_gettime() calls I'm
seeing on an ARM system (that should have a vdso for gettime, but...)
This can amount to thousands of system calls per second.

 #YOLO
2017-02-03 15:52:28 -06:00
Mike Blumenkrantz 4e7c505536 add event handler for evry event type, not #define value
fix T4007
2016-09-08 10:27:05 -04:00
Mike Blumenkrantz 033217c8e1 destroy evry's focus-out timer if focus-in occurs before timer triggers
fixes dismissal during comp input regrabs
2016-06-29 10:02:47 -04:00
Derek Foreman 4bd97bfd5c Fix eo object use after deletion in evry
On window hide the focus out callback is triggering and causing a new
timer to be set up.  This timer fires when the window no longer exists.

Remove the focus_out callback when we hide the window.
2016-06-17 16:40:20 -05:00
Mike Blumenkrantz 6fd2d4487f force unset override and do reshadow on evry when switching to normal win mode
fixes window movement and close animations
2016-06-17 17:19:02 -04:00
Hannes Janetzek b3561d7641 just a small patch to make sure evry_hide does not get called synchronously from an Evry_Action 2016-05-31 11:42:27 -04:00
Mike Blumenkrantz 9451f22d6c evry null deref
CID 1355061
2016-05-05 09:33:55 -04:00
Mike Blumenkrantz ecf22d6787 hide evry on focus-out
handles case where focus is lost due to compositor grab
2016-05-03 20:27:03 -04:00
Mike Blumenkrantz fcf3bf8a5c remove show callback from evry win on deletion
==22088== Invalid read of size 1
==22088==    at 0x2C9FE7B1: _evry_cb_show (evry.c:3046)
==22088==    by 0x5BE9918: _eo_evas_object_cb (evas_callbacks.c:65)
==22088==    by 0x69A16F4: _eo_base_event_callback_call (eo_base_class.c:715)
==22088==    by 0x69A3041: eo_event_callback_call (in /usr/lib/libeo.so.1.17.99)
==22088==    by 0x5BEA0B3: evas_object_event_callback_call (evas_callbacks.c:240)
==22088==    by 0x5C2577C: evas_object_inform_call_show (evas_object_inform.c:12)
==22088==    by 0x5C1ED24: _show (evas_object_main.c:1360)
==22088==    by 0x5C1EADA: _evas_object_efl_gfx_base_visible_set (evas_object_main.c:1313)
==22088==    by 0x575D80A: efl_gfx_visible_set (in /usr/lib/libefl.so.1.17.99)
==22088==    by 0x5C1EA58: evas_object_show (evas_object_main.c:1291)
==22088==    by 0x479FCF: _e_comp_intercept_show_helper (e_comp_object.c:1616)
==22088==    by 0x47A02A: _e_comp_intercept_show (e_comp_object.c:1630)
==22088==  Address 0x17621591 is 81 bytes inside a block of size 120 free'd
==22088==    at 0x4C2AE6B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==22088==    by 0x2C9F95A8: _evry_window_free (evry.c:993)
==22088==    by 0x2C9F8065: evry_hide (evry.c:366)
==22088==    by 0x2C9FB9A2: _evry_cb_key_down (evry.c:1926)
==22088==    by 0x8F6ED4A: _ecore_call_handler_cb (ecore_private.h:316)
==22088==    by 0x8F6FC92: _ecore_event_call (ecore_events.c:518)
==22088==    by 0x8F7A15A: _ecore_main_loop_iterate_internal (ecore_main.c:2339)
==22088==    by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284)
==22088==    by 0x4403F6: main (e_main.c:1087)
==22088==  Block was alloc'd at
==22088==    at 0x4C2BBD5: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==22088==    by 0x2C9F8D7D: _evry_window_new (evry.c:758)
==22088==    by 0x2C9F772D: evry_show (evry.c:177)
==22088==    by 0x2C9F711C: _e_mod_run_defer_cb (e_mod_main.c:537)
==22088==    by 0x8F75267: _ecore_call_task_cb (ecore_private.h:282)
==22088==    by 0x8F7574E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174)
==22088==    by 0x8F7A05B: _ecore_main_loop_iterate_internal (ecore_main.c:2261)
==22088==    by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284)
==22088==    by 0x4403F6: main (e_main.c:1087)
2016-03-09 14:25:16 -05:00
Mike Blumenkrantz e3f829ace7 more correctly handle evry mouse detection on wayland
in this case, mouse events which are not originating from the internal
window are for the screen, and these coords can be used for determining
"mouse out". if the mouse event comes from the window, it is inside the window.

ref 7c661b54a9
2016-01-19 13:49:10 -05:00
Mike Blumenkrantz 7c661b54a9 fix evry mouse event detection on wayland 2015-04-27 14:36:42 -04:00
Mike Blumenkrantz bfca0f908c ensure evry key events do not get erroneously rejected in grab mode
ref T2030
2015-04-24 14:58:00 -04:00
Mike Blumenkrantz 471dcb24cb __UNUSED__ -> EINA_UNUSED
this has been bugging me forever. __UNUSED__ is no longer a valid macro here.
2015-03-18 18:09:09 -04:00
Mike Blumenkrantz b63e490a33 remove e_util_comp_current_get() usage 2015-03-13 16:28:08 -04:00
Mike Blumenkrantz 1fe1c94245 comp canvas functions no longer require an E_Comp param 2015-03-13 16:07:08 -04:00
Mike Blumenkrantz 091142b032 remove E_Client->comp 2015-03-13 15:41:21 -04:00
Mike Blumenkrantz 5735f7a2e7 de-e_comp_get()ify evry 2015-01-22 15:05:58 -05:00
q66 d12ef91687 rename WEIGHT/ALIGN/EXPAND/FILL to E_WEIGHT/E_ALIGN/E_EXPAND/E_FILL
Otherwise there were macro clashes with a systemwide include.
Also remove a leftover E_Hal.h include.
2014-11-21 20:10:46 +00:00
Mike Blumenkrantz 99589eb5af remove E_Win+e_canvas, convert all internal wins to use elm_win
known issues:

* keybindings for efm windows (eg. ctrl+w) are broken until the rest of the conversion is completed
2014-11-20 15:26:21 -05:00
Chris Michael 4b4b80bcb5 modules/everything: Fix dereference before null check
Fixes CID1039816

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-05 10:50:25 -04:00
Chris Michael e9599c2597 modules/everything: Fix dereference before null check
Fixes CID1039817

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-05 10:47:53 -04:00
wonguk.jeong 0034b2d6ee everything: delete mouse event handlers on selector_free
Summary:
Since mouse up handler is invoked after selector_free, there was a crash.

reproduce: double click on selector area (tabbar area on top) to launch app -> SEGV

Fixes T1264

Test Plan: enlightenment -> everything -> double click on selector area (tabbar on top)

Reviewers: raster, zmike

CC: seoz, cedric

Maniphest Tasks: T1264

Differential Revision: https://phab.enlightenment.org/D886
2014-05-26 15:11:13 +09:00
Mike Blumenkrantz 1950f54caf bugfix: correctly check evry trigger matches
CID 1039880
2014-04-04 15:04:28 -04:00
Mike Blumenkrantz c04d754ac5 enabling drm output module should NOT require X-less build.
these defines all need to be changed from HAVE_WAYLAND_ONLY to something like WITH_X or we're going to have lots of problems with xwayland later on
2014-03-18 16:14:04 -04:00
Mike Blumenkrantz 4b58fa9a4e replace ev->keyname with ev->key
see efl 5ae4cfd1923e502731f4d8fc2bf67b1f536a9216
2014-03-13 13:03:34 -04:00
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Mike Blumenkrantz ec9ea6c97c fix evry crash when switching views
T317
2013-12-02 15:14:56 -05:00
Mike Blumenkrantz 505cec1d91 giant comp rejiggering commit #5:
* border frame/object now drawn directly on compositor canvas

* border shadows now in border theme with edje hint, non-updated themes still receive comp object shadows FOR NOW

* e_border MOVE/RESIZE pointer mode defines are now e_pointer.h enums

* added BD_CHANGED() util macro for setting bd->changed and printing a debug line to assist in finding places where this all-important flag is wrongly set

* bd->bg_win removed entirely

* bd->pointer objects moved to compositor object; now only one pointer object exists for each compositor

* resizing windows now shows a new and totally-intended scaling effect for window contents

* some additional retooling of border deletion/free callbacks

* fixed lurking potential bug where window could recieve focus from autoraise timer after border had been deleted

* more comp shape improvements/rewrites

* desk transitions are now BROKEN(ish)

* various modules updated to not be totally broken with these changes
2013-04-15 08:39:16 +01:00
Mike Blumenkrantz c48fd0b06d giant commit that wipes all bindi^W^W^Wsplits out binding configs into a separate config domain so they can be more easily copied and so they won't be wiped in the event that primary config is wiped
also splits all binding lists out of e_config: they are now conveniently located in the global "e_bindings" struct


SVN revision: 83544
2013-02-01 10:21:54 +00:00
Lucas De Marchi 0675dd03a0 e: rename option use_composite to use_shaped_win
In order to move composite inside the core we need to kill the
use_composite option. However in some places it is being used to switch
between ARGB and shaped windows. It doesn't make much sense to keep the
advanced/engine dialog to let the user toggle this options if we have
composite always enabledm, but lets allow the user to shoot
himself on the foot (for now).

Next step will be to move the comp module files to core so user can't
unload it anymore.



SVN revision: 82433
2013-01-09 03:21:25 +00:00
José Roberto de Souza e0ef1e75ad e: Replace FALSE that was defined in lidbus to EINA_FALSE
Patch by: José Roberto de Souza  <zehortigoza@profusion.mobi>



SVN revision: 82090
2013-01-03 18:16:04 +00:00
Hannes Janetzek 2e15739b21 e17/evry: ensure that there will be only one true popup.
- add timer to delay closing with the same binding that triggers evry 


SVN revision: 81432
2012-12-20 09:37:37 +00:00
Mike Blumenkrantz 1c161c7713 also prevent recursive obj del on evry windows and unset window defer delete so we don't get crazy errors when people hold down the god damn keybind to piss me off
ticket #2009


SVN revision: 81167
2012-12-17 17:14:21 +00:00
Hannes Janetzek f920665d49 e17/evry: free window in _evry_window_free
SVN revision: 80952
2012-12-14 14:28:16 +00:00
Carsten Haitzler a4af3e5f6d fix evry segv!
SVN revision: 80047
2012-12-03 11:34:41 +00:00
Mike Blumenkrantz 8adb889d90 hide evry when desklock goes up
SVN revision: 80033
2012-12-03 09:43:51 +00:00
Sebastian Dransfeld 80b0b615b8 e: Cleanup
Fixes potential invalid memory reads.

Patch by Igor Murzov

SVN revision: 77491
2012-10-04 23:27:01 +00:00
Sebastian Dransfeld 436323bf59 e: cleanup layer handling
It seems people put random numbers as layers, so it is better to define
available layer numbers.

This patch also puts popups below fullscreen windows, as it sucks to get
popups during presentations. A better solution is maybe to put popups
above fullscreen, but have a presentation mode to put fullscreen windows
above popups?

SVN revision: 77293
2012-10-02 08:54:35 +00:00
Carsten Haitzler 1739590e05 fix wad of focus issues with click-to-focus and alt+tab + fullscreen
windows.



SVN revision: 75399
2012-08-18 04:40:56 +00:00
Vincent Torri 9d9ce41db0 E17: fix some warning
SVN revision: 71233
2012-05-18 13:02:20 +00:00
Cedric BAIL c2a29811d5 e: massiv warning cleanup !
SVN revision: 70756
2012-05-04 09:38:52 +00:00
Cedric BAIL 70d21a1f44 e: move everyone to use eina_file_direct_ls and friend.
NOTE: I think, but I am not sure yet, that only EFM should
do this kind of operation or it could hard lock E17.


SVN revision: 70546
2012-04-30 07:07:33 +00:00
Mike Blumenkrantz abcc8f9ad3 add new functions evry_item_{app,file}_free for freeing standard file/app items
SVN revision: 65705
2011-11-30 04:00:51 +00:00
Mike Blumenkrantz 0cc0f8c658 ATTN: JEFFDAMETH!
YOUR CODE FORMATTING IS BROKEN! PLEASE FIX THIS IN YOUR EDITOR ASAP!


SVN revision: 65704
2011-11-30 03:32:54 +00:00