Commit Graph

82 Commits

Author SHA1 Message Date
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
Sebastian Dransfeld e818c83322 e: ignore signals with no signal
A signal needs a name to be handled.

CID 1040147
2013-12-10 20:31:26 +01:00
Carsten Haitzler 8462dc3c04 put in "key allowed" call in e_bindings for keys to filter out
problematic key binds. :)
2013-06-13 20:10:52 +09:00
Mike Blumenkrantz aa6a2d173d giant comp rejiggering commit because anything smaller would have broken something:
* remove xwin for container canvas: now drawn directly on the compositor canvas

* added SHAPE_DEBUG define for bored developers

* bindings now use new e struct for mouse/wheel events

* container+zone now get mouse events from smart callbacks instead of x events

* rename comp api namespace

* change comp underlay theme to have a swallow for the wallpaper

* add names to all zone/container/comp objects to make debugging much easier

* some minor related updates to go along with this

SVN revision: 83752
2013-02-07 13:20:07 +00:00
Mike Blumenkrantz 41759238cd a much requested feature: drag-only edge bindings
ticket #281


SVN revision: 83628
2013-02-05 13:13:33 +00: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
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00
Mike Blumenkrantz 7877c41869 handle NULL more gracefully in e_bindings_signal_handle
SVN revision: 80813
2012-12-13 10:38:24 +00:00
Mike Blumenkrantz 45a916177f fix crash in e bindings from not using safe list iterator
SVN revision: 77268
2012-10-01 13:14:31 +00:00
Mike Blumenkrantz e525ed8e61 break out bindings resets into functions based on their type for more fine-grained binding resets
SVN revision: 75649
2012-08-24 09:51:37 +00:00
Mike Blumenkrantz b6a8f51cba add e_bindings_reset() for resetting all bindings from e_config
SVN revision: 75465
2012-08-20 13:51:13 +00:00
Mike Blumenkrantz 3edadaf65e warn--
SVN revision: 74922
2012-08-06 10:45:02 +00:00
Mike Blumenkrantz 21df8f0a2f add an amazing hack which, when a vmware player window is opened, disables keyboard remapping until the window is closed. this is stupid, but seems to be the only way to keep it from breaking keymaps on some setups
ticket #1057


SVN revision: 74919
2012-08-06 10:21:41 +00:00
Mike Blumenkrantz 821f1f4a6d add debug printf to help with hunting #1057
SVN revision: 74722
2012-08-01 08:55:51 +00:00
Mike Blumenkrantz 0768dd02ae edge bindings now allow for the use of any mouse button for clicky bindings
ticket #681


SVN revision: 73402
2012-07-06 08:27:09 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Cedric BAIL 89ddff064e e: remove some warning.
Let's start by cleaning up this warning party !


SVN revision: 70694
2012-05-03 11:02:35 +00:00
Carsten Haitzler 7c23365cf9 fix edge bindings to work if you add other bindings to corners other
than edge flips.



SVN revision: 70558
2012-04-30 12:29:34 +00:00
Vincent Torri 1c8b4d5c3d E: remove extraneous parentheses
SVN revision: 65994
2011-12-07 20:34:45 +00:00
Carsten Haitzler 436918fe7a work on improving edge bindings. having a look at this i'm more
convinced that we need to dump edge bindings as they stand entirely
and turn it into an event registration system.

virtual desktops register for edge events on the zone they are on as
they flip around or are created or destroyed. shelf for audiohide
registers a region of an edge etc.



SVN revision: 64100
2011-10-16 04:24:27 +00:00
Carsten Haitzler a0781f02c4 allow 1 of the syscon entries to be marked iwth is_main=2 as the
"default" one so if you press the binding that broung syscon up again
while syscon is up - and later than 0.5 seconds after syscon came up
and more than 2 times, then it execs that default action (eg power
down, suspend etc.)



SVN revision: 63831
2011-10-05 09:39:39 +00:00
Daniel Juyung Seo 3dd38d3446 e e_bindings.c: Fixed indentation and removed trailing whitespaces.
SVN revision: 63526
2011-09-22 01:05:26 +00:00
Christopher Michael b74c7ea0ca Patch from Sung-Jin Park to add function for easy searching of
key_bindings.

- Add e_bindings_key_find() in e
This patch is to provide a convenient function to find out key
bindings by 
matching a combination of keyname and modifier
without walking and matching e_config->key_bindings.
This will be convenient function like existing e_bindings_key_get() in
e.



SVN revision: 63515
2011-09-21 11:31:07 +00:00
Carsten Haitzler b867e58fa3 fix mapping change event handler to actually WORK! (select right event
id)



SVN revision: 63308
2011-09-09 12:58:23 +00:00
Gustavo Sverzut Barbieri 6f2213cb25 convert init/shutdown to EINTERN, move some to _update().
Do not abuse the concept of e_*_init(), make them call-once and those
that needed multiple call are renamed to e_*_update(). To make sure
convert them to EINTERN so the symbols are not exported.

Actually I guess too much is exported as EAPI while they should be
EINTERN, but that would require manual investigation, while this patch
was basically created with sed + grep.



