Commit Graph

285 Commits

Author SHA1 Message Date
Mike Blumenkrantz 1071bd9020 fix comp win geometry updates for shaded windows 2013-04-18 12:44:19 +01:00
Mike Blumenkrantz 06dd5703a3 fix comp win geometry updates to always use pixmap size when available 2013-04-18 10:21:31 +01:00
Mike Blumenkrantz c883ec1c25 simplify comp win geom update check to only look at flag 2013-04-18 10:21:12 +01:00
Mike Blumenkrantz c32fbb3ab4 comp win reshadow now sets geom update flag instead of updating geom 2013-04-18 10:20:21 +01:00
Mike Blumenkrantz 22b95a70b1 set comp win geometry update flag for pixmap update during initial show 2013-04-18 10:08:07 +01:00
Mike Blumenkrantz dd3f309b32 remove zoomap usage for window/surface objects until a related bug is fixed 2013-04-17 13:34:59 +01:00
Mike Blumenkrantz c84797ec9a set comp win zoomap smooth based on comp smooth scale setting 2013-04-17 13:34:59 +01:00
Mike Blumenkrantz 0315c91008 set the magic "always" zoomap flag to fix window input and disable shadows...for now 2013-04-17 09:43:40 +01:00
Mike Blumenkrantz 256d1386c1 update comp win geometry correctly for override (non-pixmap) windows 2013-04-17 08:46:36 +01:00
Mike Blumenkrantz b702eddfd1 use new zoomap function to set solidness on comp win reshadow 2013-04-17 08:07:11 +01:00
Mike Blumenkrantz a4d13328e9 put zoomap shaped/solid edc stuff back for menus, let comp wins use it more generally 2013-04-17 06:32:49 +01:00
Mike Blumenkrantz efa7f67893 fix input shapes for frames of shaped windows 2013-04-17 06:12:37 +01:00
Carsten Haitzler f2b31aa7a3 if comp init fails - dont use dialogs to show it now its in core.. and
on failure.. exit instead of segving. :)
2013-04-17 09:12:03 +09:00
Mike Blumenkrantz dde99c089a flag comp win geometry updates and call only as necessary 2013-04-16 15:05:11 +01:00
Mike Blumenkrantz ed7b29d50f all comp wins now have zoomaps, zooming effect lovers rejoice 2013-04-16 13:51:50 +01:00
Mike Blumenkrantz 6e33f33c59 rename comp border edje groups from e/comp/* to e/comp/border/* 2013-04-15 08:39:16 +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 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
discomfitor 0d16ba68cd giant comp rejiggering commit #3
* e menus are now drawn directly onto the compositor canvas

* menu theme now requires at least one part which allows mouse events in every menu group (YOUR MENUS WILL NOT WORK IF YOU ARE USING A THEME WHICH LACKS THIS!!!!!!!)

* menus now also report dangling/zombie menus with slightly more accuracy now
2013-03-11 05:20:52 +00:00
Mike Blumenkrantz e186c026bb freeze evas and edje when destroying comp canvas to prevent io event flushes from crashing during shutdown 2013-03-04 09:06:23 +00:00
Mike Blumenkrantz 1f34e88860 fix comp injected object stacking
previously this was done in such a way that if the "owner" stacking object of an injected object was restacked, the injected object would remain at its original stacking level since it was not tethered to anything and did not have X managing stacking. now comp will anchor injected objects to the stacking container window and adjust stacking as needed for them

fixes shelf stacking in some cases
2013-02-26 08:39:10 +00:00
Mike Blumenkrantz c73a9e58c0 some comp WIP on setting object color classes to handle opacity for windows...doesn't work right still because of focus clip 2013-02-25 10:02:57 +00:00
Mike Blumenkrantz 70d68a30e0 giant comp rejiggering commit #4
* dnd canvas removed, dnd objects now drawn directly on compositor canvas

* dnd now correctly picks the top-most dnd-receiver location as its drop target instead of just using the first one in the list

* various other small changes to go along with this
2013-02-22 13:18:30 +00:00
Mike Blumenkrantz 9eda384ea8 fix popup comp win initial visibility, also a potential crash on comp win delete 2013-02-22 13:18:30 +00:00
Mike Blumenkrantz 159373a340 add comp util functions for returning the layer and effective layer of a comp object 2013-02-22 13:18:30 +00:00
Mike Blumenkrantz bf9933a336 E_FN_DEL macro renamed to E_FREE_FUNC with param order swapped for consistency 2013-02-22 13:18:30 +00:00
Mike Blumenkrantz ea3f93025b set border transparency more accurately when adopting windows in comp 2013-02-22 11:47:41 +00:00
Mike Blumenkrantz 12ffdeb622 e's compositor now obeys _NET_WM_WINDOW_OPACITY as a normal atom in e_border
additionally:

* actions are now available for setting/changing window opacity

* window remembers can now remember window opacity

SVN revision: 84303
2013-02-22 09:33:13 +00:00
Mike Blumenkrantz 5db6e8a56f s/e_comp_win_find_border_win/e_comp_win_find_client_win/
the former could be bd->win, while the latter can only be bd->client.win

SVN revision: 84301
2013-02-22 09:33:06 +00:00
Mike Blumenkrantz 0ebb887d64 set comp win e object ref to null during its delfn
if this function is called, the object is in the process of being deleted and its refcount is already 0. trying to access it later will guarantee a crash, so ignore whever refs we may have on it


SVN revision: 84278
2013-02-21 11:28:15 +00:00
Carsten Haitzler e2f3f4e278 eobj referenced in struct but only reffed intermittenytly - ref for as
long as there is a handle. avoid segvs!



SVN revision: 84271
2013-02-21 03:53:49 +00:00
Mike Blumenkrantz 3294b377e8 add flag in comp match for disabling shadows, disable shadows for notification popup matches
SVN revision: 84254
2013-02-20 07:37:55 +00:00
Mike Blumenkrantz 8672080a60 fix comp canvas win finding for some dnd operations
SVN revision: 84238
2013-02-19 14:18:58 +00:00
Mike Blumenkrantz 2981c653a8 store e objects in comp win, delay deletion of e object comp wins until after animation
SVN revision: 84098
2013-02-19 09:54:57 +00:00
Mike Blumenkrantz 803b582904 remove comp wins from hash immediately when deleted to prevent access later
SVN revision: 84095
2013-02-19 09:48:10 +00:00
Mike Blumenkrantz 6cf4d21438 comp wins for injected e objects now wait until animations are done before allowing deletion
SVN revision: 84093
2013-02-19 09:14:58 +00:00
Mike Blumenkrantz ab49d56f83 comp win delete events no longer contain blank objects, allowing them to be useful
SVN revision: 84091
2013-02-19 09:14:53 +00:00
Mike Blumenkrantz 6836867a96 trivial comp cleanup for hide events
SVN revision: 84090
2013-02-19 09:14:51 +00:00
Mike Blumenkrantz 0857cf1515 remove forgotten debuging printf producer
SVN revision: 84089
2013-02-19 09:14:49 +00:00
Mike Blumenkrantz 90d6da42c5 block _e_comp_win_render_queue completely for real objects
SVN revision: 84085
2013-02-19 08:25:08 +00:00
Mike Blumenkrantz 622d13ee8f fix comp shadowing for popups and menus
SVN revision: 84084
2013-02-19 08:25:05 +00:00
Mike Blumenkrantz 8b28b2f2f1 revert previous few commits related to e_menu, not meant to go in yet
SVN revision: 84083
2013-02-19 08:22:46 +00:00
Mike Blumenkrantz f13c2d3c22 block _e_comp_win_render_queue completely for real objects
SVN revision: 84080
2013-02-19 08:09:11 +00:00
Mike Blumenkrantz ac5be4f255 fix comp shadowing for popups and menus
SVN revision: 84079
2013-02-19 08:09:08 +00:00
Mike Blumenkrantz 7b4783ec15 menus are now drawn directly onto the compositor canvas
SVN revision: 84078
2013-02-19 08:09:05 +00:00
Mike Blumenkrantz 6703cb2bf3 nocomp mode now dynamically enables/disables based on the state and stacking of fullscreen windows and comp objects
SVN revision: 84062
2013-02-18 13:43:55 +00: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 04330ef7d9 add comp functions for injecting objects into the comp layout
SVN revision: 84054
2013-02-18 13:43:22 +00:00
Mike Blumenkrantz 3d069d9601 unbreak input windows in comp and ensure they have container shapes: edge bindings which do not require dragging are once again functional
SVN revision: 83955
2013-02-15 13:46:59 +00:00
Mike Blumenkrantz 28a8ecf101 variable typo--
SVN revision: 83814
2013-02-11 09:39:27 +00:00
Mike Blumenkrantz cb79b14974 only add back shape rects for comp objects if pass_events is not set
SVN revision: 83813
2013-02-11 09:38:08 +00:00
Mike Blumenkrantz 3bf8de7e86 fix ogl fail dialog for comp, also skip comp gl attempt if gl not available
SVN revision: 83772
2013-02-08 09:05:41 +00:00
Carsten Haitzler ac9841acb5 ummmm how about we donmt break suspend with comp continually retruing
to suspend because a RESUME signal has a timeout to try suspending!



SVN revision: 83758
2013-02-08 04:25:11 +00:00
Cedric BAIL 7a67306f99 e: we can't create a window to warm about the compositor, before we start the compositor anymore.
This is a work around. That window should be delayed and displayed later, I guess.


SVN revision: 83755
2013-02-08 01:27:39 +00:00
Mike Blumenkrantz 2697c3a596 also add input rects in for shaped windows which make me cry tears of compblood
SVN revision: 83754
2013-02-07 14:39:36 +00: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 e670bc2326 formatting, switch __UNUSED__ to EINA_UNUSED
SVN revision: 83747
2013-02-07 13:19:52 +00:00
Mike Blumenkrantz 321f2b4fa3 comp structs now public, remove comp struct accessor functions, add comp utility functions to simplify getting comp from an e_object
SVN revision: 83745
2013-02-07 13:19:47 +00:00
Mike Blumenkrantz 7f35677bc0 e_manager_new now creates compositors for new managers instead of creating them all at once
SVN revision: 83743
2013-02-07 13:19:36 +00:00
Mike Blumenkrantz fc67e4810c comp no longer disables and reenables on startup from detecting the container window with nocomp_fs enabled
SVN revision: 83209
2013-01-24 08:41:25 +00:00
Mike Blumenkrantz 3767fe1ce6 typo for conf2 option to disable screen effects
SVN revision: 83085
2013-01-22 14:06:15 +00:00
Mike Blumenkrantz 6d4ccf159c finally fix bug with "don't composite fullscreen windows" option
ticket #1558


SVN revision: 83076
2013-01-22 11:34:45 +00:00
Mike Blumenkrantz b93d7aeb23 change a couple comp DBGs to WRN
SVN revision: 83075
2013-01-22 11:31:07 +00:00
Mike Blumenkrantz f217f7e0b3 set comp log level to info
SVN revision: 83074
2013-01-22 11:29:24 +00:00
Mike Blumenkrantz 0c524f1094 add null checks to external comp api
SVN revision: 83068
2013-01-22 10:18:53 +00:00
Mike Blumenkrantz b0c585cedd comp now has and uses its own log domain
SVN revision: 83067
2013-01-22 10:04:26 +00:00
Mike Blumenkrantz 65aaca959f move ecore-x checks in comp to beginning of comp init
SVN revision: 83066
2013-01-22 09:59:22 +00:00
Mike Blumenkrantz 8fcf2cbcca remove old e_msg-based comp api as well as e_manager_comp api, replacing both with e_comp functions and events
this completely breaks anything external which used comp, so module api version has been bumped


SVN revision: 82973
2013-01-18 12:47:14 +00:00
Mike Blumenkrantz e75bc273b2 e_comp.h now includes other comp headers, explicitly including comp headers is not necessary
SVN revision: 82972
2013-01-18 11:22:05 +00:00
Mike Blumenkrantz c088474ba6 fix comp bug where focus+urgency states were not applied to windows on startup
SVN revision: 82769
2013-01-14 17:03:52 +00:00
Mike Blumenkrantz cdbebff3ab all comp options are now available in conf2
SVN revision: 82718
2013-01-13 11:56:43 +00:00
Mike Blumenkrantz f15d34dcac remove unnecessary macro for comp engines and use enum values
SVN revision: 82702
2013-01-12 15:37:49 +00:00
Mike Blumenkrantz 16062072e4 simplify/streamline configure option adding, also add option domains so modules can get lists of their own options or other module options
SVN revision: 82695
2013-01-12 12:28:48 +00:00
Mike Blumenkrantz 7cca71bc95 add fallback timeout for system actions; now that comp is mandatory we have to account for the possibility that themes can fail to send correct signals, leading to the screen going black and nothing happening
SVN revision: 82639
2013-01-11 14:54:30 +00:00
Mike Blumenkrantz 71003dbeac add options (conf2 only for the next few minutes) and functionality to enable "fast" comp effects in theme
SVN revision: 82631
2013-01-11 11:53:29 +00:00
Mike Blumenkrantz 34aab4c595 typos in effect disabling checks
SVN revision: 82630
2013-01-11 11:49:56 +00:00
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00
Mike Blumenkrantz 845ba1ba12 add conf2 option for default comp shadow style
SVN revision: 82624
2013-01-11 10:30:01 +00:00
Mike Blumenkrantz 70e40291f6 another new comp option for disabling screen effects (fading on blank)
SVN revision: 82623
2013-01-11 09:21:39 +00:00
Mike Blumenkrantz 0c282e6018 move conf2 comp options to e_comp
SVN revision: 82618
2013-01-11 08:20:14 +00:00
Mike Blumenkrantz e0b0c10914 rename e_comp_shadow_set to e_comp_shadows_reset to be more descriptive about what it does
SVN revision: 82570
2013-01-10 14:05:08 +00:00
Mike Blumenkrantz 79a1d45534 now that comp is mandatory, I require options to completely disable comp effects before I can use e without tearing my eyes from their sockets
SVN revision: 82564
2013-01-10 13:20:02 +00:00
Mike Blumenkrantz 3394a2b461 fix comp config dialog settings apply (:/), fix comp config saving (:/), fix comp config dialog config loading (:/), change comp config domain to "e_comp" (your settings will be lost if you do not manually rename)
SVN revision: 82563
2013-01-10 13:03:36 +00:00
Mike Blumenkrantz 9c92b1b73c fix e_comp_shutdown return type and make e_comp_{init,shutdown} EINTERN so they can't be disabled
SVN revision: 82518
2013-01-10 07:53:20 +00:00
Lucas De Marchi 8cacf8429d e: merge comp module into core
* Move compositor to core, but letting the configuration there
 * Rename all files and functions from e_mod_comp_* to e_comp_*
 * Move the config dialogs to a new module named conf_comp. It still
   uses a domain config, otherwise it would not pick the current
   user's configuration. Maybe it would be wise to later on move these
   options to e_config
 * Fixup the wizard mess linking the header in the build tree in order
   to be able to create the config. Since now it's in core, we don't
   need to play linking games in the build system

I'm not sure if the wayland part works. It was not even building
previously so I'll let for who cares about this to actually test and
report bugs.



SVN revision: 82454
2013-01-09 11:34:07 +00:00