Commit Graph

215 Commits

Author SHA1 Message Date
Marcel Hollerbach e6609541b1 tiling: prevent potential recursive apply calls
additionally, this ensures that clients that cannot be layouted are
definitly outside the tree. Without applying the window tree again.

With all this tiling can be used quite normally. If you want to know
exactly what is going on, set notify level to info, then tiling tells
you what cannot be tiled.
2020-07-21 15:22:50 +02:00
Marcel Hollerbach 48247416a5 Revert "tiling - avoid infinite loop of not fit - toggle float, not fit, toggle"
This reverts commit 265c306874.

This is somehow the wrong way of doing that. Next commit will bring
protection against multiple recursive window_tree_apply calls.
Additionally, we should prepare to *not* accidently tile a  window that
has been previously untiled.
2020-07-21 15:22:50 +02:00
Elyes HAOUAS 153f479d3f tree-wide: fix typos all over the place
Fix some typos

Differential Revision: https://phab.enlightenment.org/D11778
2020-05-14 12:04:51 +02:00
Carsten Haitzler 567b12ab06 tiling - untrack clients we have restored
this should fix a crash on shutdown and other related issues where
tiling may still watch after it's released a window.

@fix
2020-05-11 11:47:20 +01:00
Carsten Haitzler a172d930da tiling - ignore min size for layout of tree to avoid insta-floats
so some clients just cant tile due to min size and this leads to
really bad results so pass the problem back to the user to go resize
them up to fit. this probably needs far more extensive layout logic.
the data struct is a tree but perhaps it needs to flatten out into a
table to make layouting more sane. but that's the future. for now be
less bad today.
2019-08-10 10:57:09 +01:00
Carsten Haitzler e11eb90231 tiling - on not fit error use name get util and translated strings
if we use the util func we do get a title... and als use translation
too for this notification. Also increase timeout so people can read it
and notice it.
2019-08-10 08:38:27 +01:00
Carsten Haitzler 265c306874 tiling - avoid infinite loop of not fit - toggle float, not fit, toggle
this actually just blows the stack soon enough... so short circuit it.
2019-08-10 08:32:11 +01:00
Carsten Haitzler 6134ac44cf tiling - disable last frame adj - this blocks resizing entirely...
for me this seems to improve things... drastically... fixes resizing
int iling whne no borders selected.
2019-08-09 22:18:14 +01:00
Carsten Haitzler fa0608b50f tiling - use a tiling specific border if it exists in theme and cfg
if you set cfg not ot use nomral borders then use "tiling" if it
exists instead of "pixel" as thats probably the right thing to do...
2019-08-01 13:47:30 +01:00
Carsten Haitzler d14b566aa8 tiling - fix theme elements to be namespaced with e/ 2019-04-04 09:11:54 +01:00
Carsten Haitzler 63d36aa44a fix casts to use void ptr to avoid warning that isnt important 2019-01-12 01:51:43 +00:00
Ross Vandegrift 629f7d41c8 clean up .desktop files and misc typos
Summary:
Drop deprecated Encoding key from desktop files

The Encoding key is no longer required, all desktop files are assumed to
be UTF-8 encoded.  See details at:
https://standards.freedesktop.org/desktop-entry-spec/1.1/apc.html

Fix various typos and misspellings

lintian, Debian's package checker, uses strings to check for common typos
in compiled binaries.  This change fixes the ones it identified in 0.22.1.

Reviewers: zmike!

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5585
2018-01-04 09:57:52 -05:00
Mike Blumenkrantz 99db9e2557 more E_BITFIELD conversions 2017-11-08 09:22:24 -05:00
Carsten Haitzler 320d689c9d tiling - ensure notification struct is 0'd before use
this should fix the last 3 crashdumps reported in T6023

@fix
2017-09-19 07:56:29 +09:00
Mike Blumenkrantz 6dd9205e0a rename E_EVENT_COMPOSITOR_RESIZE -> E_EVENT_COMPOSITOR_UPDATE 2017-09-01 13:40:11 -04:00
Marcel Hollerbach 5eed5f6fdb tiling: give a better error message if a client doesnt fit 2017-08-15 10:59:15 +02:00
Marcel Hollerbach d9737ddba5 tiling: change description
in one of the last commits i accedently just changed the title on
deletion not when we are creating the action.