SVN revision: 54795
2010-11-22 15:21:32 +00:00
Carsten Haitzler 2238c66924 document changes to rander event - not used and.. use new mapping
event to unbind + bind mouse and key bindings again.



SVN revision: 53943
2010-10-28 00:34:03 +00:00
Christopher Michael c314974f42 Add unused where needed.
SVN revision: 51318
2010-08-18 18:41:25 +00:00
Lucas De Marchi 6638a10e20 FORMATTING
* Remove vim modelines:
 find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
 find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;

* Remove leading blank lines:
 find . -name '*.[cxh]' -exec sed -i '/./,$!d'

If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0



SVN revision: 50816
2010-08-04 16:57:32 +00:00
Cedric BAIL c6a118d738 * e: remove warning due to Ecore API change.
SVN revision: 49833
2010-06-24 16:19:12 +00:00
Christopher Michael 8dbd555663 Check for a binding status of -1 so that we skip comparison with
event_status (if needed).



SVN revision: 49320
2010-05-30 02:23:06 +00:00
Christopher Michael d2d1e49bf5 Add bindings for ACPI.
Add acpi bindings to config.
Add handlers in e_acpi for common/default acpi events.
Add actions for some missing ACPI events.
 - NB: Dim/Undim screen do nothing currently except a printf.



SVN revision: 49309
2010-05-29 19:57:13 +00:00
Hannes Janetzek b859ec06a3 if bindings context is 'any' then action is triggerd twice, for container and for zone. maybe not the best solution but otherwise one would have to create three bindings to get the 'any' behaviour
SVN revision: 48499
2010-05-01 13:26:10 +00:00
Sebastian Dransfeld f098d9df85 Only create edge windows which have bindings
Previously all windows always existed, and edge bindings showed/hided
windows as needed. And e_zone_flip_win_disable/ e_zone_flip_win_restore
f**k'ed this up.

Will fix bug #483 soon.

SVN revision: 45366
2010-01-20 21:30:17 +00:00
Viktor Kojouharov b6ec16d97e hide edge event windows that are not used by any action
put the edge windows on the correct layers
allow edge click bindings
use actions for auto-hide shelves
toggling auto-hide will cause edge event windows to show/hide if necessary


SVN revision: 42864
2009-10-02 20:53:05 +00:00
Cedric BAIL f8c05999e4 * e: Cleanup use of Eina data structure.
Patch from Peter van de Werken <pwerken-e@a-eskwadraat.nl>.


SVN revision: 41916
2009-08-21 15:08:49 +00:00
Iván Briano e5478eb0e3 Don't leak.
SVN revision: 40100
2009-04-16 04:48:46 +00:00
Hannes Janetzek 4598a292ed use ECORE_EVENT_MODIFIER
SVN revision: 39538
2009-03-17 21:55:33 +00:00
Cedric BAIL e6d3c12f76 e/keybinding: Some cleanup using more Eina feature.
SVN revision: 39527
2009-03-17 13:58:38 +00:00
Cedric BAIL 46e8efcd8c Let me introduce you to Ecore_Input. The idea is to share as much as possible event
between all ecore graphic engine to ease porting of application and reduce the amount of
specific code per engine. This patch does just that.
	All your application should continu to work has previously, if it's not the case
please report any new behaviour regarding mouse and keyboard.


SVN revision: 39505
2009-03-16 16:24:43 +00:00
Viktor Kojouharov 4c31250530 this option is more suitable for all actions, not just the desk flip one
SVN revision: 39442
2009-03-10 21:34:41 +00:00
Viktor Kojouharov 9bbc8158bd edge and corner binding infrastructure. If you have an old config, enable the conf_edgebindings module and hit 'Reset to defaults' to get edge desktop switching.
The edge/corner picker needs some love from someone who is not artistically challenged.  And a proper module icon as well.


SVN revision: 39220
2009-02-25 22:21:46 +00:00
Cedric BAIL 1087de2397 Remove Evas list and replace them with Eina list.
No change for ->next and ->data access right now, as the patch is already
big enough.



SVN revision: 36962
2008-10-22 11:49:33 +00:00
Cedric BAIL 3d6749983b Switch to eina_stringshare.
This could also change the usage of string share in E17.



SVN revision: 36679
2008-10-15 15:12:56 +00:00
Carsten Haitzler b370f8315f remove/comment out printfs and remove fixme (to be removed) fake mouse up funcs
SVN revision: 36229
2008-09-25 01:34:39 +00:00
Carsten Haitzler 0a8ffffa5f add in gadman for desktop. happy dave! :)
SVN revision: 34610
2008-05-19 04:37:34 +00:00
Carsten Haitzler 492fa506e0 deps lists/ debugging too...
SVN revision: 34177
2008-04-03 18:47:14 +00:00
Carsten Haitzler 2b999319f2 numlock binding... WRONG. see comments.
SVN revision: 27453
2006-12-14 23:38:33 +00:00
Christopher Michael 364d79712d Add missing traps for numlock state when executing bindings.
SVN revision: 27445
2006-12-14 17:52:51 +00:00
rephorm fba1d2fa3c fix cursor changes on border resize hotspots
SVN revision: 25048
2006-08-23 00:34:33 +00:00