Commit graph

162 commits

Author SHA1 Message Date
S. Christoffer Eliesen 236f26f62e output: Support multiple adjacent outputs.
When querying for an adjacent output we now need an absolute position in
order to know which adjacent output that matches. (The position is
either the current mouse position or the center of the currently focused
container, depending on context.)

If two outputs have one edge each that at least partially align with
each other they now count as adjacent.

Seamless mouse is affected by this and now properly moves and positions
itself between outputs with "uneven" placement (as long as they have at
least some part of the edge adjacent to each other).

When focusing or moving a container in a specified direction the center
of the current focused container decides where to look for an adjacent
output. So if e.g. an output has two adjacent outputs to the right and a
"focus right" command is issued then it's the placement of the currently
focused container that decides which output actually gets focused.

Also, if an output has at least one output adjacent in some direction
but the entire edge is not covered (ie. it has "holes" with no outputs),
then the algorithm will choose the output that is closest to the
currently focused container (this does not apply to seamless mouse, the
pointer will just stop at the edge in that case).
2015-11-16 21:32:18 +01:00
Drew DeVault 250097d32b Fix gaps for views being incorrect 2015-11-12 08:02:39 -05:00
S. Christoffer Eliesen abc5fbfaec Learn "gaps edge_gaps <on|off|toggle>".
When yes, the old behaviour of adding half the inner gap around each
view is used.

When no, don't add any gap when an edge of the view aligns with the
workspace. The result is inner gap only between views, not against the
workspace edge.

