Commit Graph

64 Commits

Author SHA1 Message Date
Christopher Michael 945b462135 e_shelf: Add parent parameter to e_shelf_new_dialog
This adds a parent param to e_shelf_new_dialog function so that the
Add Shelf window cannot be closed while Shelf Name dialog is open.
2021-01-20 12:33:56 -05:00
Carsten Haitzler 73a754a411 shelf - fixup initial layout with workaround fixup
this is complicated ... but a confluence of zoomap original geom vs
transformed geom etc. ... things go wrong. this does a fixup to ensure
they go right...

@fix
2020-05-04 21:42:32 +01:00
Carsten Haitzler b4cfada8e8 module and config - remove pointless config vars that have no use
we dont need to delay module loading anymore so remove allof this -
priority too shouldn't be necessary as well and was just a workaround.
this remvoes all of that removing some e module api's and module
struct members as well as some global config fields. it also ensures
all config files are up to date as well.
2019-09-10 17:58:30 +01:00
Mike Blumenkrantz 59fa0e418d use E_BITFIELD define for bitfield struct members
on release builds this will be a bitfield, on devel builds it will make
bools a normal unsigned char for easier debugging
2017-11-07 10:39:56 -05:00
Mike Blumenkrantz bdd175a47a implement zone obstacles for calculating useful geometry
these are generic objects which can be added to indicate that there
is something blocking window placement at the edge of a screen/desk.
this replaces the traditional method of watching shelves to calculate
useful geometry with a managed object which will automatically trigger
a recalc whenever it is updated, and it allows non-shelf objects to
more easily register themselves as obstacles for window placement
2016-01-14 15:13:57 -05:00
Mike Blumenkrantz 5c6db42a08 add shelf callback for hidden state and trigger extra hide-on-show if hiding
if shown while a hide animation is running, evas will prevent further show
intercept callbacks from being reached, resulting in a permanently hidden
shelf

this shortcuts the (current) hide animation in order to begin showing the object
2015-12-29 13:22:17 -05:00
Chris Michael 0a94e8ba71 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-05-07 15:13:10 -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 ed7b29d50f all comp wins now have zoomaps, zooming effect lovers rejoice 2013-04-16 13:51:50 +01:00
Mike Blumenkrantz f36ecd9d3d giant comp rejiggering commit #2: popups are now objects drawn directly onto the compositor canvas with no xwindows of their own
* added a number of new e_comp functions and macros

* options for disabling effects on objects: this option does not currently have any effect

* all modules which used gadcon popups have been adjusted

* all modules which used input windows to detect close events for gadcon popups have been adjusted to use new popup autoclose functionality

* shelves are now always drawn on the compositor canvas, meaning objects will never get clipped by the shelf (ticket #1810)

* shelves no longer have an event object

SVN revision: 84060
2013-02-18 13:43:47 +00:00
Mike Blumenkrantz b393de2eaa fix shelf autohide on click
ticket #2051


SVN revision: 81362
2012-12-19 13:59:36 +00:00
Mike Blumenkrantz f233e0d59d fix shelf autohiding when the mouse goes directly from a shelf into the window of a shitty toolkit which blocks X mouse movement events
ticket #1884


SVN revision: 80343
2012-12-06 11:03:32 +00:00
Mike Blumenkrantz 14e898b6a7 add shelf rename events
SVN revision: 78831
2012-11-02 07:53:37 +00:00
Mike Blumenkrantz b0df4fc70f move shelf visible detection code from e_desk to e_shelf
SVN revision: 77416
2012-10-04 09:53:52 +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
Mike Blumenkrantz eace74147d add timers to shelves which still haven't shown at module_init_end to show after 1s
SVN revision: 76953
2012-09-21 09:39:26 +00:00
Mike Blumenkrantz c61c107346 shelves now only watch all mouse events when autohide is set since a static shelf doesn't need to care about it; this will save some amount of cpu I guess
this also breaks the use of e,state,focused programs on non-autohiding shelves, but nothing I'm aware of has ever used this, sooooooo :)
also probably fixes ticket #1467


SVN revision: 76320
2012-09-07 18:59:43 +00:00
Mike Blumenkrantz 86c58b136b move shelf add starter dialog to shelf internals and clean up shelf config dialog
SVN revision: 76302
2012-09-07 12:42:29 +00:00
Mike Blumenkrantz 3f3466c415 fix crashing when deleting shelves
ticket #1439


SVN revision: 75924
2012-08-31 18:58:18 +00:00
Mike Blumenkrantz 2580a8e278 add convenience typedef for shelf del event struct
SVN revision: 75372
2012-08-17 08:24:51 +00:00
Mike Blumenkrantz e63f8c7f4d add event for shelf deletion
SVN revision: 75371
2012-08-17 08:23:09 +00:00
Mike Blumenkrantz 6e9de5d01f add rename option to shelf right click menu, also externally accessible function to pop this dialog
SVN revision: 74976
2012-08-07 10:48:47 +00:00
Mike Blumenkrantz 7623fa4de0 add new functions for renaming a shelf/gadcon in the process of hunting #1286
SVN revision: 74973
2012-08-07 10:28:28 +00:00
Mike Blumenkrantz 873febc02b dummy shelves don't need to be a gadcon site, also properly export prototype
SVN revision: 74631
2012-07-31 09:43:10 +00:00
Mike Blumenkrantz 6fbd413374 add event for when a shelf gets added
SVN revision: 73225
2012-07-03 11:55:00 +00:00
Mike Blumenkrantz 37461278bc add e_shelf_zone_dummy_new(), e_shelf_list_all(), and e_gadcon_dummy_new() to allow for creating an object (such as a task bar) which simulates a shelf for the purpose of removing its geometry from _e_zone_useful_geometry_calc(), thus preventing windows from being placed under it
ticket #643


SVN revision: 72999
2012-06-28 10:59:19 +00:00
Mike Blumenkrantz 712db1eb5a simpler fix for systray/shelf hiding, also unbreaks autohide in cases which the previous commit just broke
SVN revision: 72784
2012-06-25 07:57:00 +00:00
Mike Blumenkrantz 80d70ec5dd fix shelf autohide when mouse moves out of systray from a systrayed icon's menu
SVN revision: 72783
2012-06-25 07:50:08 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +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
Miculcy Brian 748d4e182f Show a better name for shelfs, shelfs are now named as "Shelf bottom", "Shelf bottom_left", etc. I guess _E_Shelf->const char *name can be removed now... Anyone against that? :)
SVN revision: 51929
2010-09-06 17:38:18 +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
Viktor Kojouharov fb323cef74 temporarily show the shelf on urgent windows (ibox)
SVN revision: 39649
2009-03-23 12:14:31 +00:00
Hannes Janetzek 887264eed4 added e_gadcon_locked_set: with this gadgets can lock the gadcon from
vanishing, like with e_shelf_locked_set. gadcon providers set their own lock 
function with e_gadcon_util_lock_func_set, which is called by 
e_gadcon_locked_set.


