Commit graph

223 commits

Author SHA1 Message Date
Drew DeVault
65b8a5c3ce Add background handling
This does not work as expected. I think the problem is on the wlc side.
Please review, @Cloudef. To reproduce the issues:

1. Run sway
2. Open terminal in sway
3. Run swaybg

swaybg will create a surface and ask to have it set as the background,
but wlc_handle_from_wl_surface_resource will return 0. If the swaybg
surface is a shell surface, then it works - but wlc complains about the
pointer type and segfaults as soon as the pre-render hook tries to draw
the background.
2015-11-18 22:14:57 -05: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
cd161aa985 We somewhat more wlc_point now
Apparently I missed some

cc @Cloudef
2015-11-14 17:14:23 -05:00
S. Christoffer Eliesen
5ba47d4a44 input_state: Remove mouse_origin (x&y). Query wlc instead. 2015-10-29 18:02:02 +01:00
S. Christoffer Eliesen
4799d07ac1 input_state: Extract 'pointer_position_set' function from handlers. 2015-10-29 16:37:19 +01:00
S. Christoffer Eliesen
865b30f138 container: Move container_under_pointer here from handlers. 2015-10-29 16:37:19 +01:00
S. Christoffer Eliesen
fabcf7c678 handlers: Pass workspace to workspace_switch, not output. 2015-10-27 23:22:57 +01:00
S. Christoffer Eliesen
c6bb23b7dd sway/output: Create, move code from handlers.c here. 2015-10-25 13:14:23 +01:00
Drew DeVault
010368150b Update set_origin to match wlc changes 2015-10-23 14:29:35 -04:00
S. Christoffer Eliesen
c1479701de seamless_mouse: Move pointer only if successfully changed workspace.
If e.g. a window has a popup open then that will lock the current focus,
making a workspace switch denied.

So don't move the mouse pointer in such cases.
2015-10-23 16:35:48 +02:00
S. Christoffer Eliesen
1f08106b0a handlers: Don't switch output when mouse button is pressed.
(E.g. if the user is using a scrollbar at the edge of the screen then
switching workspace would cancel the scroll.)
2015-10-23 16:35:48 +02:00
S. Christoffer Eliesen
af30a1b67c ipc,commands,config: Replace cmd_status enum with cmd_results struct.
In i3 the ipc reply will contain a human readable error message, and
this patch replicates that behaviour.

However, that error message is also useful for logging, which this
patch takes advantage of.

E.g. instead of logging errors directly in commands.c/checkargs, it is
fed back to the caller which eventually ends up logging everything with
maximum context available (config.c/read_config).

So instead of logging e.g. "Error on line 'exit'" it will now log:
"Error on line 'exit': Can't execute from config."
2015-10-22 23:36:24 +02:00
S. Christoffer Eliesen
b093a5d16f handlers: Fix swapped top/bottom for seamless transitions. 2015-10-22 23:07:27 +02:00
Drew DeVault
2c100105bf Move pointer during seamless transitions 2015-10-22 16:44:29 -04:00
S. Christoffer Eliesen
edf33aad29 config: Add "seamless_mouse" to decide if pointer crosses output edges. 2015-10-22 01:39:12 +02:00
S. Christoffer Eliesen
fc1bacf034 Switch to adjacent output when hitting output edge.
(Currently, after switching output the relative position of the mouse
stays the same.)
2015-10-22 01:18:51 +02: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
d2e2b04bfd minor fix 2015-09-18 06:52:04 -07:00
Drew DeVault
e505abfe75 Revert "new_workspace null behavior + testmap functions + regex"
This reverts commit e1d18e42a8.

Fixes #180