The algorithm is not perfect because it means the extra space is
distributed amongst edge-aligned views only, but it's simple, looks good
and it works.
2015-11-04 13:21:10 +01:00
S. Christoffer Eliesen af31a3f04a commands: Learn 'move workspace to output <direction|name>'. 2015-11-03 22:38:53 +01:00
S. Christoffer Eliesen 3c250e78be layout: get_swayc_in_direction: Properly find adjacent outputs. 2015-10-29 16:20:48 +01:00
S. Christoffer Eliesen fede354a3d layout: Don't reset container size if it's a floating window. 2015-10-28 20:06:48 +01:00
S. Christoffer Eliesen 5a70853253 log: Add swayc_log, use at a few key places.
swayc_log works just like sway_log, but appends type and name from given
container to the log output.
2015-10-25 13:14:28 +01:00
taiyu 4944996170 Merge branch 'master' of https://github.com/taiyu-len/sway
merge
2015-09-22 09:41:32 -07:00
taiyu 6c33f8122a #184 2015-09-22 09:41:01 -07:00
taiyu 9fd2d635a1 container_move check 2015-09-18 11:34:57 -07:00
taiyu 0de29d8247 prevent views from disappearing 2015-09-07 15:22:15 -07:00
taiyu dbeca88dee default gap value 2015-09-04 16:14:59 -07:00
taiyu 79da7f112a #151 fix 2015-08-29 06:51:37 -07:00
Luminarys 167409702f Fixed move scratchpad and added in scratchpad show 2015-08-29 00:33:33 -05:00
Luminarys 7eefecf479 Added in scratchpad adding 2015-08-28 23:39:12 -05:00
taiyu 63e735270c move v3 2015-08-28 19:35:29 -07:00
taiyu 28c22c8f80 style 2015-08-28 11:14:59 -07:00
taiyu c9de300888 layout fix for a certain case 2015-08-28 11:11:26 -07:00
taiyu 076cf78d7c dont move floating contaienrs 2015-08-28 11:04:58 -07:00
taiyu 1820b3f0bb move function redone 2015-08-28 11:03:10 -07:00
taiyu 5678d824e4 update visibility + container info functions 2015-08-27 23:18:28 -07:00
taiyu 4df64127e9 slight fix 2015-08-26 16:50:47 -07:00
taiyu 274e56a602 fixed move_container bug, log prints before aborting 2015-08-26 16:27:01 -07:00
taiyu 357af228d6 some function documentation, fixed gaps on config reload 2015-08-26 13:35:22 -07:00
taiyu 1fa7a91bfb move_container_to fixup 2015-08-26 11:01:26 -07:00
taiyu 225c2fbe5b fixed segfault on exit + a little fixup of that floatfocus pr 2015-08-25 13:29:33 -07:00
minus 03e4a97dbe added "move container to workspace"
makes the previous commit actually testable
2015-08-25 18:25:36 +02:00
taiyu dbad30a409 add limit to swayc_in_direction 2015-08-24 01:11:21 -07:00
taiyu 51ab3c9180 merge 2015-08-23 12:34:18 -07:00
taiyu f53ce887e8 fixed container resize oddity 2015-08-22 22:14:59 -07:00
taiyu e139de0857 floating/tiling move + floating resize cleaned and fixed 2015-08-22 18:01:38 -07:00
Drew DeVault 1fd5962aeb Fix minor bug with output positioning 2015-08-22 15:21:56 -04:00
Drew DeVault 07229edfe6 Implement output positioning
🎉
2015-08-22 15:19:02 -04:00
Drew DeVault eac0920f49 Set x/y positions for output containers 2015-08-22 14:44:47 -04:00
Luminarys f6b16ca089 Refactored resizing functions into resize.c 2015-08-21 22:26:11 -05:00
taiyu d2e1c660b1 swayc_is_fullscreen 2015-08-21 10:45:18 -07:00
taiyu 1a1ac64662 bugfixes, renames 2015-08-21 10:28:37 -07:00
minus 8dfaf6265b fixed #108 signed/unsigned comparison 2015-08-21 16:53:11 +02:00
Drew DeVault a436fc17ff Merge pull request #105 from Half-Shot/master
Basic 'move' functionality.
2015-08-21 07:24:17 -04:00
Drew DeVault 464b49eda2 Merge pull request #101 from Luminarys/master
Added in basic resizing command.
2015-08-21 07:12:05 -04:00
Luminarys 461da7f87f Added in bspwm like mouse resizing 2015-08-21 00:17:26 -05:00
Luminarys f589731f29 Rewrite of resize command to make it more sane 2015-08-20 21:37:59 -05:00
Half-Shot 68213d57c5 Fixed style errors 2015-08-20 22:29:36 +01:00
Half-Shot 713bf29ec9 Few stray bits 2015-08-20 21:45:00 +01:00
Half-Shot 5a9ba261bc Merge branch 'master' of https://github.com/SirCmpwn/sway 2015-08-20 21:32:08 +01:00
Half-Shot 2a62c5c7fb Basic left right move command implemented. 2015-08-20 21:29:40 +01:00
taiyu 36e07e9ebc find_parent_by_type 2015-08-20 09:52:54 -07:00
Luminarys c9935507f2 Style fixes 2015-08-20 11:42:01 -05:00
Luminarys bc3babf566 Added in basic resize command 2015-08-20 11:30:32 -05:00
taiyu 927ef0a5ec Merge branch 'master' of https://github.com/SirCmpwn/sway
merging
2015-08-20 05:08:04 -07:00
Drew DeVault 95f5660897 Merge pull request #97 from taiyu-len/master
setup for resizable windows, drop weight
2015-08-20 08:07:16 -04:00
taiyu f5fde7c45c style 2015-08-20 05:06:22 -07:00
taiyu f6e002fb8b small fix, default width/height 0 2015-08-20 04:57:01 -07:00
taiyu b76dcf6e0f unnessesary log 2015-08-20 04:50:15 -07:00
taiyu fbaa9111a8 setup for resizable windows, drop weight 2015-08-20 04:47:36 -07:00
Drew DeVault 14947c92aa Merge pull request #94 from taiyu-len/master
input_state.ch, and command conflicts resolved
2015-08-20 07:38:04 -04:00
KoffeinFlummi 3c124d9e7d Change gap behaviour to more closely match i3-gaps
Previously, when only using inner gaps, the gap between a window at the
edge of the output was only half the size of the gaps between views.

