Commit Graph

183 Commits

Author SHA1 Message Date
Marcel Hollerbach f7708c6e74 focus: leave frame focus setting here
that might cause bugs, however, everything else might end up in a
endless recursion.
2022-01-09 17:38:55 +01:00
Marcel Hollerbach 841c8f477f focus: do not revert to another client when client is unfocused
This was a nice idea to fix most focus bugs at once. However, due to the
runtime of e many things can get "randomly" focused, for exmaple: volume
control on the frame, internal dialogs, config value screens when
grabbing for keys, widgets when they get created in a gadget. The list
is quite long. However, fixing all those little bugs is hard and partly
impossible as the behaviour is correct in the context of a toolkit, not
in the context of a compositor.

Long term we should split window-focus and canvas-focus from each other,
then bugs like these would not be a problem anymore.
2022-01-09 15:51:34 +01:00
Christopher Michael f4e0d7612e desks: Assign some default desktop names
By default, desktops should (realistically) be assigned some form of
name so that they are not blank. This Fixes the issue of no Desktop
labels in the Virtual Desktop menu, and also fixes the issue mentioned
in the below ticket where "Show on Specific Desktop" dialog would not
show any type of description for the desktops when trying to place a
shelf.

NB: Uses the format of Desktop X,Y (ie: Desktop 0,1)

Fixes T8838

@fix
2021-01-19 15:51:12 -05:00
Carsten Haitzler 6cb25300f1 e desk - remove unused vars 2019-09-20 10:47:23 +01:00
Carsten Haitzler 11c0fb01bd pager/desks - stop using numeric N,M if no name is set - be blank 2019-09-19 18:37:52 +01:00
Carsten Haitzler a57aa83793 report error from system() calls that dont run cleanly - warn fix 2019-01-12 21:11:31 +00:00
Carsten Haitzler 493bedd5cf warn - make buffer bigger to avoid trunc warn 2019-01-12 01:51:43 +00:00
Mike Blumenkrantz 5dc267ec84 block all desk flips during window resize
this breaks *

fix T5984
2017-09-06 13:32:25 -04:00
Mike Blumenkrantz b246cc27ee handle focus reverting correctly when using desk flip all actions
perform the focus revert once the last desk has finished flipping and based
on all available visible windows

fix T3495
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz 57edf1bbd8 remove E_Config->desktop_default_name
this is an easy format string attack vector which serves no purpose
that I can fathom. the commit log where it was added it also made
no mention of this, as it was done in a seemingly-unrelated feature
addition
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz c5b3aba6fd specify format string for desk names in desk config
-Wformat=2
2017-01-06 12:57:34 -05:00
Carsten Haitzler 5c38609e0e client handling - add support for window stacks needed for views/manager
this adds core basic handling for window stacks where windows behave
correctly as a single unified stack something like what naviframe does
but out-of-window so you can including multiple processes. only on x11
right now as it's being supported/worked on.

as we dont plan to kepe naviframe in future, this is the way to go.
naviframe "pages" will be windows in a stack. the wm should do the
nice thing. in e this will be very nice. for now elsewhere we use
transient_for so a wm would treat this like a bunch of dialogs with a
single parent window. i guess in a desktop thats probably what you
might expect. e will be a little more "finesse" filled.

need to make ibar, tasks,m win menu and winlist (alt-tab) respect this
and only show the top member of a stack.

need to send messages to clients when they are "top" or "middle" or
"bottom" or "alone" in the stack or something so decorations can change.

should add soem new border signals in theme (for both SSD and CSD) to
make this look nice. will need some config additions for that and
ability for e comp to do the right thing

but this is a solid start
2016-12-16 16:17:10 +09:00
Mike Blumenkrantz abb97ca0fb force zone useful geometry recalc on desk flip if prev/next desk has obstacles
ensure that this gets calculated accurately any time it's applicable
2016-10-04 09:22:05 -04:00
Mike Blumenkrantz 9002c4d7a5 Revert "send mouse out+in on desk flip end"
This reverts commit 782cf3606e.

should be resolved in a better way with upcoming commits
2016-03-07 14:39:56 -05:00
Mike Blumenkrantz 782cf3606e send mouse out+in on desk flip end
this triggers mouse in events on objects under the mouse in order to
forcibly reapply focus for mouse-based focus policies

fix Tfrance
2016-02-01 11:04:38 -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 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
Mike Blumenkrantz a08ac02e82 add config option for allowing sticky windows to receive focus reverts
since forever, sticky windows have not been allowed to receive focus after
various events, eg. desk flip or window close. in some workflows, however,
this may actually be desired behavior

disabled by default

fix T2837
2015-11-30 16:27:04 -05:00
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