fixes T4499
2017-08-14 10:13:49 +02:00
Marcel Hollerbach 2e5c9cbe71 tiling: show notification if a client cannot be tiled
this at least tells the user that the client could not be tiled and not
just mysterically putting it under floating.
2017-08-13 19:06:07 +02:00
Marcel Hollerbach de21e6ddb8 tiling: fix insertion in the tree
the problem here was that in the initial case the function got the
previous state of the tree wrong, so the insertion of a second client
ended up in a unpossible state of the tree, this should not happen
anymore now.

The insertion is now also way more stable, since in a errorcase the
client is not just not placed in the tree but associated with a window
tree, its just not placing the client in the window tree at all.
2017-08-12 22:30:33 +02:00
Marcel Hollerbach f1fb4a0c83 tiling: only use the insert function
this brings all possible bugs due to insertion to one single function
2017-08-12 22:30:33 +02:00
Marcel Hollerbach 79996f9bdb tiling: fix compile warning
item got set but never used
2017-04-19 17:31:47 +02:00
Marcel Hollerbach b5ad46b33b tiling: extra can be NULL here
Which is the case when the client is not tiled. So better checking for
it.

fixes CID 1373271
2017-04-19 17:31:47 +02:00
Marcel Hollerbach 8e3531648b tiling: fix zero sized zone
when plugging a screen in and out, there is the case that a zone has a
usefull geometry of 0x0, which means all clients on this zone are
resized to 0x0. Which leads to a CRIT message in the compositor, which
leads (ref commit 5d875e6a3d) to a abort()
which is really really annoying. Give here a short ERR about that case
so we are leaving out the compositor, since this really only strikes on
tiling, since in normal mode the client just keeps its size.
2017-04-05 10:08:21 +02:00
Marcel Hollerbach f190a00f16 tiling: display the hint on the zone if there is no client below 2017-03-22 19:51:50 +01:00
Marcel Hollerbach 954e1a390e tiling: update the indicator where the icons are dropped 2017-03-21 20:43:12 +01:00
Marcel Hollerbach 6732c37929 tiling: only start a drag when the cursor is really moved
otherwise a simple click on the header will init a completly drag, which
is often not desired.
2017-03-18 22:08:41 +01:00
Marcel Hollerbach 1277ef9747 tiling: drop move requests from tiled clients 2017-03-10 21:44:08 +01:00
Marcel Hollerbach 2faf052f0d tiling: handling dragging from desk to desk
There are a few cornercases when dragging clients between a tiled and a
untiled one.
2017-03-10 13:49:58 +01:00
Marcel Hollerbach 37be0cf885 tiling: handle the tiling state correctly when on multimonitor
there is no event that indicates that the mouse went to a other zone. To
solve this we simply update the current split type each time when
changing or using the type.
2017-03-10 13:49:44 +01:00
Marcel Hollerbach d1e2d1068a tiling: save the split type per desk
this allows you to have different types per virtual desktop
2017-03-09 23:06:23 +01:00
Marcel Hollerbach 35e729f941 tiling: make windows placable by dragging them arround
If someone starts to drag a client arround, then the client will shrink
into a icon, that now is always at the position of the mouse cursor, if
the drag ends, the client will be placed in the client currently below
it. The client will be placed in a place where the mouse cursor was
currently closer to.
2017-03-09 13:59:48 +01:00
Marcel Hollerbach fa0d585aa5 tiling: insert a client in the place where it is currently placed
With this patch we are inserting a client in the tiling tree where it is
currently placed in floating mode.
2017-02-25 17:02:06 +01:00
Marcel Hollerbach 4937897c0b tiling: dont use floating state when toggling
when someone toggles a client he usally doesnt want to have it again in
toggle state, so make sure its vertical or horizontal.
2017-02-21 20:35:00 +01:00
Mike Blumenkrantz 040b5f6a44 watch client UNIGNORE hook for adding new tiling clients
ref 6f5e2ddefcd287640416c8da362b3865299e331b
2017-02-10 17:24:13 -05:00
Derek Foreman 4cf555f36e Replace all timer_reset with timer_loop_reset
Another sed bomb - didn't occur to me first time around to
check for this.  Cleans up more clock_gettime calls.
2017-02-06 15:59:25 -06:00
Derek Foreman 73aecd73ab Replace all timer_add with timer_loop_add
So yeah, I've literally used sed to replace every occurrence of
ecore_time_add() with ecore_timer_loop_add() because I'm reasonably
confident that no part of E has a legitimate need for timer based on the
exact current time.

