Mikkel Oscar Lyderik
843e2ad2c1
Only send modifier event once for active modifiers
...
This makes sure that a modifier event is only sent for active bar
modifiers, and that it is only sent once for each of those modifiers.
An active bar modifier is a modifier defined for a bar with `mode hide`
and `hidden_state hide`.
2016-01-05 23:18:59 +01:00
Mikkel Oscar Lyderik
c20c63b677
Send IPC modifier event on bar_modifier up/down
...
Detects when a bar modifier key is pressed/released and sends a modifier
IPC event to any listeners (usually swaybars).
This way a swaybar can listen on the modifier event and hide/show the
bar accordingly (not implemented yet)
The modifier event looks like this:
{
"change": "pressed", // or released
"modifier": "Mod4"
}
2016-01-05 02:25:56 +01:00
crondog
b755fd073e
Return focus to fullscreen view
...
This fixes https://github.com/SirCmpwn/sway/issues/431 by returning
focus to the fullscreen view. Also it fixes the issue with the
fullscreen view pointer not being set which did my head in
2016-01-05 10:55:29 +11:00
Mikkel Oscar Lyderik
7727c9efbc
Detect bar modifier pressed/released
2016-01-05 00:49:44 +01:00
Drew DeVault
d409620a55
Fix use-after-free when closing fullscreen views
2015-12-29 00:04:12 -05:00
S. Christoffer Eliesen
b18f004210
handlers: geometry_request: Better debug output.
...
Previous output was confusing.
2015-12-28 14:58:17 +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
Drew DeVault
3282163f64
Implement compositor support for swaylock
...
This makes swaylock more or less work.
2015-12-18 19:30:19 -05: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
3658777e47
Use wlc_point instead of deprecated wlc_origin
...
Struct was renamed in wlc, use the new name.
2015-12-01 21:04:34 +01:00
Drew DeVault
e59cffcea2
Support desktop shell panels in compositor
2015-11-29 12:03:13 -05:00
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.)
2015-11-25 14:34:33 +01:00
Drew DeVault
5728307520
Add wallpapers to output command
2015-11-19 18:55:17 -05:00
Drew DeVault
4a1584be53
Fix background extensions
...
Thanks @Cloudef, it works great
2015-11-19 07:23:11 -05:00
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
Drew DeVault
cf916bbf6f
Improvements to gaps
2015-08-18 18:44:50 -04:00
Luminarys
5b6e489872
More patches for wlc compat
2015-08-18 16:28:24 -05:00
Luminarys
7756f423c3
Removed unnecessary debugging lines
2015-08-18 13:54:52 -05:00
Luminarys
01c6caced6
Added in proper focus handling for floating windows
2015-08-18 13:53:06 -05:00
taiyu
03e83c7ef9
restored fullscreen/focus behavior
2015-08-18 11:22:52 -07:00
Luminarys
23b90d8e69
Fixed mouse clicks from triggering a segfault
2015-08-18 10:39:37 -05: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
b132f67e7b
minor fixes
2015-08-18 03:48:41 -07:00
taiyu
63bc0d3b54
more changes
2015-08-18 02:46:14 -07:00
taiyu
4606fb1ee3
merged Luminarys resizing code
2015-08-18 01:07:12 -07:00
taiyu
f0fe4a346d
style
2015-08-18 00:58:25 -07:00
taiyu
11321ca2dd
changed handling of focus, handling of view by type
2015-08-18 00:28:44 -07:00
Luminarys
e541ba3d87
Added in basic, but semi-broken moving/resizing functionality to floating windows
2015-08-18 01:33:15 -05:00
Luminarys
1781450e86
Typo fix and more clarification
2015-08-17 14:24:55 -05:00
Luminarys
b5f19f0fd3
View destroy handling clean up and clarifications
2015-08-17 14:22:49 -05:00
taiyu
199ba05ef1
put back
2015-08-17 11:44:05 -07:00
taiyu
d2995d1eb2
fixed handling of views with override_redirect (dmenu)
2015-08-17 11:24:45 -07:00
taiyu
f832c02065
fixed when views dont have names.
2015-08-17 10:02:09 -07:00
Luminarys
c9ce8bf1bd
Style and other minor fixes
2015-08-17 10:34:39 -05:00
Luminarys
47ec999e71
Fixes to floating and umanaged views
2015-08-17 10:18:06 -05:00
Drew DeVault
be2635daa6
Fix format warnings
2015-08-16 22:16:09 -04:00
taiyu
4077238782
sends hidden views to back, visible view to front
2015-08-16 18:59:12 -07:00
taiyu
ffb3458322
focus changes when mouse moves over border instead of all mouse movement
2015-08-16 18:41:51 -07:00
taiyu
498cf268f7
unmanaged views handled better
2015-08-16 18:24:46 -07:00
taiyu
c024f06631
handle_view_state_request
2015-08-16 17:28:06 -07:00
Drew DeVault
7514431836
Fix pointer events properly
2015-08-16 16:12:40 -04:00
Drew DeVault
7878490425
Revert "Return false from pointer events"
...
This reverts commit 981db16a8e
.
2015-08-16 16:10:05 -04:00
Drew DeVault
981db16a8e
Return false from pointer events
2015-08-16 16:00:11 -04:00
Drew DeVault
5ff71c2d5c
Fix key handling from wlc
2015-08-16 13:26:41 -04:00
Drew DeVault
6e8280e7fd
Config errors should not be fatal
2015-08-16 12:03:34 -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
eefc76b39e
set userdata for handler to swayc_t container
2015-08-16 00:46:58 -07:00
taiyu
083d1eed1f
fixed 2 small memory leaks & adds format attribute to log.
2015-08-15 21:21:20 -07:00
taiyu
2e92538d7f
style
2015-08-15 17:45:16 -07:00
taiyu
14b7755134
set maximize flag for handled views
2015-08-15 17:43:45 -07:00