Commit Graph

204 Commits

Author SHA1 Message Date
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 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
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
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 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 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 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 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 1b4821155c Tiling2: Get rid of __UNUSED__ in favour of EINA_UNUSED. 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
Tom Hacohen 55e669fae4 Tiling2: Simple logic cleanup. 2014-02-21 09:15:08 +00:00
Tom Hacohen 03c6fee356 Tiling2: Properly ignore e util clients.
This fixes all the error messages that are printed on e startup.
2014-02-21 09:15:08 +00:00
Tom Hacohen 21f30a1ac2 Tiling2: Update original information every time a client is added.
Even if it's not the first time that client is added.
2014-02-21 09:15:08 +00:00
Tom Hacohen b89709267d Tiling2: Fixed bug with client border menu.
This fixes duplicate entries.
2014-02-21 09:15:08 +00:00
Tom Hacohen 5b50d42521 Tiling2: Stop fiddling with stacking and layers. 2014-02-21 09:15:08 +00:00
Tom Hacohen 3114e63faf Tiling2: Don't set client layers.
This fixes some of the input region issues I was having.
The bug is still in e, but this solves some stuff.
2014-02-21 09:15:08 +00:00
Tom Hacohen e3fcc03152 Tiling2: Fixed extra hash cleanup for ignored users.
It should always be cleaned, now that we keep it for ignored windows as well.
2014-02-21 09:15:08 +00:00
Tom Hacohen 41ecdc1ebd Tiling2: Be more defensive about removing clients.
This will delete clients even in cases we didn't delete before.
2014-02-21 09:15:08 +00:00
Tom Hacohen 9adc5336c0 Tiling2: Style changes. 2014-02-21 09:15:08 +00:00
Tom Hacohen 86aa218cb2 Tiling2: Handle compositor resize hook. 2014-02-21 09:15:08 +00:00
Tom Hacohen 32c4da7f5e Tiling2: Have a desk walker function and use it. 2014-02-21 09:15:08 +00:00
Tom Hacohen 0b007b2ff6 Tiling2: Fixed re-tiling on e restart/module unload reload. 2014-02-21 09:15:08 +00:00
Tom Hacohen 39e17e96f8 Tiling2: Fixed desktop setting. 2014-02-21 09:15:08 +00:00
Tom Hacohen f0efa12921 Tiling2: Fixed error message. 2014-02-21 09:15:08 +00:00
Tom Hacohen 08b877fa1f Tiling2: Unmaximize windows when starting to tile them. 2014-02-21 09:15:08 +00:00
Tom Hacohen 6795380282 Tiling2: Added support for swapping windows. 2014-02-21 09:15:07 +00:00
Tom Hacohen d03fb0a0f8 Tiling2: Fixed error messages with ignored windows. 2014-02-21 09:15:07 +00:00
Tom Hacohen 2f80f460e4 Tiling2: Fixed moving non-tiled windows. 2014-02-21 09:15:07 +00:00
Tom Hacohen 5d044ecad3 Tiling2: Removed some redundant code. 2014-02-21 09:15:07 +00:00
Tom Hacohen df14cca8dd Tiling2: Remove the step restriction.
Enlightenment already enforces that, and using it makes things choppy.
2014-02-21 09:15:07 +00:00
Tom Hacohen b5434d1de5 Tiling2: Restrict allowed resizes of windows. 2014-02-21 09:15:07 +00:00
Tom Hacohen ae8acb24b2 Tiling2: Fixed resizing of clients at "forbidden" borders.
For example, leftmost window's left border.
2014-02-21 09:15:07 +00:00
Tom Hacohen 15a4ec0c40 Tiling2: Use resize_mode for detecting resize direction. 2014-02-21 09:15:07 +00:00
Tom Hacohen f5e96784be Tiling2: Better block of window moving. 2014-02-21 09:15:07 +00:00
Tom Hacohen dae37e1dea Tiling2: Added a menu item to toggle floating windows. 2014-02-21 09:15:07 +00:00
Tom Hacohen 5cec6d14cb Tiling2: Get rid of the use_rows config. 2014-02-21 09:15:07 +00:00
Tom Hacohen b092052297 Tiling2: Removed debug printfs. 2014-02-21 09:15:07 +00:00
Tom Hacohen 3804d5165a Tiling2: if can't find the parent, pass NULL, not the root. 2014-02-21 09:15:07 +00:00
Tom Hacohen 052a13b462 Tiling2: Cleaned up ignored windows support. 2014-02-21 09:15:07 +00:00
Tom Hacohen bfdb22b0b8 Tiling2: Added untested support for sticky windows.
Just don't tile them.
2014-02-21 09:15:07 +00:00
Tom Hacohen 8ab30821fb Tiling2: Remove client from floating window list when cleaning. 2014-02-21 09:15:06 +00:00
Tom Hacohen 5e209ea583 Tiling2: Remove things I don't need from config and config dialog. 2014-02-21 09:15:06 +00:00
Tom Hacohen 156f6ff984 Tiling2: Properly handle more than one desk. 2014-02-21 09:15:06 +00:00
Tom Hacohen 1b3500f31a Tiling2: Added an hack to workaround the stupid e resize bug.
The bug with the frame created after the first resize.
2014-02-21 09:15:06 +00:00
Tom Hacohen 6b606cde41 Tiling2: Added resizing support.
There are still some bugs.
2014-02-21 09:15:06 +00:00
Tom Hacohen 3aa597c4af Tiling2: Don't tile centred windows. 2014-02-21 09:15:06 +00:00