cc @taiyu-len
2015-09-13 19:46:16 -04:00
taiyu
e1d18e42a8 new_workspace null behavior + testmap functions + regex 2015-09-12 02:38:03 -07:00
taiyu
aaa0923bc4 cmd status + workspace ws output op 2015-09-10 11:07:40 -07:00
taiyu
71af5b7dde config modes 2015-09-07 14:29:40 -07:00
taiyu
5408d34c9c config_path cleanup 2015-09-06 22:48:43 -07:00
taiyu
782729be13 properly free cmd_queue, should partially fix #165 from what i tell from its log. 2015-09-02 08:51:26 -07:00
taiyu
7fbb8b785e #154 destroy view handler properly destroys views 2015-08-30 16:28:21 -07:00
Luminarys
28e937020a Made scratchpad handling identical to i3 2015-08-29 21:14:13 -05:00
taiyu
836f24b047 #149 change focus before pointer_mode 2015-08-28 23:43:52 -07:00
taiyu
9acd3d2068 #149 fix, reorder floating windows on click. 2015-08-28 23:01:48 -07:00
taiyu
1924399166 #148 fix, choose non-floating view for inserting container 2015-08-28 22:51:36 -07:00
taiyu
da2d992563 style 2015-08-28 12:31:41 -07:00
taiyu
b359429e90 fix issue #140, dont set pointer mode if no floating_mod 2015-08-28 12:30:59 -07:00
Luminarys
acb3fbdfb5 Added in default_orientation handling 2015-08-27 21:52:59 -05:00
taiyu
d115335951 move workspace from dead output to other output 2015-08-26 21:25:57 -07:00
Drew DeVault
adcf89cfe4 Do not pass modifiers when getting keysyms from wlc
Fixes #124

