Commit Graph

52 Commits

Author SHA1 Message Date
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 4d55682362 make E_DESK_TYPE an int define
this was causing unsigned vs signed comparison warnings
2016-01-14 15:13:57 -05:00
Mike Blumenkrantz 78c6b4c234 make e_desk_at_xy_get() const 2016-01-14 15:13:57 -05:00
Carsten Haitzler e1369a24bd per-desk profiles - move to per screen and use elm derived profiles
this removes the per desktop profile config and replaces it with a
per-screen one that is tied to a specific display so it is far more
logical than per desktop. this allows e to set up different scaling
per screen for apps that use elementary for example via this derived
profile.

this of course is slightly problematic for e itself since it now uses
elm - as this will cause e to go kind-of-crazy with differing profiles
as it fights with itself and elm if 2 screens have different profiles.
this requires elm to be fixed to allow custom profiles per window.

this also currently won't switch profile of a window when you
reconfigure screens.

@feature

xx
2016-01-08 21:54:31 +09: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 dedf4cd896 remove manager references in desk name/profile configs 2015-03-19 17:10:26 -04:00
Mike Blumenkrantz 4deb313dd6 e_util_comp_desk_count_get() -> e_desks_count()
also wtf is this double loop counting
2015-03-13 17:58:48 -04:00
Mike Blumenkrantz 7b5257530a specify that E_Desk string members are stringshared 2014-02-06 12:39:09 -05:00
discomfitor a6a93c05b4 feature: function for getting top visible client on current desk
this is a pretty useful function overall, and I found that I was duplicating its functionality in a number of places, so I broke it out
2014-01-14 20:28:59 -05:00
Mike Blumenkrantz b0c6366203 feature: allow desk flip animations to be handled completely externally
by exposing desk flip as a hookable api, it becomes easy to write custom flip effects such as in the external "desksanity" module
2014-01-14 20:28:58 -05: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
discomfitor 8912e7a7fe e_desk_last_focused_focus now returns the focused border 2013-05-13 22:21:14 +01:00
Mike Blumenkrantz 718dfef61d giant comp rejiggering commit #6:
* border->fx REMOVED, related border api REMOVED

* comp edc has new class of groups: e/comp/effects[/auto]
** these are effects which can be applied to any compositor object through the e_comp_win_effect* api and are written in embryo
*** two types - base and auto - base = manual, for use with animators; auto are "trigger and forget", for use as actual effects

* desk flip transition animations moved to comp effects and FIXED(ish)

* "zoom" effect renamed to "diagonal" for slightly less misleading name since it never did any zooming

* actual "zoom" effect added

* border hierarchy now as follows: cw->effect_obj swallows cw->shobj, cw->shobj swallows cw->bd->bg_object ?: cw->obj, if (cw->bd->bg_object) cw->bd->bg_object swallows cw->obj
** cw->effect_obj now used for all positioning and comp logic
** cw->effect_obj ONLY used for object transformation effects (moving, zooming, fading, etc)
** cw->shobj ONLY for comp visual/non-movement effects (focus effect, unfocus opacity, legacy shadows); this is a candidate for removal/rewrite in E19

* even more comp shape rewrites

* desk flip animation time now controlled by theme since edje doesn't support setting transition time in C; related config value removed

* desk flip transitions (in e_desk.c) rewritten

* various modules (evry/illume2) updated to use comp effects instead of fx offset

* desk flip configuration BROKEN(ish)
2013-04-15 08:39:16 +01:00
Mike Blumenkrantz 9bd47bb46b add enum for deskflip animation mode
SVN revision: 81931
2012-12-31 14:00:47 +00:00
Mike Blumenkrantz 6888d7b697 argh more of that desktop profile insanity that didn't get #ifdefs
SVN revision: 81458
2012-12-20 14:07:33 +00:00
Mike Blumenkrantz f66c6c6f2c unbreak compile with 1.7 branch
SVN revision: 80226
2012-12-05 09:59:02 +00:00
Gwanglim Lee 499b88748b From: Gwanglim Lee <gl77.lee@samsung.com>
Subject: Re: Re: Re: [E-devel] [RFC] Virtual desktop window profile

