Mikkel Oscar Lyderik
3658777e47
Use wlc_point instead of deprecated wlc_origin
...
Struct was renamed in wlc, use the new name.
9 years ago
Drew DeVault
e59cffcea2
Support desktop shell panels in compositor
9 years ago
S. Christoffer Eliesen
a06cb7cd01
criteria: Add. Learn for_window command.
...
A criteria is a string in the form of `[class="regex.*" title="str"]`.
It is stored in a struct with a list of *tokens* which is a
attribute/value pair (stored as a `crit_token` struct). Most tokens will
also have a precompiled regex stored that will be used during criteria
matching.
for_window command: When a new view is created its metadata is tested
against all stored criteria, and if a match is found the associated
command list is executed.
Unfortunately some metadata is not available in sway at the moment
(specifically `instance`, `window_role` and `urgent`). Any criteria
string that tries to match an unsupported attribute will fail.
(Note that while the criteria code can be used to parse any criteria
string it is currently only used by the `for_window` command.)
9 years ago
Drew DeVault
5728307520
Add wallpapers to output command
9 years ago
Drew DeVault
4a1584be53
Fix background extensions
...
Thanks @Cloudef, it works great
9 years ago
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.
9 years ago
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).
9 years ago
Drew DeVault
cd161aa985
We somewhat more wlc_point now
...
Apparently I missed some
cc @Cloudef
9 years ago
S. Christoffer Eliesen
5ba47d4a44
input_state: Remove mouse_origin (x&y). Query wlc instead.
9 years ago
S. Christoffer Eliesen
4799d07ac1
input_state: Extract 'pointer_position_set' function from handlers.
9 years ago
S. Christoffer Eliesen
865b30f138
container: Move container_under_pointer here from handlers.
9 years ago
S. Christoffer Eliesen
fabcf7c678
handlers: Pass workspace to workspace_switch, not output.
9 years ago
S. Christoffer Eliesen
c6bb23b7dd
sway/output: Create, move code from handlers.c here.
9 years ago
Drew DeVault
010368150b
Update set_origin to match wlc changes
9 years ago
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.
9 years ago
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.)
9 years ago
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."
9 years ago
S. Christoffer Eliesen
b093a5d16f
handlers: Fix swapped top/bottom for seamless transitions.
9 years ago
Drew DeVault
2c100105bf
Move pointer during seamless transitions
9 years ago
S. Christoffer Eliesen
edf33aad29
config: Add "seamless_mouse" to decide if pointer crosses output edges.
9 years ago
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.)
9 years ago
taiyu
4944996170
Merge branch 'master' of https://github.com/taiyu-len/sway
...
merge
9 years ago
taiyu
6c33f8122a
#184
9 years ago
taiyu
d2e2b04bfd
minor fix
9 years ago
Drew DeVault
e505abfe75
Revert "new_workspace null behavior + testmap functions + regex"
...
This reverts commit e1d18e42a8
.
Fixes #180
cc @taiyu-len
9 years ago
taiyu
e1d18e42a8
new_workspace null behavior + testmap functions + regex
9 years ago
taiyu
aaa0923bc4
cmd status + workspace ws output op
9 years ago
taiyu
71af5b7dde
config modes
9 years ago
taiyu
5408d34c9c
config_path cleanup
9 years ago
taiyu
782729be13
properly free cmd_queue, should partially fix #165 from what i tell from its log.
9 years ago
taiyu
7fbb8b785e
#154 destroy view handler properly destroys views
9 years ago
Luminarys
28e937020a
Made scratchpad handling identical to i3
9 years ago
taiyu
836f24b047
#149 change focus before pointer_mode
9 years ago
taiyu
9acd3d2068
#149 fix, reorder floating windows on click.
9 years ago
taiyu
1924399166
#148 fix, choose non-floating view for inserting container
9 years ago
taiyu
da2d992563
style
9 years ago
taiyu
b359429e90
fix issue #140 , dont set pointer mode if no floating_mod
9 years ago
Luminarys
acb3fbdfb5
Added in default_orientation handling
9 years ago
taiyu
d115335951
move workspace from dead output to other output
9 years ago
Drew DeVault
adcf89cfe4
Do not pass modifiers when getting keysyms from wlc
...
Fixes #124
Keyboard handling can likely be simplified after this change.
9 years ago
Drew DeVault
10eb58667b
Merge pull request #133 from minus7/wlc-keyboard-fix
...
fixed keyboard handling
9 years ago
minus
bfdff821c3
fixed keyboard handling
...
handle_key does not get the keysym from wlc anymore
9 years ago
taiyu
225c2fbe5b
fixed segfault on exit + a little fixup of that floatfocus pr
9 years ago
Drew DeVault
0bf380a0b1
Merge pull request #131 from nicklaswj/master
...
Focus floating window, if any, when the last tiling window has been closed
9 years ago
Nicklas Warming Jacobsen
227d5dbe08
code style clean up
9 years ago
Nicklas Warming Jacobsen
a70b9a9a7a
removed stupid test code
9 years ago
Nicklas Warming Jacobsen
7a1c36716a
Focus floating window, if any, when the last tiling has been closed
9 years ago
minus
ca89ba83a8
changed view visibility to be bool
...
view_visibility enum remains with one constant that is the mask to wlc's view masking
9 years ago
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)
9 years ago
Drew DeVault
f30fb2452c
Minor fixes to keyboard handling
9 years ago
taiyu
51ab3c9180
merge
9 years ago
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
9 years ago
Luminarys
5bfed9b213
Cleanup and minor adjustments to disabling
9 years ago
Luminarys
e01cf0b566
Added in glitchy disabling
9 years ago
Luminarys
98fad060e2
Added in glitchy disabling
9 years ago
Drew DeVault
ac2034df99
Handle wlc log events
9 years ago
taiyu
d72cc92541
style
9 years ago
taiyu
f1e38be09f
no mode for fullscreen
9 years ago
taiyu
42d5d9a177
mouse tile resize mode done
9 years ago
taiyu
e139de0857
floating/tiling move + floating resize cleaned and fixed
9 years ago
Luminarys
c0b68aa6fc
Added in bspwm like view swapping
9 years ago
Luminarys
f6b16ca089
Refactored resizing functions into resize.c
9 years ago
Luminarys
ad1ca31dd5
Altered resize command to prevent resizing past min h/w
9 years ago
Luminarys
e067913fb8
More resize fixes
9 years ago
Luminarys
63a3236064
Fixed resizing
9 years ago
Drew DeVault
39041d07b5
Merge remote-tracking branch 'taiyu-len/master'
9 years ago
Luminarys
f7a6dd7ce9
Minor fix to resizing with mouse
9 years ago
taiyu
d2e1c660b1
swayc_is_fullscreen
9 years ago
taiyu
dde8bfe728
check floating mod for resizing windows, and dont send click
9 years ago
taiyu
5a67628ad9
Merge branch 'master' of https://github.com/SirCmpwn/sway
...
merge
9 years ago
taiyu
1a1ac64662
bugfixes, renames
9 years ago
Luminarys
a8eab5492a
Added in proper resize locking
9 years ago
Luminarys
de86c5f4ea
Cleanup and minor fixes
9 years ago
Drew DeVault
464b49eda2
Merge pull request #101 from Luminarys/master
...
Added in basic resizing command.
9 years ago
Luminarys
96ab21b276
Fixes to resizing and added in resize lock once boundaries are exceeded
9 years ago
Luminarys
461da7f87f
Added in bspwm like mouse resizing
9 years ago
taiyu
36e07e9ebc
find_parent_by_type
9 years ago
taiyu
927ef0a5ec
Merge branch 'master' of https://github.com/SirCmpwn/sway
...
merging
9 years ago
taiyu
f5fde7c45c
style
9 years ago
Drew DeVault
85ae987515
Fix compiler warning
9 years ago
taiyu
5ff0619ca1
input state, find_container_in_direction
9 years ago
taiyu
470b4dfbae
key_state.ch, and command conflicts resolved
9 years ago
Drew DeVault
4db89b5fe4
Deal with more xkb bullshit
9 years ago
Drew DeVault
e5d3074d70
Whitelist a handful of characters for keys
...
Ones that don't change when you hold shift
9 years ago
Drew DeVault
1d8591d902
Improve key handling somewhat
...
XKB is fucking bullshit
9 years ago
Drew DeVault
84a778b688
Improve key buffer handling
9 years ago
Drew DeVault
2dabca03f4
Remove logging of all key presess
...
This makes the logs a bit too hard to read
9 years ago
Alexander 'z33ky' Hirsch
c068f47ce3
Fix potential crash when toggling fullscreen mode
9 years ago
taiyu
b79a49a394
use enums for pointer click names
9 years ago
taiyu
a31f23f90c
fixed active_workspace update on focus change
9 years ago
taiyu
269d6ba4ea
fixed
9 years ago
taiyu
48a983316c
floating mode_toggle
9 years ago
Luminarys
c29214f348
Minor style fix
9 years ago
taiyu
e53a95c60d
style
9 years ago
taiyu
7bbb102e2d
reset floating view on floating_mod repress
9 years ago
taiyu
8f529536e3
pointer uses its own modifiers
9 years ago
Luminarys
daea22bc89
Resize lock fixes
9 years ago
Luminarys
9542f8746a
Added in resize locking
9 years ago
taiyu
8205a6fd3b
floating_modifier uses mod_keys instead of anykey
9 years ago
taiyu
e16a4015ff
fixed focus key handler
9 years ago
taiyu
1bf02144e5
fixed floating_modifier related things
9 years ago
Luminarys
f718556a85
Removed debugging, added in proper gap resets for config reloads
9 years ago
Luminarys
ab43927a47
Minor fixes that might be helpful later
9 years ago
Luminarys
7137be9a3f
Fixes to make floating windows work better
9 years ago
Luminarys
3e950c2b1c
Basic fixes to floating movement
9 years ago
Drew DeVault
cf916bbf6f
Improvements to gaps
9 years ago
Luminarys
5b6e489872
More patches for wlc compat
9 years ago
Luminarys
7756f423c3
Removed unnecessary debugging lines
9 years ago
Luminarys
01c6caced6
Added in proper focus handling for floating windows
9 years ago
taiyu
03e83c7ef9
restored fullscreen/focus behavior
9 years ago
Luminarys
23b90d8e69
Fixed mouse clicks from triggering a segfault
9 years ago
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.
9 years ago
taiyu
af1b3d9755
fixed floating window crashing bug
9 years ago
taiyu
b132f67e7b
minor fixes
9 years ago
taiyu
63bc0d3b54
more changes
9 years ago
taiyu
4606fb1ee3
merged Luminarys resizing code
9 years ago
taiyu
f0fe4a346d
style
9 years ago
taiyu
11321ca2dd
changed handling of focus, handling of view by type
9 years ago
Luminarys
e541ba3d87
Added in basic, but semi-broken moving/resizing functionality to floating windows
9 years ago
Luminarys
1781450e86
Typo fix and more clarification
9 years ago
Luminarys
b5f19f0fd3
View destroy handling clean up and clarifications
9 years ago
taiyu
199ba05ef1
put back
9 years ago
taiyu
d2995d1eb2
fixed handling of views with override_redirect (dmenu)
9 years ago
taiyu
f832c02065
fixed when views dont have names.
9 years ago
Luminarys
c9ce8bf1bd
Style and other minor fixes
9 years ago
Luminarys
47ec999e71
Fixes to floating and umanaged views
9 years ago
Drew DeVault
be2635daa6
Fix format warnings
9 years ago
taiyu
4077238782
sends hidden views to back, visible view to front
9 years ago
taiyu
ffb3458322
focus changes when mouse moves over border instead of all mouse movement
9 years ago
taiyu
498cf268f7
unmanaged views handled better
9 years ago
taiyu
c024f06631
handle_view_state_request
9 years ago
Drew DeVault
7514431836
Fix pointer events properly
9 years ago
Drew DeVault
7878490425
Revert "Return false from pointer events"
...
This reverts commit 981db16a8e
.
9 years ago
Drew DeVault
981db16a8e
Return false from pointer events
9 years ago
Drew DeVault
5ff71c2d5c
Fix key handling from wlc
9 years ago
Drew DeVault
6e8280e7fd
Config errors should not be fatal
9 years ago
Drew DeVault
ae536c21d3
Revert "get/set_userdata stores swayc_t *, fixed memory leak, minor changes."
9 years ago
taiyu
eefc76b39e
set userdata for handler to swayc_t container
9 years ago
taiyu
083d1eed1f
fixed 2 small memory leaks & adds format attribute to log.
9 years ago
taiyu
2e92538d7f
style
9 years ago
taiyu
14b7755134
set maximize flag for handled views
9 years ago
taiyu
3a21ba020f
made better, reduced code duplication
9 years ago
taiyu
824a3d81aa
fixed fullscreen & focusing
9 years ago
Luminarys
9b0196e7ed
Style fixes
9 years ago
Luminarys
618b3df051
Fixed workspace switching in multimonitor layouts
9 years ago
Luminarys
b01a04f22b
Added layout debugger back in and fixed mutlimonitor layout issues
9 years ago
Taiyu
b8cba33c01
changed swayc related functions, cleaned up some functions, moved wlc related things into handlers
9 years ago
Luminarys
ea9efc884d
Allowed for execd commands to be spawned after abort
9 years ago
Luminarys
527288a826
fixes to cmd queue freeing, style
9 years ago
Luminarys
d12a786160
Removed some unnecessary logs
9 years ago