Keyboard handling can likely be simplified after this change.
2015-08-26 08:24:23 -04:00
Drew DeVault
10eb58667b Merge pull request #133 from minus7/wlc-keyboard-fix
fixed keyboard handling
2015-08-25 16:39:25 -04:00
minus
bfdff821c3 fixed keyboard handling
handle_key does not get the keysym from wlc anymore
2015-08-25 22:38:16 +02:00
taiyu
225c2fbe5b fixed segfault on exit + a little fixup of that floatfocus pr 2015-08-25 13:29:33 -07:00
Drew DeVault
0bf380a0b1 Merge pull request #131 from nicklaswj/master
Focus floating window, if any, when the last tiling window has been closed
2015-08-25 16:13:06 -04:00
Nicklas Warming Jacobsen
227d5dbe08 code style clean up 2015-08-25 22:00:39 +02:00
Nicklas Warming Jacobsen
a70b9a9a7a removed stupid test code 2015-08-25 20:25:38 +02:00
Nicklas Warming Jacobsen
7a1c36716a Focus floating window, if any, when the last tiling has been closed 2015-08-25 20:15:23 +02:00
minus
ca89ba83a8 changed view visibility to be bool
view_visibility enum remains with one constant that is the mask to wlc's view masking
2015-08-25 20:13:35 +02:00
minus
f22c937953 refactored view visibility
- replace visibilty mask integers with an enum
- set output's visibilty mask on creation
- added update_visibility to manually update a containers visibility (e.g. when it moved to an invisible workspace)
2015-08-25 18:24:15 +02:00
Drew DeVault
f30fb2452c Minor fixes to keyboard handling 2015-08-23 15:52:36 -04:00
taiyu
51ab3c9180 merge 2015-08-23 12:34:18 -07:00
Drew DeVault
1ac0c8cd47 Refactor keyboard to consider modified keysyms
Press Shift
Press 0       # Reads as ')'
Release Shift
Release 0     # Reads as '0' but we now recognize it as the same
2015-08-23 15:28:49 -04:00
Luminarys
5bfed9b213 Cleanup and minor adjustments to disabling 2015-08-23 13:18:07 -05:00
Luminarys
e01cf0b566 Added in glitchy disabling 2015-08-23 12:23:01 -05:00
Luminarys
98fad060e2 Added in glitchy disabling 2015-08-23 12:23:01 -05:00
Drew DeVault
ac2034df99 Handle wlc log events 2015-08-23 13:08:04 -04:00
taiyu
d72cc92541 style 2015-08-23 07:59:18 -07:00
taiyu
f1e38be09f no mode for fullscreen 2015-08-22 21:16:46 -07:00
taiyu
42d5d9a177 mouse tile resize mode done 2015-08-22 21:03:45 -07:00
taiyu
e139de0857 floating/tiling move + floating resize cleaned and fixed 2015-08-22 18:01:38 -07:00
Luminarys
c0b68aa6fc Added in bspwm like view swapping 2015-08-22 01:03:18 -05:00
Luminarys
f6b16ca089 Refactored resizing functions into resize.c 2015-08-21 22:26:11 -05:00
Luminarys
ad1ca31dd5 Altered resize command to prevent resizing past min h/w 2015-08-21 21:22:29 -05:00
Luminarys
e067913fb8 More resize fixes 2015-08-21 20:50:17 -05:00
Luminarys
63a3236064 Fixed resizing 2015-08-21 19:37:19 -05:00
Drew DeVault
39041d07b5 Merge remote-tracking branch 'taiyu-len/master' 2015-08-21 17:00:00 -04:00
Luminarys
f7a6dd7ce9 Minor fix to resizing with mouse 2015-08-21 15:36:37 -05:00
taiyu
d2e1c660b1 swayc_is_fullscreen 2015-08-21 10:45:18 -07:00
taiyu
dde8bfe728 check floating mod for resizing windows, and dont send click 2015-08-21 10:34:37 -07:00
taiyu
5a67628ad9 Merge branch 'master' of https://github.com/SirCmpwn/sway
merge
2015-08-21 10:28:49 -07:00
taiyu
1a1ac64662 bugfixes, renames 2015-08-21 10:28:37 -07:00
Luminarys
a8eab5492a Added in proper resize locking 2015-08-21 11:19:06 -05:00
Luminarys
de86c5f4ea Cleanup and minor fixes 2015-08-21 09:24:26 -05: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
96ab21b276 Fixes to resizing and added in resize lock once boundaries are exceeded 2015-08-21 00:49:47 -05:00
Luminarys
461da7f87f Added in bspwm like mouse resizing 2015-08-21 00:17:26 -05:00
taiyu
36e07e9ebc find_parent_by_type 2015-08-20 09:52:54 -07:00
taiyu
927ef0a5ec Merge branch 'master' of https://github.com/SirCmpwn/sway
merging
2015-08-20 05:08:04 -07:00
taiyu
f5fde7c45c style 2015-08-20 05:06:22 -07:00
Drew DeVault
85ae987515 Fix compiler warning 2015-08-20 07:38:40 -04:00
taiyu
5ff0619ca1 input state, find_container_in_direction 2015-08-19 20:22:15 -07:00
taiyu
470b4dfbae key_state.ch, and command conflicts resolved 2015-08-19 18:59:27 -07:00
Drew DeVault
4db89b5fe4 Deal with more xkb bullshit 2015-08-19 21:14:34 -04:00
Drew DeVault
e5d3074d70 Whitelist a handful of characters for keys
Ones that don't change when you hold shift
2015-08-19 21:04:34 -04:00
Drew DeVault
1d8591d902 Improve key handling somewhat
XKB is fucking bullshit
2015-08-19 20:52:52 -04:00
Drew DeVault
84a778b688 Improve key buffer handling 2015-08-19 20:12:05 -04:00
Drew DeVault
2dabca03f4 Remove logging of all key presess
This makes the logs a bit too hard to read
2015-08-19 19:55:40 -04:00
Alexander 'z33ky' Hirsch
c068f47ce3 Fix potential crash when toggling fullscreen mode 2015-08-20 02:30:22 +02:00
taiyu
b79a49a394 use enums for pointer click names 2015-08-19 15:44:13 -07:00
taiyu
a31f23f90c fixed active_workspace update on focus change 2015-08-19 15:22:55 -07:00
taiyu
269d6ba4ea fixed 2015-08-19 13:27:06 -07:00
taiyu
48a983316c floating mode_toggle 2015-08-19 13:02:29 -07:00
Luminarys
c29214f348 Minor style fix 2015-08-19 14:14:54 -05:00
taiyu
e53a95c60d style 2015-08-19 11:15:13 -07:00
taiyu
7bbb102e2d reset floating view on floating_mod repress 2015-08-19 10:45:40 -07:00
taiyu
8f529536e3 pointer uses its own modifiers 2015-08-19 10:27:53 -07:00
Luminarys
daea22bc89 Resize lock fixes 2015-08-19 12:06:00 -05:00
Luminarys
9542f8746a Added in resize locking 2015-08-19 11:28:04 -05:00
taiyu
8205a6fd3b floating_modifier uses mod_keys instead of anykey 2015-08-19 09:09:35 -07:00
taiyu
e16a4015ff fixed focus key handler 2015-08-19 00:28:53 -07:00
taiyu
1bf02144e5 fixed floating_modifier related things 2015-08-18 23:52:42 -07:00
Luminarys
f718556a85 Removed debugging, added in proper gap resets for config reloads 2015-08-18 21:05:58 -05:00
Luminarys
ab43927a47 Minor fixes that might be helpful later 2015-08-18 18:04:46 -05:00
Luminarys
7137be9a3f Fixes to make floating windows work better 2015-08-18 18:03:23 -05:00
Luminarys
3e950c2b1c Basic fixes to floating movement 2015-08-18 18:03:23 -05:00