Commit graph

173 commits

Author SHA1 Message Date
S. Christoffer Eliesen ed730db11b layout: Keep output at the correct size, workspace can be smaller.
If the output is not at the correct size then that info must be queried
from wlc. The output size is used by e.g. seamless mouse to detect
output edges.

With this patch the output size is now correct and the workspace size is
adjusted according to any panels.

Without this patch seamless mouse would fail to detect outputs
above/below each other if there was a panel in between because the
output would offically end where the panel started, not at the actual
screen edge.
2015-12-18 14:03:11 +01:00
Drew DeVault f6da4dda4b Bring unmanaged windows to front on output arrange
Fixes #312
2015-12-16 19:20:34 -05:00
Mikkel Oscar Lyderik 3891a7c73f Don't reset x,y position before use.
The x and y position is calculated based on the position of the bar, we
don't want to reset these values when we need them.
2015-12-13 22:49:58 +01:00
Drew DeVault 2f89b7084d Correctly handle moving between fullscreen views
If focus would move in an output with a fullscreen view, it always
leaves the output. If focus would enter an output with a fullscreen
view, it always focuses the fullscreened view.
2015-12-13 08:18:12 -05:00
Drew DeVault 6655534feb Fullscreen on top of bar 2015-12-13 07:52:57 -05:00
Drew DeVault ef91764bc7 Fix output adjustment for panels 2015-11-29 13:59:12 -05:00
Drew DeVault e59cffcea2 Support desktop shell panels in compositor 2015-11-29 12:03:13 -05:00
S. Christoffer Eliesen e31a899841 layout: get_swayc_in_direction_under: Handle floating views. 2015-11-24 21:34:41 +01:00
S. Christoffer Eliesen b5ddad4bf6 layout: swap_container: Handle floating views. 2015-11-24 21:34:41 +01:00
S. Christoffer Eliesen ed1b0bffbc layout: replace_child: Handle floating views. 2015-11-24 21:34:41 +01:00
S. Christoffer Eliesen 8aef255d5f layout: add_sibling: Handle floating views properly.
This should fix #241.
2015-11-24 21:34:24 +01:00
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