Commit Graph

145 Commits

Author SHA1 Message Date
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
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