It would be really nice if I'm not wrong. :)

The reason for this is the incredible spew of clock_gettime() calls I'm
seeing on an ARM system (that should have a vdso for gettime, but...)
This can amount to thousands of system calls per second.

 #YOLO
2017-02-03 15:52:28 -06:00
Carsten Haitzler 3903d44666 e - BLOODY BUILD AGAIN - DAMN FLOAT WARNINGS...
i swear ... all of this shit over a warning that CAUSED more bugs than
it eveer fixed? sersiously...

ARGH!
2017-01-07 14:05:17 +09:00
Mike Blumenkrantz 6f1f165d32 resolve certain double/float comparisons in with increased correctness
ref 03d0f1d2dc

Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:28 -05:00
Carsten Haitzler 03d0f1d2dc e - fix float warnings cmp where they actually may cause issues 2016-12-28 19:55:20 +09:00
Marcel Hollerbach 686dc747d6 tiling: be more accurate on the description
As user reported, this could be a bit missleading.

fixes T4499
2016-09-06 16:43:23 +02:00
Marcel Hollerbach f5e4403164 tiling: place popup on the current active zone
Otherwise the popup will be where you are not looking at.

This patch adds a new function to e_comp_object where you can pass the
zone where you want to place the e_comp_object on.

ref T4499
2016-09-06 16:31:13 +02:00
Mike Blumenkrantz fe5d2e6e61 add bool return for mouse-based E_Action callbacks
in many cases, a mouse action's callback will fail to execute as a result of multiple
objects being under the pointer at the time of the event. in this case,
the callback should be able to determine whether action callback processing should
continue.

as an example, when attempting to execute an action which only activates for
client objects, if the passed object is not a client then the callback should return
false to indicate that it was not able to perform the action for the given object,
allowing further actions to be attempted on this object
2016-02-03 18:09:18 -05:00
Tom Hacohen 0381a7b06f Tiling: tile windows with "Static" gravity.
I can't find anything in the specs that would imply those shouldn't be
tiled. This may cause placement bugs, but I don't think that'd be the
case, as we ignore application placement when tiling anyway.

@fix
2016-01-04 14:06:13 +00: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
Tom Hacohen 64f1f7fcff Tiling: don't tile centered windows.
This broke with the change to elm (so within this release cycle). Tiling
wasn't properly detecting windows who become centered after creation as
there was no e event for that. This is now fixed, and a blanket solution
for similar gotchas has been implemented (otherwise known as a hack).

Thanks to Mike for helping out.
2015-04-13 11:20:09 +01:00
Mike Blumenkrantz 09ec213a31 remove e_util_zone_current_get() usage 2015-03-13 17:58:45 -04:00
Mike Blumenkrantz 34d906fa42 e_zone functions no longer require E_Comp param 2015-03-13 17:28:49 -04:00
Mike Blumenkrantz 2a9296e0ec remove E_Event_Compositor_Resize struct
corresponding event no longer sends event info
2015-03-13 16:12:35 -04:00
Mike Blumenkrantz 1fe1c94245 comp canvas functions no longer require an E_Comp param 2015-03-13 16:07:08 -04:00
Mike Blumenkrantz 91edd1ce2f E_CLIENT_*FOREACH() macros no longer take a E_Comp param 2015-03-13 15:45:07 -04:00