Commit graph

1926 commits

Author SHA1 Message Date
Ryan Dwyer
89d1571041 Fix potential segfault when setting container title 2018-05-03 15:23:39 +10:00
Ryan Dwyer
55b307cddf Calculate config->font_height based on existing container titles 2018-05-03 15:12:00 +10:00
Ryan Dwyer
b667298a0a Render titles 2018-05-03 15:12:00 +10:00
Drew DeVault
52aa245b24 Implement basic touch support
This required changing container_at_cursor to container_at_coords so
that we could get the appropriate surface (and sx/xy) without moving the
cursor.

Future work:

- Simulate a cursor for clients which have not bound to wl_touch
- Keep sending motion events when moving outside the surface (#1892)
- Bind gestures to sway commands
2018-05-02 09:00:26 -04:00
Dillen Meijboom
b45e2bd95e Fixed #1888 GCC cannot compile due to uninitialized variables (#1889) 2018-05-02 10:40:45 +01:00
Ryan Dwyer
daab8e3503 Support alpha in border colours
The alpha component is merged with the container's opacity.

Completes #1882.
2018-05-02 08:40:38 +10:00
db
22170bde77 Fix layer surface crash on output destroy
Before freeing sway_output, NULL the wlr_output reference to it. Check for that
NULL in layer_shell handle_destroy. Don't damage null container in unmap.
Additionaly, terminate swaybg if its output is being disabled.
2018-05-01 19:05:32 +02:00
Ryan Dwyer
cb07434913 Remove unnecessary pointers 2018-05-01 22:48:57 +10:00
Ryan Dwyer
51df1d4ff8 Update cursor when border is changed 2018-05-01 22:42:08 +10:00
Drew DeVault
7f574c538d Fix alphabetization of commands array 2018-05-01 07:46:57 -04:00
Ryan Dwyer
83952c5201 Restore view_update_position() 2018-05-01 07:46:57 -04:00
Ryan Dwyer
55577498c0 Allow clicking view decorations to focus view 2018-05-01 07:46:57 -04:00
Ryan Dwyer
700510b45e Implement indicator border 2018-05-01 07:46:57 -04:00
Ryan Dwyer
ed9e2015b2 Scale borders according to output scale 2018-05-01 07:46:57 -04:00
Ryan Dwyer
0375f966f1 Fix surface offset when using borders 2018-05-01 07:46:57 -04:00
Ryan Dwyer
fa5de2876e Move docblock and fix indenting of switch/case. 2018-05-01 07:46:57 -04:00
Ryan Dwyer
630ba30e3c Implement borders
Implements rendering of borders. Title text is still to do.

Implements the following configuration directives:

* client.focused
* client.focused_inactive
* client.unfocused
* client.urgent
* border
* default_border
2018-05-01 07:46:57 -04:00
Ryan Dwyer
91f97fc21a Fix segfault in view_unmap()
If the last remaining view on a workspace is unmapped and the workspace
is not visible, parent will be a C_OUTPUT. Call the arrange_output()
function in this case.
2018-05-01 17:18:20 +10:00
Ryan Dwyer
312fdf313f Remove arrange_windows()
After the refactor, this function is no longer called.
2018-04-30 08:47:38 +10:00
emersion
976e6b99b6
Merge branch 'master' into refactor-arrange-windows 2018-04-29 13:10:59 +01:00
Drew DeVault
24ab66d123
Merge pull request #1867 from emersion/wlroots-923
Update for wlroots#923
2018-04-29 08:00:20 -04:00
emersion
3fd8897abe
Don't call view_set_fullscreen on unmapped xwayland views 2018-04-28 20:44:42 +01:00
Ryan Dwyer
167c2e1aa9 Refactor arrange_windows()
Replaces arrange_windows() with arrange_root(), arrange_output(),
arrange_workspace() and arrange_children_of().

Also makes fullscreen views save and restore their dimensions, which
allows it to preserve any custom resize and is also a requirement for
floating views once they are implemented.
2018-04-28 11:26:14 +10:00
emersion
860d2384b4
Update for swaywm/wlroots#923 2018-04-27 17:30:45 +01:00
Geoff Greer
5587af1782 Rename len to msg_len. Avoids an aliased variable that was a little confusing to follow. 2018-04-26 18:16:29 -07:00
Geoff Greer
b9726afd48 invoke_swaybar(): Set process group. Kill process group.
Fixes a bug where terminate_swaybar() did not terminate swaybar.
2018-04-26 18:13:44 -07:00
emersion
ff61df17ff
Add map_from_region command 2018-04-26 10:53:47 +01:00
Ryan Dwyer
ae39d7b28c Remove sway_container.workspace_layout
Fixes #1716.
2018-04-26 10:14:18 +10:00
Drew DeVault
c54097428a
Merge branch 'master' into criteria-commands 2018-04-25 11:00:56 +02:00
emersion
df245780d2
Do not let tiled xwayland views do what they want 2018-04-24 18:19:26 +01:00
emersion
3ed3bdf03f
Fix segfault when switching back to workspace with osu! 2018-04-24 18:18:49 +01:00
Ryan Dwyer
dfc26c664f Update wording about unmanaged/unmapped views 2018-04-24 20:14:22 +10:00
Ryan Dwyer
689a6a5605 Use size_t instead of int and calloc instead of malloc 2018-04-24 20:08:32 +10:00
Ryan Dwyer
30a7488936 Add assert to view_execute_criteria() 2018-04-24 20:08:32 +10:00
Ryan Dwyer
72767e1cc3 Implement criteria commands
Implements the following commands:

* for_window [...] <cmdlist>
* assign [...] <workspace>
2018-04-24 20:08:32 +10:00
Ryan Dwyer
22b9169631 Fix crash in container_descendants()
If root is a C_VIEW, the children property is a null pointer.
2018-04-24 12:27:04 +10:00
Drew DeVault
420a669f21 Updates per swaywm/wlroots#887 2018-04-23 11:15:07 +02:00
Ryan Dwyer
fbb5198e43 Sort workspaces after rename 2018-04-23 18:54:45 +10:00
Ryan Dwyer
d956286b92 Implement rename workspace command
This implements the following commands:

* rename workspace to new_name
* rename workspace old_name to new_name
* rename workspace number n to new_name
2018-04-23 18:54:45 +10:00
Ryan Dwyer
4d2b3fc950 Render unmanaged xwayland views when an xwayland view is fullscreen
This makes Chromium and Firefox context menus appear when fullscreen.
2018-04-23 09:20:19 +10:00
emersion
a41057714f
Update for wlroots#885 2018-04-21 19:12:49 +01:00
Drew DeVault
72149111a5
Merge pull request #1838 from emersion/use-wlr-renderer-init-wl-shm
Use wlr_renderer_init_wl_shm
2018-04-21 15:22:08 +02:00
Drew DeVault
4386dcb624
Merge pull request #1837 from emersion/cursor-default-to-current-time
Default to current time when triggering cursor events
2018-04-21 15:21:52 +02:00
emersion
b96d774c70
Use wlr_renderer_init_wl_shm 2018-04-21 14:08:48 +01:00
emersion
4cf77e1de4
Default to current time when triggering cursor events 2018-04-21 14:07:22 +01:00
Drew DeVault
6e6decf385
Merge pull request #1834 from emersion/xwayland-no-unmap-on-destroy
Don't unmap on destroy, this is already guaranteed by wlroots
2018-04-21 14:47:44 +02:00
emersion
33ed279494
Update cursor when workspace focus changes 2018-04-21 12:46:48 +01:00
emersion
17bee33fc9
Don't unmap on destroy, this is already guaranteed by wlroots 2018-04-20 16:24:34 +01:00
Ryan Dwyer
34429a3605 Keep view fullscreened when moving to another workspace.
container_handle_fullscreen_reparent() must be called *after* setting
the container's new parent.
2018-04-20 21:26:14 +10:00
Ryan Dwyer
6afccd07d9 Add TODO about rendering fullscreen views smaller than the output 2018-04-20 08:12:03 +10:00
Ryan Dwyer
76837b9132 Ignore xdg_shell_v6 request_fullscreen if not mapped 2018-04-20 08:10:58 +10:00
Ryan Dwyer
bd67342bdc Don't render top layer when fullscreen. 2018-04-20 08:08:34 +10:00
Drew DeVault
777800e37a Fix qutebrowser crash on context menu dismissal 2018-04-19 09:15:21 -04:00
Drew DeVault
21eb63cc9e
Merge branch 'master' into fullscreen 2018-04-19 08:56:03 -04:00
Ryan Dwyer
9ab61716b5 Correct the repeat_rate documentation. 2018-04-19 13:48:20 +10:00
Ryan Dwyer
9d3739a6f7 Split repeat commands into separate files. 2018-04-19 13:47:29 +10:00
Ryan Dwyer
9715e38ca8 render_output(): When fullscreen, clear to black and don't render background 2018-04-19 13:01:43 +10:00
Ryan Dwyer
45a2fad0de container_get_in_direction(): Don't split this function 2018-04-19 12:53:02 +10:00
Ryan Dwyer
7e38cc2e05 arrange_windows(): Calculate workspace properties when fullscreen 2018-04-19 12:50:53 +10:00
Ryan Dwyer
2acfbc519e xdg_shell_v6: Use client_pending state instead of current
It appears client_pending is the state that should be used here.
2018-04-19 12:47:34 +10:00
Ryan Dwyer
1285f01b13 Merge branch 'master' into fullscreen 2018-04-19 12:44:13 +10:00
Ryan Dwyer
5b30391383 Make key repeat configurable
This creates two input commands for configuring the repeat delay and rate.

Example config:

    input "myidentifier" {
        repeat_delay 250
        repeat_rate 25
    }
2018-04-18 23:19:23 +10:00
Ryan Dwyer
8d06b222f0 Fullscreen rendering and input fixes.
* Render background when using fullscreen, because transparency.
* Check that fullscreen surface allows input.
* Don't look for surfaces in top layer if there's a fullscreen view.
2018-04-18 13:06:10 +10:00
Ryan Dwyer
35ccdd67a8 More fullscreen fixes.
* Render fullscreen views without wlr function, which makes popups and
lockscreen work.
* Don't allow input events to surfaces behind fullscreen views.
* Use correct output dimensions (for rotated outputs).
2018-04-18 08:35:28 +10:00
emersion
7114451607
Destroy display in server_fini 2018-04-17 23:15:11 +01:00
Ryan Dwyer
72beae209b Fullscreen fixes. 2018-04-18 00:10:32 +10:00
Ryan Dwyer
cc4da245a8 Fix views unmapping their own fullscreen windows. 2018-04-17 11:06:03 +10:00
Ryan Dwyer
143b528f71 Handle fullscreen flag when mapping a surface. 2018-04-17 11:04:57 +10:00
Ryan Dwyer
a44d016e2b Don't damage views if they're hidden by a fullscreen view. 2018-04-17 10:58:42 +10:00
Ryan Dwyer
c685ef081f Create sway_workspace struct. 2018-04-17 09:31:34 +10:00
Ryan Dwyer
bfd5834f4c Feedback for fullscreen. 2018-04-17 08:11:50 +10:00
Ryan Dwyer
52420cc24d Implement fullscreen. 2018-04-16 20:36:40 +10:00
db
f555edf353 remove empty workspace when focusing its output
Until now, focus changing code only considered cleaning up the last focused
workspace. This commit adds removal of empty workspace from output that just
received focus on a different workspace.

Fixes: #1797
2018-04-15 08:30:30 +02:00
Dominique Martinet
8490d1662c Fix gcc maybe-uninitialized warning 2018-04-13 22:47:27 +09:00
Dominique Martinet
25af959fe9 Fix gcc string truncation warnings 2018-04-13 22:47:27 +09:00
emersion
2b34bf1882
Merge branch 'master' into crashes 2018-04-13 09:14:37 -04:00
emersion
bdaf420ead
Do not call the map handler when an xwayland surface is created 2018-04-13 14:43:41 +02:00
Dominique Martinet
de65d05821 container_destroy: fix segfault
cont->children doesn't have to be NULL when there is no children
2018-04-13 14:58:23 +09:00
Dominique Martinet
1fd21650d7 seat_set_focus_wrap: fix use-after-free when destroying last focused container 2018-04-13 14:58:23 +09:00
Danny Bautista
c53b2edd41 Add documentation for seat cursor command. 2018-04-10 15:44:02 -04:00
Danny Bautista
c355d680e9 Clean up cursor simulation code. 2018-04-10 15:40:27 -04:00
Danny Bautista
1edb2bd892 Implement cursor event simulation with sway commands. 2018-04-10 12:40:50 -04:00
db
63b2543749 Add workspace_auto_back_and_forth for move cmd 2018-04-09 21:34:56 +02:00
Drew DeVault
07b6be6214
Merge pull request #1769 from acrisci/focus-inactive-fixes
Focus inactive fixes
2018-04-08 16:05:03 -04:00
Drew DeVault
0e3ddf255e Add input "identifier" map_to_output "identifier" 2018-04-08 15:09:12 -04:00
Tony Crisci
8ecd89b7ef address feedback 2018-04-08 14:22:20 -04:00
Tony Crisci
ae78f6fb93 Merge branch 'wlroots' into focus-inactive-fixes 2018-04-08 12:47:56 -04:00
Drew DeVault
9c5a88a7bd Fix cursor motion issues
Use only one canonical cursor x/y position and send cursor enter when
mouse is warped.

Tangentally related to #1714
2018-04-08 12:42:56 -04:00
Tony Crisci
70b33342fe criteria match containers 2018-04-08 12:13:09 -04:00
emersion
5ebc99253a
Use wlr_surface_point_accepts_input for unmanaged surfaces 2018-04-08 11:43:18 -04:00
Tony Crisci
46280460a5 push all parents of focused container in focus stack 2018-04-08 11:34:38 -04:00
Drew DeVault
efff7c4225
Merge pull request #1776 from emersion/wlroots-remove-backend-egl
Update for wlroots#850
2018-04-08 11:34:02 -04:00
emersion
9570e37016
Update for wlroots#850 2018-04-08 11:19:14 -04:00
Drew DeVault
8763957344
Merge pull request #1774 from swaywm/tablet-tool
Implement tablet tool support
2018-04-08 11:16:56 -04:00
Drew DeVault
9114d3b84c Implement tablet tool support 2018-04-08 10:48:13 -04:00
db
042b80b9fa Add workspace_auto_back_and_forth command
This is the only missing piece - other code regarding this functionality has
already been ported from pre-wlroots source.
2018-04-08 16:44:59 +02:00
Tony Crisci
9db859585e container_create_notify on split 2018-04-07 18:01:18 -04:00
Tony Crisci
0ff22c1755 implement ipc focus stack 2018-04-07 16:23:53 -04:00
Tony Crisci
de811823b6 seat focus inactive children foreach 2018-04-07 16:14:12 -04:00
Tony Crisci
c0f9ee7bd1 seat get focus inactive view 2018-04-07 16:06:36 -04:00