Commit graph

180 commits

Author SHA1 Message Date
Mikkel Oscar Lyderik
cf64000e21 Focus new sibling added to container
This makes sure that the window being added to a container gets focus.
2015-12-25 22:32:42 +01:00
Mikkel Oscar Lyderik
5d07c61330 Trigger workspace init event (floating)
Triggers workspace init event when moving a floating window to a new
workspace.

This is a follow up on #391 which didn't handle floating windows.
2015-12-25 18:02:12 +01:00
Mikkel Oscar Lyderik
50b04884b6 Trigger ipc_event_workspace in all cases
This makes sure that the workspace IPC event is triggered when needed.

Fixes #382 while making sure that the IPC event is only triggered once.
2015-12-21 23:07:52 +01:00
S. Christoffer Eliesen
f4b9c3856a layout: Fix edge_gaps off with top/left panels.
Since x/y won't be zero when there's a top or left panel in place, we
need to take those coordinates into account too.
2015-12-20 21:23:20 +01:00
S. Christoffer Eliesen
e45fd9b6c5 extensions: Track panels by wl_resource, position per panel.
Track each panel separately via its wl_resource. `set_panel_position`
might be called before `set_panel`, so reuse panel config.

Place the position in panel_config so that each panel has its own
position.
2015-12-20 12:54:34 +01:00
S. Christoffer Eliesen
f0b3ee6d84 layout: arrange_windows: Partially fix swaybar irregularties. 2015-12-18 23:53:42 +01:00
S. Christoffer Eliesen
0ad5059b6f layout: arrange_windows: Fix/better debug output. 2015-12-18 23:53:42 +01:00
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