Commit Graph

132 Commits

Author SHA1 Message Date
Mike Blumenkrantz ca760bb103 check client ignores before dereferencing desk
D519
2014-02-04 21:29:29 -05:00
Mike Blumenkrantz 166ed0d234 feature: new focus option "raise on revert focus"
this option provides the functionality which was intended by the old and broken "raise on focus" option. it raises windows ONLY when reverting focus in cases not directly triggered by the user or any application
2014-01-14 20:28:59 -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
Mike Blumenkrantz 0c2d21558f fix a magnificent typo in my last commit 2013-12-10 15:37:57 -05:00
Mike Blumenkrantz a7d1a4588e only revert focus to a sticky window on desk flip if there's no other window to revert to
T625
2013-12-10 15:36:28 -05:00
Mike Blumenkrantz b0854dedd1 remove unused variable 2013-12-10 15:36:28 -05:00
Mike Blumenkrantz 6ccc845a23 only unset comp_hidden on windows after desk flips if the window is not shaded
ticket #onefang
2013-11-28 11:02:02 -05:00
Mike Blumenkrantz 8ad5e3db39 ignore shelves from other screens when changing vdesks
T485
2013-11-26 12:43:15 -05:00
Mike Blumenkrantz 1709c9dda9 end desk flip immediately if there are no animating windows
fixes desk flips with no visible/non-moving windows
2013-08-30 10:39:55 +01:00
Mike Blumenkrantz 36bdc32757 use relative window coords when setting up desk transitions; fixes animations with multiple monitors 2013-05-23 11:06:11 +01:00
zmike 5cebe429d4 fix desk flip focus when switching screens with mouse focus during animation 2013-05-15 21:11:47 +01:00
discomfitor 7d469785d5 block pointer warp after desk flip animation if new desk is not in current zone 2013-05-13 22:27:24 +01:00
discomfitor 8912e7a7fe e_desk_last_focused_focus now returns the focused border 2013-05-13 22:21:14 +01:00
discomfitor 02d59dbdb2 shouldn't need to flush shadow win tree again after desk show since it was already flushed in both show and hide 2013-05-13 22:21:14 +01:00
Mike Blumenkrantz 486944af0a use e_comp_win_effect_unclip after desk show 2013-04-22 13:58:01 +01:00
Mike Blumenkrantz b366590cb3 use 2 for desk hide manage to prevent comp source from being hidden 2013-04-22 13:58:01 +01:00
Mike Blumenkrantz 00e30bc528 fix window event input when rapidly switching desks 2013-04-16 11:06:15 +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 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +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 a9e313bb1c always set last focused focus on desk change
SVN revision: 81454
2012-12-20 13:51:08 +00:00
Mike Blumenkrantz 9d68775725 fix pointer warping on desk change + revert focus
ticket #1994


SVN revision: 80942
2012-12-14 13:47:53 +00:00
Boris Faure 5bf8a6cab3 e: fix windows being uniconified on desk show
SVN revision: 80392
2012-12-06 21:22:34 +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
Carsten Haitzler 3868f0f91a try avoid null ptr derefs.
SVN revision: 79168
2012-11-12 14:45:59 +00:00
Mike Blumenkrantz 31b2e6dcf9 add "Flip To Previous Desktop" action
ticket #1717, patch originally by Robert David <robert.david.public@gmail.com>


SVN revision: 79148
2012-11-12 10:49:28 +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
Mike Blumenkrantz 0dab993c45 add "hidden" flag for borders which is set only when border_hide(3) is called; this prevents borders from being automatically shown on desk change when previously hidden
SVN revision: 75757
2012-08-28 07:41:11 +00:00
Mike Blumenkrantz 2179306800 fix some cases where zone/shelf handling was wrong and would lead to shelves being shown when they shouldn't
ticket #862


SVN revision: 74225
2012-07-20 09:37:15 +00:00
Mike Blumenkrantz 822776146a fix desk flip animation when on last/first desk flipping to first/last desk with desk wrap enabled
ticket #385


SVN revision: 73602
2012-07-12 07:31:34 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Mike Blumenkrantz 2bdd24ea93 ecrustified
SVN revision: 69034
2012-03-07 22:50:53 +00:00
Carsten Haitzler 5dddceedc5 indeed - alloc enough space for the message as a whole - alloc only
alloced 1 extra float in addition to the one already there. need an
extra 4.



SVN revision: 64401
2011-10-25 23:49:58 +00:00
Viktor Kojouharov fd8e562507 give the correct count of args
SVN revision: 64156
2011-10-18 20:59:58 +00:00
Viktor Kojouharov 96ff415a02 fully remove the BG panning.
add a float_set message directed towards the bg object on desk show


SVN revision: 64102
2011-10-16 14:53:27 +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
Christopher Michael 933a6d3d71 E: Potentially fix segfault with adding/removing desktop names and
using the tiling module. Use eina_stringshare_replace where possible.
Fix some formatting. Set desk->name to NULL if we are not going to put
a string into it.



SVN revision: 63564
2011-09-23 10:37:30 +00:00
Carsten Haitzler fac6fb0b38 fix click to focus last window focus on deskt switch.
SVN revision: 61875
2011-07-29 04:51:32 +00:00
Carsten Haitzler 004bdade85 make bulb gadget change glow/brightness based on actual backlight
brightness.



SVN revision: 60306
2011-06-14 14:24:45 +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
Hannes Janetzek 1925cec0c6 e17: fix the rare case that the last focused border had lock_focus_out. try next instead of break
SVN revision: 57644
2011-03-10 00:04:31 +00:00
Hannes Janetzek ece72e1596 e17: take sticky windows state into account in e_desk_last_focused_focus
SVN revision: 57636
2011-03-09 20:30:22 +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
Sebastian Dransfeld 3c12d4daba __UNUSED__ last
SVN revision: 54193
2010-11-05 18:40:31 +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
Hannes Janetzek 7ae508168e fix naming and warnings
SVN revision: 42278
2009-09-05 12:43:44 +00:00