I've attached 4th patch. May the 4th be with you.

ecore patch has been merged with efl and all files are based on r80123.

Thanks & Regards,
Gwanglim

------- Original Message -------
Sender : Daniel Juyung Seo<seojuyung2@gmail.com>
Date : 2012-12-04 01:55 (GMT+09:00)
Title : Re: Re: [E-devel] [RFC] Virtual desktop window profile

It looks ok to me.
Sorry but can you re-generate the patch according to the recent ecore
merge to efl single tree?

Daniel Juyung Seo (SeoZ)


On Thu, Nov 29, 2012 at 12:29 AM, Gwanglim Lee <gl77.lee@samsung.com>
wrote:

Dear Raster and Daniel Juyung Seo,

I've attached 3rd patches and test_config according to your reviews.
These are based on r79782.

[elementary & ecore]
1. "profile,set" -> "profile,changed" - done
2. spaces after EINA_LIST_FOREACH - done
3. variable type - keep
4. author - done
5. removing deprecated marking in patch - done
6. add elm_win_available_profiles_get to test_config for the debugging
purpose - done

7. check whether a given profile is present in an available profiles.
otherwise window profile will be one of the item
    in available profiles. - newly added thing to the elm_win
        8. merge with EO - done. :(
        
        
            Any comments would be appreciated.
            


SVN revision: 80216
2012-12-05 06:51:16 +00:00
Mike Blumenkrantz c9c90db86b remove confusing and nonexistent struct typedef
SVN revision: 76851
2012-09-19 10:34:19 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Hannes Janetzek 8957ea6191 e17: disable input events of windows while deskflip animation is going
- set focus at the end of deskflip animation
- delay show after first move to not draw at final position first
- move window further out to decrease the chance of having comp 
  get border_hide event before final position..   


SVN revision: 58092
2011-03-25 23:14:52 +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
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
Gustavo Sverzut Barbieri 1a818e8ac8 fix bitfield.
SVN revision: 49256
2010-05-28 20:49:01 +00:00
Viktor Kojouharov 82404b049e option to restrict mouse desktop flipping if there are fullscreen windows
SVN revision: 39271
2009-02-27 18:36:08 +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
Miculcy Brian 34eb4aeda4 Patch by Michael Stapelberg <michael+e17@stapelberg.de> (needed by the new tiling module).
SVN revision: 34748
2008-06-05 10:52:13 +00:00
Carsten Haitzler 818e75fb00 1. fix perf dialog - to actually change fps
2. save icon theme config
3. add config for desk flip animation modes etc. etc.
4. desk flip animation!!! 2 main modes. might restructure this a bit tho
(separate out on/off from the mode as there may be many more modes later)


SVN revision: 25299
2006-09-01 15:37:23 +00:00
Viktor Kojouharov 48b230924a make deskshow as a function. add an event for it
SVN revision: 24130
2006-07-22 22:25:04 +00:00
Viktor Kojouharov fdde0e6490 zone != desk. it was always about per desk deskshows, not per zone.
SVN revision: 24088
2006-07-21 00:46:40 +00:00
stffrdhrn 218717c8dc Clean up compile warnings:
* char * -> const char * for stringshare strings
 * char * -> const char * where needed in functions
 * remove unused vars in some places


SVN revision: 20912
2006-03-02 12:03:48 +00:00
rephorm 8356b338e9 Add desktop name to the pager (turn it on in the pager's config menu).
The theme could probably use a bit of touch up, but it works for now :)

Add an event when desktop names change.
Note: currently 'adding' a name with enlightenment_remote sends out change events for ALL of the desktops (even the ones that didn't change). This should be fixed...


SVN revision: 16604
2005-09-05 23:14:58 +00:00
Carsten Haitzler f1f9673f11 desktop name ipc patch.
slight formatting stuff.


SVN revision: 16043
2005-08-06 04:00:03 +00:00
sebastid 6b6f98a2a2 Only allow borders in normal layers to change stacking from the menu.
Move fullscreen from desk to zone. It is the zone that is fullscreen, and
then each desk must set fullscreen state on the zone if requested.


SVN revision: 15838
2005-07-20 13:07:58 +00:00
Carsten Haitzler b0b86dde57 make click to focus behave a bit better - previously focused windwo gets the
focus now always - even in pointer focus. if flippign desktosp last window
focused on that desktop is focused bakc when u flip - they are options too :)


SVN revision: 15746
2005-07-12 11:07:57 +00:00
sebastid 086cb877a4 More checks if an focus in/out events belong to a border.
Store the active fullscreen window in it's desk.
Don't allow mouse focus out from a fullscreen window.


SVN revision: 15609
2005-07-01 10:07:25 +00:00
sebastid 13afc49f5a Make the background black when doing fullscreen.
SVN revision: 15607
2005-07-01 09:24:31 +00:00
sebastid fe85e13185 Make the background black when doing fullscreen.
SVN revision: 15433
2005-06-19 19:00:04 +00:00
sebastid e7b246a440 Don't need to store if the DESKTOP hint was set on init. If the hint
doesn't exist or the desktop doesn't exists, update the hint with our
desktop.


SVN revision: 14816
2005-05-17 12:33:12 +00:00
Carsten Haitzler 6ca778ea55 i've gone over vd's - read the diff :)
SVN revision: 14123
2005-04-09 00:13:09 +00:00
sebastid a91a6bc607 Client list update.
SVN revision: 13741
2005-03-15 10:26:05 +00:00
sebastid c86091fcaf - Add atom E_ATOM_SHADE_DIRECTION, remove E_ATOM_ICONIC
- Add function for reordering border lists.
- Update hints, and use them.
- Add a flag to e_border_hide to tell if the window still
  is managed or not.
