Commit Graph

164 Commits

Author SHA1 Message Date
Mike Blumenkrantz 3762dd6caf send FLOAT_SET edje messages during desk flip
panoramic wallpapers are created to expect this type of message

ref T2219
2015-09-21 15:03:35 -04:00
Mike Blumenkrantz 26b1e84e6f simplify e_desk_show visibility unsetting, reject recursive desk flips
the currently visible desk for a zone is stored on the zone struct, so
iterating here is unnecessary. furthermore, at the time when a desk is hidden,
a client may begin receiving mouse events which could trigger a focus-set and
lead to another desk flip. at this time and only this time, the "current" desk
will be marked as not visible, and so this sort of desk show must be rejected

fix T2676
2015-08-21 16:42:16 -04:00
Mike Blumenkrantz 44193b665e only use deferred focus-setting on desk flip focus if client is not visible 2015-08-18 21:06:59 -04:00
Mike Blumenkrantz 81a797a0fa defer focus-setting on focus revert during desk flip when visibility is pending
in the case that a client is going to be shown on the next loop iteration,
focus setting must still occur and be deferred

this fixes the case of a window appearing on a desk while the user is switching
desks away from it even though this window is attempting to focus itself
2015-07-31 13:58:29 -04:00
Mike Blumenkrantz 24ec288b3c remove spurious focus setting on desk flip without animation
focus gets automatically handled in e_desk_flip_end(). changing it
again here will produce unintended/wrong results in some cases

fix T2071
2015-07-29 19:47:49 -04:00
Mike Blumenkrantz 0d3ade0f07 unset changes.visible when forcing visibility during no-effect desk flip
this is set for new clients and creates visibility issues on startup
2015-06-29 15:48:27 -04: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
Yomi 96ba030edb Correct misspelling.
Summary:
Correct misspelling.
Changes: Fix misspelling in e_desk.c

     src/bin/e_desk.c

Reviewers: zmike, raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2466
2015-05-03 17:45:17 -04:00
Mike Blumenkrantz b4e41d52c5 force visibility on clients before attempting to hide them
this ensures that edje visibility states get reset in the event of toggling
visibility extremely quickly

probably fixes T2260
2015-04-29 17:21:14 -04:00
Mike Blumenkrantz dedf4cd896 remove manager references in desk name/profile configs 2015-03-19 17:10:26 -04:00
Mike Blumenkrantz 58447e9508 completely remove E_Manager
the final step in flattening all the canvas/screen apis
2015-03-19 16:53:32 -04:00
Mike Blumenkrantz 471dcb24cb __UNUSED__ -> EINA_UNUSED
this has been bugging me forever. __UNUSED__ is no longer a valid macro here.
2015-03-18 18:09:09 -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 ba7c1ac49c remove E_Zone->comp member 2015-03-13 17:44:24 -04:00
Mike Blumenkrantz d00127c2f5 e_comp functions no longer require E_Comp param 2015-03-13 16:48:41 -04:00
Mike Blumenkrantz 91edd1ce2f E_CLIENT_*FOREACH() macros no longer take a E_Comp param 2015-03-13 15:45:07 -04:00
Chris Michael 4814695439 de-e_comp_get()ify e_desk
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-23 14:32:41 -05:00
Mike Blumenkrantz 363a78a260 continue to hide window input regions on desk flip if they are shaded 2015-01-23 14:26:28 -05:00
Mike Blumenkrantz 922af2c52f remove e_comp_list(), deprecate all related functions for pending removal
there is only one E_Comp which can now be accessed by the e_comp global.

if you're editing a file with some uses of these deprecated functions, replace their usages with appropriate references to this variable

pass -Wno-deprecated-declarations to ignore these warnings during build
2015-01-05 15:39:15 -05:00
Marcel Hollerbach c2f596a06a Fix wrong deskshow function
Summary:
The loop E_CLIENT_REVERSE_FOREACH was used to iconify and uniconify the
icons. The worked well for uninconify.

But if the first client with the focus gets iconifyed the lower one in
the stack will get the focus and will be raised to the top, but the loop
will continue with the next of the now iconifyed e_client, so this one
will be skipped.

Now the forward loop is used to iconify and the reverse to uniconify the
e_clients.

This fixes T1797

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, cippp

Maniphest Tasks: T1797

Differential Revision: https://phab.enlightenment.org/D1655
2014-11-12 20:49:46 +01:00
Mike Blumenkrantz 971ca73b72 don't apply desk transitions for new clients 2014-06-20 11:16:52 -04:00
Carlos Rafael Giani 9e6c276905 bugfix: Fix buffer overflow in desk_show.
Was the wrong structure type which caused writing after the allocated
size and was generally bad and wrong.

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2014-06-01 15:16:37 +01:00
Tom Hacohen 31d652f87f Remove hacky "+ 8" to the allocation size.
There is actually a real bug there that will be fixed by the next patch.
2014-06-01 15:16:05 +01:00
Mike Blumenkrantz 6308846480 don't refocus hidden clients on desk flip
probably fix T1083
2014-03-27 16:47:19 -04:00
Chris Michael 915f8f0613 @bugfix: Fix building for WAYLAND_ONLY by using the proper define
sed -i 's/WAYLAND_ONLY/HAVE_WAYLAND_ONLY/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 07:43:04 +00:00
Seunghun Lee b137b7e741 fix use of same variable in e_desk double-loop
Reviewers: zmike, seoz

CC: cedric

Differential Revision: https://phab.enlightenment.org/D632
2014-03-13 09:38:11 -04:00
Seunghun Lee 48c28213c9 fix use of same temporary variable in for loop.
Summary: it caused crash when user edited desk's name after adding desk.

Reviewers: zmike, seoz

CC: cedric

Differential Revision: https://phab.enlightenment.org/D631
2014-03-13 08:46:39 -04:00
Carsten Haitzler 22369ffc7b ensure that the bg object exists before emitting signals in e_desk_show() 2014-02-21 09:34:25 +09:00
Mike Blumenkrantz 793b6ff319 improve stringshare use for e_desk window profile and name 2014-02-06 12:38:59 -05:00
Mike Blumenkrantz 66325b2207 Revert "stop crash on accessing ec->desk if its null"
This reverts commit c3791d6b43.

this is a workaround which prevents the underlying bug from being fixed.
2014-02-05 12:47:03 -05:00
Carsten Haitzler c3791d6b43 stop crash on accessing ec->desk if its null
unknown if this was a bug before - never saw it before, so for now
shal assume it's new.
2014-02-06 01:18:16 +09:00
Carsten Haitzler 4e8b14a245 formatting fix. 2014-02-06 01:18:15 +09:00
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