Commit Graph

220 Commits

Author SHA1 Message Date
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
Tom Hacohen 0bc3399274 Tiling: don't try to change the border of borderless windows.
@fix
2015-01-04 13:45:16 +00:00
Marcel Hollerbach 8f85fe79df Tiling: Fixed break out method
Summary:
This fixes the case when par is NULL, this means we should insert a
parent node between the 2 nodes and root. (T1790)

Example:

Each Number is a Window,

12
Focus on 2

Press Win+Up should end up in this:

2
1

This patch also makes the bahavior for 2 windows more
consistent

12
Focus on 2

Pressing Win+Right,

21

It Will just swap the nodes,

This is the same behavior then in higher levels.

Reviewers: tasn

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1643
2014-11-25 12:32:43 +00:00
Carsten Haitzler 9d5483963a e - tiling module - silence warning (real possibility of an issue)
grand_parent couldbe used in an uninitialized state - this is right.
it'd be garbage (not NULL). set to NULL always to be safe
2014-11-25 17:11:18 +09:00
Mike Blumenkrantz 99589eb5af remove E_Win+e_canvas, convert all internal wins to use elm_win
known issues:

* keybindings for efm windows (eg. ctrl+w) are broken until the rest of the conversion is completed
2014-11-20 15:26:21 -05:00
Tom Hacohen c702763df7 Tiling: Fix up previous tiling commit (make it safer).
This is the second time recently I forgot to merge commits. :(
2014-11-03 14:45:03 +00:00
Marcel Hollerbach ca1a531c78 tiling: Fix issue with window-moving and windows not breaking out.
Summary:
The module is now working like it is described in T1773.

What the patch really does:
If a join request can not be done cause there is no node in the
direction to join, the join will try to break out the node into the
grand-grand-parent, this means a node can break out of his parent
without walking done each parent.

Issue as described in the original ticket:
Each number represents a different window:

122
134
155

Focus on 3, press Win+Left

I'd expect it to become:
132
134
135

But instead, nothing happens.

Fixes T1773

Reviewers: tasn

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1632
2014-11-03 14:35:46 +00:00
Tom Hacohen d8b473b5c3 tiling: fix coding conventions and style.
Should have been squashed into the previous commit. :(
Anyhow, this fixes conventions and some potentially
dangerous style choices.
2014-10-29 08:25:04 +00:00
Marcel Hollerbach 4c0f0c638f tiling: Implemented tiling window position manipulation
Summary:
This implements the possibility to "break out" a node in the tree which
means that the node will be appended or prependen to the parent in the
grandparent.

The other function "joins" the node to the node before or after.
Basically it will be added as a child, and if necessarry the client
of this node will be added in a new Window Tree and also added as a child.

With the new actions you can move the focused window right/left/up/down
with keybindings.

If the window will "break out" or "join" depends on the parent split type.

Sample:
1|4|6
2|4|6
3|5|6

(Same Number means same Window)

1 is focused.
Left Key is pressed.

1 is in a vertical split so the window will "break out".
Result:
2|1|4|6
2|1|5|6

Now another key:
Down Key is pressed.

1 is in a vertical split so the window will "join".
Result:
1|2|4|6
3 3|5|6

@feature

Fixes T1350

Reviewers: tasn

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1382
2014-10-29 08:15:19 +00:00
Tom Hacohen a8d8844d5c Fix tiling window properties restore issues with iconify.
Windows properties (like border) weren't being restored on iconify.
2014-10-23 13:37:59 +01:00
maxerba fac4e89dfa Updating desktop files, eo.po and fr.po 2014-09-11 21:14:58 +02:00
Tom Hacohen 37462c7cb7 Tiling: Respect min size hints (set to floating if doesn't fit).
This fix floats all the windows that don't fit because of their min size
restrictions.
It can be made better, at the moment it is very simple. An example
broken case would be the following:
Assume we have 3 windows, A, B and C.
B and C both hand a min width of half the screen.

First we create A, then B. Everything works as they share the screen,
but when we add C, both B's and C's restrictions "fail" so they are both
set to float although in reality, floating C is enough. This can be
fixed by doing a live scan of the tree every time a window is floated,
though it's not essential at the moment.

Fixes T952.
2014-08-28 16:33:54 +01:00
Tom Hacohen 4b24177b4c Tiling: Fix applying tiling on enable with a new config.
Tiling wasn't being applied when enabling it with a new config because
we were comparing with the old config instead of just always applying.

This fixes T974.
2014-08-20 11:02:20 +01:00
Mike Blumenkrantz 87a79f3dd7 improve tiling startup to not reapply its tree * n_clients 2014-07-30 00:51:03 -04:00
Tom Hacohen c29b87c927 Tiling: Fix handling of shelves with top orientation.
This uses the newly added function that lets us get the correct geometry
for all desks.

Fixes T1320.
2014-07-29 01:39:34 +01:00
Mike Blumenkrantz 87b9003092 use e_client_border_set() in tiling 2014-07-28 08:42:24 -04:00
Mike Blumenkrantz 69c89d7202 unset border.changed after changing border in tiling
fix T1456
2014-07-28 08:42:24 -04:00
Tom Hacohen 6da3771eb8 Tiling: Clean up the tiling entry check code.
This makes it a little less redundant.
2014-07-28 10:41:54 +01:00
Mike Blumenkrantz 40d0505e51 check tileable state before enforcing client entry existence
fix T1304
2014-07-27 16:58:58 -04:00
Mike Blumenkrantz d621cb6738 tiling should stop pussyfooting around frame changes and do its own gruntwork
fix T993
2014-07-27 16:53:25 -04:00
Mike Blumenkrantz 06cbbb1ac4 correctly use EC_CHANGED in tiling 2014-07-27 16:45:39 -04:00
Mike Blumenkrantz a4619ea492 tiling should not resize deleted clients 2014-07-19 15:47:21 -04:00
Marcel Hollerbach b0f9480eee tiling: this should fix swapping the windows with padding!
Summary: add the padding to the if clause

Test Plan: Set a padding and press WIN+Arrow keys

Reviewers: tasn

Reviewed By: tasn

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1117
2014-07-03 20:38:33 +01:00
Mike Blumenkrantz 3bb96a77f0 remove calls to e_place_zone_region_smart_cleanup() in tiling unload
this is not the correct way to use this function, and tiling should probably never call it. this is a function for (slowly) repositioning every client on the currently visible desktop while trying not to overlap. on failure, which occurs when clients cannot be placed without overlapping, it moves clients to 0,0.

fix T1310 because there is no i in team
2014-06-16 13:35:57 -04:00
Tom Hacohen b16f04279a Tiling: Mark already deleted client as non-tilable.
This should fix T1301, however I can't reproduce.
2014-06-03 12:49:10 +01:00
Tom Hacohen 70e9b54dde Tiling: Use pre_frame_assign hook instead of fetch.
This essentially reverts 8f0272eb40.

Seunghun Lee, that's why I told you to ask Mike. :)

Fixes T1311
2014-06-03 12:42:30 +01:00
Seunghun Lee 8f0272eb40 tiling: removed unnecessary resizing of window.
Summary:
change the time to call _add_hook to eval_fetch in tiling.
finally, tiling resize window after setting desk of client.

Reviewers: tasn

CC: cedric

Differential Revision: https://phab.enlightenment.org/D869
2014-05-19 09:46:05 +01:00
Seunghun Lee c907a0eead tiling: fix that tiling can't remove client in _desk_set_hook.
Summary:
initailize the tinfo before calling _remove_client.
remove call "_desk_should_tile_check" in "_remove_client", and added it before calling "_remove_client".
That's beause, in _desk_set_hook, use ev->desk (old desk) to initialize tinfo, and then only remove ec using _remove_client.

Test Plan:
(1) launch any app in one desk.
(2) change the any desk.
(3) launch browser or xchat like the app that launch time is relatively slow.
(4) change the in (1)'s desk quickly before completely launching browser or xchat.
(5) you can see wrong splited screen.

Reviewers: tasn, raster, zmike

CC: cedric

Differential Revision: https://phab.enlightenment.org/D860
2014-05-16 10:21:31 +01:00
Seunghun Lee 60d78371db tiling: fix enlightenment can be freezed by infinite event callback.
Summary:
initialize the tinfo when remove client in tiling.

the reason why of "freezing" that tiling added window twice into _G.tinfo->tree.
then tiling module set to a different size about same window as if two different window.
finally, the event "E_EVENT_CLIENT_MOVE" occurs by changing geometry, and tiling resize the window again by the event "E_EVENT_CLIENT_MOVE".

next, it is the cause of this problem.

In (4), when user types ALT+TAP.
 - tiling module adds uniconify window into _G.tinfo->tree.
 - at this time, _G.tinfo is the informaion of one desk.
 - E create input_only window and destoryed for a moment.
 - tiling module initialize the _G.tinfo by the event EVAS_CALLBACK_DEL happend by destorying input window.
 - now, _G.tinfo is the informaion of the other desk.
In (5), iconify app.
 - tiling try to remove window from _G.tinfo->tree, but failed. (problem)
 - because _G.tinfo isn't initialized to the desk including uniconify window at that time.
In (6), uniconify app.
 - tiling change the _G.tinfo, then insert client info to _G.tinfo.

so I suggest that initializing the _G.tinfo when removing window.

Test Plan:
(1) launch any app.
(2) Iconify it.
(3) change the desk different with launching app.
(4) Uniconify app by ALT+TAP.
(5) Iconify it again.
(6) Uniconify it again.

Reviewers: raster, zmike, tom, tasn

Reviewed By: tasn

CC: cedric

Differential Revision: https://phab.enlightenment.org/D850
2014-05-14 11:05:51 +01:00
Tom Hacohen dfbb42b81d Tiling: Set pass events on the split type popup. 2014-05-06 15:56:38 +01:00
Tom Hacohen 1433be5e3c Tiling: Add informational popup when changing tiling mode. 2014-05-06 15:44:55 +01:00
Tom Hacohen 10d009339a Tiling: Allow changing tiling mode through key-binding from all desktops.
Without this it is impossible to change the tiling mode using the key binding
but you can still change it using the gadget which is stupid.
2014-05-06 14:41:48 +01:00
Tom Hacohen f3d0f73cf6 Tiling: Fix toggle floating mode for untiled window.
This is useful in case they are going to become tiled, e.g maximized
or just from another desktop.
2014-05-06 14:38:44 +01:00
Tom Hacohen 938dee1e3b Tiling: Fix some issues and simplify code.
This fixes the issue with a floating window turned tiled and then closed
leaving a ghost window.
2014-05-06 14:22:04 +01:00
Mike Blumenkrantz 360707e9b1 fix tiling memory corruption
CID 1186206
2014-04-04 15:04:28 -04:00
Stefan Schmidt 22278399d3 tiling: Free allocated memory on error path.
We don't use new_node in this code path. Free before returning.

CID 1186205
2014-03-27 16:06:06 +01:00
Tom Hacohen 07841a6b5e Tiling: start migrating the code to use smart callbacks.
Those are meant to be better than the e hooks.
2014-03-20 17:40:23 +00: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
Sebastian Dransfeld 11a7aa51ec tiling: gitignore
ignore created .edj file
2014-03-07 10:01:46 +01:00
Carsten Haitzler 565faa1155 based on submission from Seunghun, Lee - dont access NULL desk
this effectively accepts D574 but is re-done with different formatting.
2014-03-05 15:27:15 +09:00
Tom Hacohen 69ad15a480 Tiling2: Rename module to tiling1 in the desktop file. 2014-02-21 09:28:15 +00:00
Tom Hacohen 652392beff Tiling2: Fix handling windows that become untilable after we've added them.
This fixes T946.
2014-02-21 09:15:18 +00:00
Tom Hacohen 5bf441960d Tiling2: Change all checks for ignored windows to check if tiled. 2014-02-21 09:15:18 +00:00
Tom Hacohen 6a7aeb7695 Tiling2: Cleaned up maximized check function a bit. 2014-02-21 09:15:18 +00:00
Tom Hacohen 555ac8c0d9 Tiling2: Fixed maximized windows handling.
This got broken with all the reshuffling. Another fix.
2014-02-21 09:15:18 +00:00
Tom Hacohen fbcd03c48a Tiling2: Merge back restore client and the non sizing variant. 2014-02-21 09:15:18 +00:00
Tom Hacohen baaad1c09a Tiling2: Fixed geometry restore for maximized and fullscreen windows. 2014-02-21 09:15:18 +00:00
Tom Hacohen 116045fb8c Tiling2: Merge all the tiling callbacks and checks to 1 place. 2014-02-21 09:15:18 +00:00
Tom Hacohen 2b778b2aea Tiling2: Added maximized to the is_tilable checks. 2014-02-21 09:15:18 +00:00
Tom Hacohen 5e25cddeb1 Tiling2: Fix handling of maximized windows.
This fixes T978.
2014-02-21 09:15:18 +00:00