- Don't set changed flag if changing visibility. Visibility is handled
  outside _e_border_eval()
- Cleanup focus_out.
- Add desk show event.


SVN revision: 13372
2005-02-15 12:11:31 +00:00
Carsten Haitzler 4f54c588e1 seb's patch...
SVN revision: 13222
2005-02-07 13:51:09 +00:00
rbdpngn b6c300dd69 Add type checking for the various E objects.
SVN revision: 13053
2005-01-22 06:58:34 +00:00
handyande eb0f1bd307 Remeber border hints when restarting (or recovering) E. This is currently set on all windows all the time in case of crash - it could be moved to being set on E shutdown (before a restart)
SVN revision: 13028
2005-01-20 14:01:31 +00:00
Carsten Haitzler e88c2ac1a6 fix up include system so u canhave one struct directly reference another (put
typedefs in separate section and include twice...


SVN revision: 12928
2005-01-12 16:03:09 +00:00
handyande 92315b7568 Hook in menu configuring of desktops and dynamic resizing
SVN revision: 12832
2005-01-08 17:32:08 +00:00
handyande a38a5e1de9 OK, now we have a 2D set of desktops to each zone :) - callbacks not in yet so stuck with 2x2 for now - but wanted to get this in
SVN revision: 12828
2005-01-08 14:41:21 +00:00
xcomputerman 38899921b8 More bugfixes/updates:
- Add subsystem init/shutdown functions for e_desk and e_zone
- Fix bug in desk remove function
- Prevent duplicate desktop names being automatically generated
- When uniconifying, set window desktop to current
- Don't display iconified windows when desktop switching
- Selecting a window in the window list switches to that window's desktop


SVN revision: 12779
2005-01-05 10:37:53 +00:00
xcomputerman b4a29f186d Warnings defenestrated. Object check really should be enabled by default now.
SVN revision: 12712
2005-01-03 22:04:04 +00:00