SVN revision: 38759
2009-01-24 14:09:37 +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
Sebastian Dransfeld ae855ee47e Fix dnd. Hopefully works in all situations now. Seems like we should
consider separating internal and external dnd code.


SVN revision: 34901
2008-06-24 20:13:35 +00:00
Sebastian Dransfeld 804737eb4d Only show edge windows which are in use.
SVN revision: 33532
2008-01-19 11:41:42 +00:00
Sebastian Dransfeld 8304a2cb9e Possible to lock shelf.
SVN revision: 32837
2007-11-23 09:18:21 +00:00
Sebastian Dransfeld 2eb12fddf3 Show shelf on edge trap and hide on mouse out on window.
SVN revision: 32833
2007-11-22 21:39:45 +00:00
Carsten Haitzler d2027e5fd3 and fully handle dynamic screen add/del with xinerama (xrandr 1.2). seems to
work for me adding/removing screens. e moves windows from the old screen to
existing one(s) and creates new zones and any shelves etc. for that zone if
needed etc. etc.


SVN revision: 32111
2007-10-18 09:06:30 +00:00
Viktor Kojouharov be1b8a833a don't interrupt the shelf show animation, leaving out a half-shown shelf
SVN revision: 29930
2007-05-10 08:49:14 +00:00
Sebastian Dransfeld ccdf9f9ac6 Make hiding work on the desktop again.
SVN revision: 29912
2007-05-07 19:16:51 +00:00
Sebastian Dransfeld 102b43becb Don't user timer to hide shelf.
SVN revision: 29904
2007-05-07 16:37:54 +00:00
Viktor Kojouharov 726d152924 patch by Hannes Janetzek for checking whether the mouse is over the shelf
SVN revision: 29688
2007-04-23 17:21:38 +00:00
Viktor Kojouharov a0a2e5c7fc themers can use "instant_delay" "N.M" to tell e when to instantly move the shelf away. that way then can fade the shelves away or use other techniques to give the impression that the shelf is hiding
SVN revision: 29440
2007-04-08 09:32:48 +00:00
Viktor Kojouharov 187c3fcec1 show/hide the shelf when the autohide option is changed. hide the hide-able shelves on startup
SVN revision: 29427
2007-04-06 20:23:45 +00:00
Viktor Kojouharov 641dd49248 Shelf hiding based on Hannes Janetzek's patch.
e,state,hidden|visible are still available to themers, to do something interesting while the shelf is being moved.


SVN revision: 29426
2007-04-06 19:01:29 +00:00
Carsten Haitzler b2a0abb8eb a lot of patches - also my work on moving the IO stuff in e_fm to a slave
process to stop e from ever "locking up". this unfortunately breaks the other
source stuff and thus breaks the app editor config dialogs and anything using
fm2 for .desktop stuff from the e applications/all repo. i am doing this as i
expect this to go away with efreet anyway so not too much of an issue. not
all fm operatiosn work currently - note. so beware. it can view files though :)


SVN revision: 28528
2007-03-02 17:00:20 +00:00
Carsten Haitzler 71be7e7882 sys actions have status/info/progress dialogs that should work right for all
actions (so you know what is going on and have some feedback/status).


SVN revision: 25670
2006-09-10 04:51:07 +00:00
Christopher Michael 420b305add Function protos for new shelf additions.
SVN revision: 24230
2006-07-27 06:22:19 +00:00