Additionally, the gaps between the actual windows was twice as wide as
it was on i3-gaps.
2015-08-20 08:47:51 +02:00
taiyu 1d9b73ed67 remove debug message 2015-08-19 20:31:28 -07:00
taiyu 5ff0619ca1 input state, find_container_in_direction 2015-08-19 20:22:15 -07:00
taiyu 6f424ff6b8 fixed default active_workspace, and more use of set_focused_container_for(...) 2015-08-19 16:15:17 -07:00
taiyu e16a4015ff fixed focus key handler 2015-08-19 00:28:53 -07:00
taiyu 6dc1ae802b focus to only child 2015-08-18 22:20:31 -07:00
Luminarys 7137be9a3f Fixes to make floating windows work better 2015-08-18 18:03:23 -05:00
Drew DeVault cf916bbf6f Improvements to gaps 2015-08-18 18:44:50 -04:00
KoffeinFlummi c75d5ceba4 Merge remote-tracking branch 'upstream/master' into gaps 2015-08-19 00:05:18 +02:00
KoffeinFlummi 4c688cba4e Add support for gaps option 2015-08-18 23:53:57 +02:00
Luminarys a7c045a520 Patched for wlc updates 2015-08-18 16:24:01 -05:00
taiyu 03e83c7ef9 restored fullscreen/focus behavior 2015-08-18 11:22:52 -07:00
Drew DeVault 2139001c9f Coding style enforcement
This was done by hand, so I might have missed things. If anyone knows of
a good C style enforcement tool, let me know.
2015-08-18 07:20:34 -04:00
taiyu af1b3d9755 fixed floating window crashing bug 2015-08-18 04:09:43 -07:00
taiyu 63bc0d3b54 more changes 2015-08-18 02:46:14 -07:00
taiyu 11321ca2dd changed handling of focus, handling of view by type 2015-08-18 00:28:44 -07:00
Drew DeVault 9835845e22 Fix segfault from focus_view 2015-08-17 14:18:57 -04:00
Luminarys 47ec999e71 Fixes to floating and umanaged views 2015-08-17 10:18:06 -05:00
Luminarys 05f969074e Added in basic floating toggling 2015-08-17 00:38:34 -05:00
taiyu f1d5305dc6 fix 2015-08-16 19:06:31 -07:00
taiyu 4077238782 sends hidden views to back, visible view to front 2015-08-16 18:59:12 -07:00
taiyu c024f06631 handle_view_state_request 2015-08-16 17:28:06 -07:00
Drew DeVault 19c0ec6a08 Fix movement between outputs 2015-08-16 14:47:08 -04:00
Drew DeVault ae536c21d3 Revert "get/set_userdata stores swayc_t *, fixed memory leak, minor changes." 2015-08-16 08:10:56 -04:00
taiyu 083d1eed1f fixed 2 small memory leaks & adds format attribute to log. 2015-08-15 21:21:20 -07:00
Luminarys 56814310e0 Fixed reloading and arrange_windows 2015-08-15 16:13:21 -05:00
Luminarys 618b3df051 Fixed workspace switching in multimonitor layouts 2015-08-15 13:55:06 -05:00
Luminarys b01a04f22b Added layout debugger back in and fixed mutlimonitor layout issues 2015-08-15 13:22:03 -05:00
taiyu f3a970e24e fixed focus 2015-08-15 08:34:09 -07:00
taiyu cd0cdc28aa fixed focus 2015-08-15 08:27:51 -07:00
Taiyu 60d840fe3f style 2015-08-14 12:44:35 -07:00
Taiyu b8cba33c01 changed swayc related functions, cleaned up some functions, moved wlc related things into handlers 2015-08-14 12:42:19 -07:00
Drew DeVault 96d7ff1e19 Slightly better multihead support 2015-08-10 23:54:23 -04:00
Drew DeVault dd115cece3 Prevent passing WM keys, improve multihead support 2015-08-10 23:47:14 -04:00
Taiyu beabb12d63 destroys empty workspace + minor bugfixes 2015-08-10 17:32:50 -07:00
Drew DeVault c10fc5b526 Set view->visible to true when created 2015-08-10 17:31:19 -04:00
Jose Diez 8cc2c6fa7a Basic workspace functionality 2015-08-10 22:49:50 +02:00
Drew DeVault 9c3a04b996 Focus unmanaged windows when created 2015-08-10 13:43:09 -04:00
Drew DeVault 06bca18a09 Fix issue with untitled windows 2015-08-10 11:50:32 -04:00
Drew DeVault c12d0f1a62 Finish up fullscreen command 2015-08-09 20:58:03 -04:00
Drew DeVault 0078a6fa36 Flesh out fullscreen support a bit 2015-08-09 20:49:58 -04:00
jdiez17 b922e1cb29 fullscreen: partially working 2015-08-09 20:49:58 -04:00
Drew DeVault 2b1a0728b8 Keep track of window names 2015-08-09 20:40:52 -04:00
jdiez17 56d29bbec5 log: add newline 2015-08-10 02:24:19 +02:00