Commit Graph

277 Commits

Author SHA1 Message Date
Mike Blumenkrantz b38ca0969f remove E_Comp usage from tiling config 2015-03-18 17:34:25 -04: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
Mike Blumenkrantz ed897a231e de-e_comp_get()ify e
mrw I remember how to regex http://i.giphy.com/dC9dujPVeAfIY.gif
2015-03-13 15:12:20 -04: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
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
Tom Hacohen 457271f167 Tiling2: Handle windows becoming fullscreen while tiled. 2014-02-21 09:15:18 +00:00
Tom Hacohen 249def581b Tiling2: Only restore maximized if different than current. 2014-02-21 09:15:18 +00:00
Tom Hacohen ce7da97d8e Tiling2: Ifdef out ecore_x specific stuff when in Wayland Only. 2014-02-21 09:15:18 +00:00
Tom Hacohen 59d428b6e6 Tiling2: Don't tile iconic windows when loading the module.
This fixes T976.
2014-02-21 09:15:18 +00:00
Tom Hacohen 8463b7af47 Tiling2: Del all callbacks when unloading module.
This fixes T971.
2014-02-21 09:15:18 +00:00
Tom Hacohen b4900203d5 Tiling2: reapply tree on frame's deletion, not client removal.
According to mike this should work better with animations.

Fixes T947.
2014-02-21 09:15:18 +00:00
Tom Hacohen 0831537efa Tiling2: When adding clients, add them relative to the current one.
This fixes clients to be added relative to the current one, and not at
the end of the current children list.

This fixes T944.
2014-02-21 09:15:17 +00:00
Tom Hacohen 89881a0c50 Tiling2: Fixed coding conventions. 2014-02-21 09:15:17 +00:00
Tom Hacohen 4c846ca7fc Tiling2: Properly apply settings from the config dialog.
This fixes T911.
2014-02-21 09:15:17 +00:00
Tom Hacohen 555730c2bc Tiling2: Fixed setting of floating on non tiled desktops. 2014-02-21 09:15:11 +00:00
Tom Hacohen fe43bd7576 Tiling2: Store extra on more windows, including ones in non-tiling desktops. 2014-02-21 09:15:10 +00:00
Tom Hacohen 3294d8e562 Tiling2: Moved a function to a better location. 2014-02-21 09:15:10 +00:00
Tom Hacohen 08947d8220 Tiling2: Removed useless desk show hook. 2014-02-21 09:15:10 +00:00
Tom Hacohen 32e1ec2034 Tiling2: Fixed applying of desktop is tiled config.
This now changes things as we click apply.
2014-02-21 09:15:10 +00:00
Tom Hacohen 82e252fa71 Tiling2: Fixed tiling2 according to enlightenment's sticky event changes.
Changes in e were introduce in: 29cd45142a
2014-02-21 09:15:10 +00:00
Tom Hacohen f4a7b6512a Tiling2: Fixed formattign, again.
Fixes T919.
2014-02-21 09:15:10 +00:00
Tom Hacohen 92b0d0171c Tiling2: Fixed resize issues.
This fixes T913.
2014-02-21 09:15:10 +00:00
Tom Hacohen e48cd878ce Tiling2: Renamed space between windows -> padding. 2014-02-21 09:15:10 +00:00
Tom Hacohen d83e18f21e Tiling2: Implemented window padding.
Thanks to cippp for the feature request + some code.
2014-02-21 09:15:10 +00:00
Tom Hacohen b4df3d18a1 Tiling2: Use a define to set the max window padding. 2014-02-21 09:15:10 +00:00
Tom Hacohen 82fb13e6fa Tiling2: Get rid of a redundant define. 2014-02-21 09:15:10 +00:00
cippp 48c1cc947f Tiling2: Added config to set window spacing. 2014-02-21 09:15:10 +00:00
cippp f6cd19a9fd Tiling2: renamed local variables. 2014-02-21 09:15:10 +00:00
cippp f62fe4972f Tiling2: Added a link to the module's settings when right-clicking gadget. 2014-02-21 09:15:10 +00:00
Tom Hacohen 8254aa45b2 Tiling2: Added a config to disable floating mode. 2014-02-21 09:15:10 +00:00
Tom Hacohen 99e8b518f2 Tiling2: Added a gadget to indicate current tiling mode. 2014-02-21 09:15:10 +00:00
Tom Hacohen 68a84521ae Tiling2: Added a gadget group to the theme. 2014-02-21 09:15:10 +00:00
Tom Hacohen 47eec07d9a Tiling2: Removed unneeded images from theme. 2014-02-21 09:15:09 +00:00
Tom Hacohen 651e627c4b Tiling2: Removed debug print that was causing segfaults. 2014-02-21 09:15:09 +00:00
Tom Hacohen ee587a37b0 Tiling2: Fixed coding conventions using efl_indent. 2014-02-21 09:15:09 +00:00
Tom Hacohen 05df3290dc Tiling2: Updated wiki path. 2014-02-21 09:15:09 +00:00
Tom Hacohen 1b4821155c Tiling2: Get rid of __UNUSED__ in favour of EINA_UNUSED. 2014-02-21 09:15:09 +00:00
Tom Hacohen 5b5ffa37d4 Tiling2: Added an help button. 2014-02-21 09:15:09 +00:00
Tom Hacohen bf69b855b3 Tiling2: E_Client already has a property for sticky, use it.
Before this change, I duplicated this in extra.
2014-02-21 09:15:09 +00:00
Tom Hacohen e2f4596ff7 Tiling2: Implemented mouse drag to swap.
This is a new mouse action that lets you swap window with mouse drag.
2014-02-21 09:15:09 +00:00
Tom Hacohen b48cd9c9f8 Tiling2: Fix bug with cleaning up actions when shutting down. 2014-02-21 09:15:09 +00:00
Tom Hacohen ea175537cf Tiling2: Removed redundant structure members. 2014-02-21 09:15:09 +00:00
Tom Hacohen 7aaf444ee8 Tiling2: Don't try to remove non-tiled windows from the tile tree. 2014-02-21 09:15:09 +00:00
Tom Hacohen 792022196f Tiling2: Add "floating" as a split mode.
This lets people just create floating windows, without the need to toggle.
2014-02-21 09:15:09 +00:00
Tom Hacohen ff078996ff Tiling2: Improved setting of client borders.
No need to have a special entry point for that.
This fixes the issues with persistant pixel border.
2014-02-21 09:15:09 +00:00
Tom Hacohen bb1d53614c Tiling2: Fixed issues with removing/restoring clients. 2014-02-21 09:15:09 +00:00
Tom Hacohen ca6f1e74f5 Tiling2: Fixed removing clients from extras hash. 2014-02-21 09:15:09 +00:00
Tom Hacohen f6fa07e812 Tiling2: Have a common entry func for most functions. 2014-02-21 09:15:09 +00:00