Commit graph

1931 commits

Author SHA1 Message Date
emersion 50298dc901
Send pointer discrete axis values and source
Update for swaywm/wlroots#970
2018-05-12 13:56:17 +01:00
Drew DeVault 32a572cecf Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements"
This reverts commit 3e1bf721c6, reversing
changes made to 2217518bd5.
2018-05-12 08:52:54 -04:00
Drew DeVault ac0e62584f Revert "Merge pull request #1953 from RyanDwyer/criteria-focused"
This reverts commit 2511adffc2, reversing
changes made to 3e1bf721c6.
2018-05-12 08:52:48 -04:00
Ryan Dwyer 4717c71da5
Merge branch 'master' into fix-crash-on-fullscreen 2018-05-12 17:52:51 +10:00
Ryan Dwyer 94e42f9857 Implement __focused__ criteria 2018-05-12 12:34:12 +10:00
Drew DeVault 3e1bf721c6
Merge pull request #1943 from RyanDwyer/criteria-improvements
Overhaul criteria implementation
2018-05-11 20:39:43 -04:00
Dudemanguy911 935bda0f33 fix crash on fullscreen toggle 2018-05-11 07:42:56 -05:00
Drew DeVault 2217518bd5
Merge pull request #1956 from ggreer/move-focus
cmd_move_container: Focus a window on the source workspace.
2018-05-11 07:34:14 -04:00
Geoff Greer 87fa84df13 cmd_move_container: Focus a window on the source workspace.
In Sway 0.15, moving a window to another workspace would cause a window on the source workspace to be focused. This restores that behavior, allowing you to quickly move a lot of windows to another workspace.
2018-05-10 23:44:35 -07:00
Geoff Greer 0a79983f94 Allow setting border widths for normal borders using default_border.
In Sway 0.15, `default_border normal 1` would set 1px wide borders. This recreates that behavior.
2018-05-10 23:35:37 -07:00
Ryan Dwyer 8595fc5a6f Update criteria documentation 2018-05-11 10:43:10 +10:00
Ryan Dwyer 0bf0a4fa40 Don't unescape \\ in criteria 2018-05-11 10:42:24 +10:00
Ryan Dwyer 3b0c26d149 Overhaul criteria implementation
The criteria struct now uses properties for each token type rather than
the list_t list of tokens. The reason for this is that different token
types have different data types: pcre, string and number to name a few.
This solution should be more flexible moving forward. A bonus of this is
that criteria is now easier to understand when looking at the struct
definition.

The criteria parser has been rewritten because the previous one didn't
support valueless pairs (eg. [class="foo" floating]).

Criteria now has types. Types at the moment are CT_COMMAND,
CT_ASSIGN_WORKSPACE and CT_ASSIGN_OUTPUT. i3 uses types as well.
Previously the assign command was creating a criteria with 'move to
workspace <name>' as its command, but this caused the window to appear
briefly on the focused workspace before being moved to the assigned
workspace. It now creates the view directly in the assigned workspace.

Each view will only execute a given criteria once. This is achieved by
storing a list of executed criteria in the view. This is the same
strategy used by i3.

Escaping now works properly. Previously you could do things like
[class="Fire\"fox"] and the stored value would be 'Fire\"fox', but it
should be (and now is) 'Fire"fox'.

The public functions in criteria.c are now all prefixed with criteria_.

Xwayland views now listen to the set_title, set_class and
set_window_type events and criteria will be run when these happen. XDG
shell has none of these events so it continues to update the title in
handle_commit.

Each view type's get_prop function has been split into get_string_prop
and get_int_prop because some properties like the X11 window ID and
window type are numeric.

The following new criteria tokens are now supported:

* id (X11 window ID)
* instance
* tiling
* workspace
2018-05-11 09:38:53 +10:00
Ryan Dwyer 83e314bf51 Highlight all child borders when using focus parent 2018-05-11 09:20:46 +10:00
emersion 44fcc06efd
Fix damage tracking on HiDPI 2018-05-10 23:22:00 +01:00
emersion 90614f3a63
Accumulate surface damage even if whole=true 2018-05-10 23:03:51 +01:00
emersion c0f5d740a5
Damage container when updating title 2018-05-10 23:03:51 +01:00
emersion 70b80b4698
Damage container on focus 2018-05-10 23:03:50 +01:00
emersion bec80f1551
Damage borders when damaging view 2018-05-10 23:03:50 +01:00
emersion 98f7ee8f59
Render borders with damage 2018-05-10 23:03:50 +01:00
emersion c8a9ea3903
Implement full damage tracking 2018-05-10 23:02:37 +01:00
Drew DeVault 3bab37858a
Merge pull request #1932 from emersion/fix-layer-shell-exclusive
layer-shell: use usable_area when arranging non-exclusive layer surfaces
2018-05-10 08:19:03 -04:00
Ryan Dwyer 497793b5b7 Use reasonable default for font height
Fixes #1949
2018-05-10 21:24:00 +10:00
emersion 3d29e73e72
layer-shell: use usable_area when arranging non-exclusive layer surfaces 2018-05-10 12:19:38 +01:00
Dan Robertson 4ebd6f3507
Fix null deref in server_init
If the backend fails to be created, log an error and immidiately return
from server_init.
2018-05-09 16:32:55 +00:00
Ryan Dwyer 4922d269b8 Fix titles on rotated outputs
If the output is rotated, the scissor box needs to be transformed in the
opposite rotation.
2018-05-09 16:41:54 +10:00
Vincent Vanlaer 95dac2a069 Update xwayland start for new API
https://github.com/swaywm/wlroots/pull/959
2018-05-07 14:23:44 +02:00
Rostislav Pehlivanov b592351eef Revert "exec_always: Search for executables in /usr/lib/sway"
This reverts commit 7709340727.
2018-05-06 00:20:49 +01:00
Rostislav Pehlivanov 2c0c3dc7cc Revert "Make the LIBDIR path configurable"
This reverts commit 1670b46bf6.
2018-05-06 00:19:52 +01:00
Rostislav Pehlivanov 0cdc47ab1e Revert "Meson: Replace option instlibdir with libexecdir"
This reverts commit 830c4ef74c.
2018-05-06 00:19:43 +01:00
Rostislav Pehlivanov cf602687c6 Revert "command/exec_always: Use wlr_log for logging errors in the child process"
This reverts commit 177c67e6b8.
2018-05-06 00:19:29 +01:00
Ryan Dwyer 556ff5f50e Implement pango support
Implements support for the pango: prefix in the font command.

Closes #1903.
2018-05-06 08:25:22 +10:00
Ryan Dwyer 1daf69477e Fix PATH setenv() in exec_always 2018-05-06 08:16:34 +10:00
emersion 786727d8bb
Merge branch 'master' into usr-lib 2018-05-05 20:03:46 +01:00
Nicolas Braud-Santoni 177c67e6b8 command/exec_always: Use wlr_log for logging errors in the child process 2018-05-05 17:22:46 +02:00
Nicolas Braud-Santoni 830c4ef74c Meson: Replace option instlibdir with libexecdir
Derive a value from it, called `rundir` rather than writing join_paths(libexecdir,
'sway') all over the place.
2018-05-05 17:22:46 +02:00
Nicolas Braud-Santoni 1670b46bf6 Make the LIBDIR path configurable 2018-05-05 17:22:46 +02:00
Nicolas Braud-Santoni 7709340727 exec_always: Search for executables in /usr/lib/sway 2018-05-05 17:22:46 +02:00
Ryan Dwyer 936226845f Add extra check for view title being NULL 2018-05-05 22:29:37 +10:00
Ryan Dwyer 5d6d24e71a Move code for re-arranging after font height change into a common place 2018-05-05 22:29:37 +10:00
Ryan Dwyer da7d6642d3 Refactor parse_title_format() 2018-05-05 22:29:37 +10:00
Ryan Dwyer d10a0a8c41 Fix memory leak in title_format command 2018-05-05 22:29:37 +10:00
Ryan Dwyer 228c478e8d Implement title_format
This implements the title_format command, with a new placeholder %shell
which gets substituted with the view type (xwayland, xdg_shell_v6 or
wl_shell).

Example config:

    for_window [title=".*"] title_format %title (class=%class instance=%instance shell=%shell)
2018-05-05 22:29:37 +10:00
Ryan Dwyer e83e5487be Use scissor to render title texture
This allows the title's texture to always be the full width of the text,
and clipped at render time according to the desired width (eg. tabs...).

As an added bonus, the texture no longer needs to be updated when
containers are arranged.
2018-05-05 20:32:31 +10:00
Alex Xu (Hello71) 3202c45054 Check for NULL in container_update_title
Fixes crash when opening Firefox developer tools.
2018-05-04 11:10:01 -04:00
Drew DeVault 029c9b1796
Merge pull request #1907 from emersion/backend-input-mapping
Default to backend-wise input device mapping, if any
2018-05-03 10:46:02 -04:00
Drew DeVault d233e75eec Hide cursor on touch down 2018-05-03 10:39:34 -04:00
Drew DeVault 00e62c214d Fix alphabetization of command list 2018-05-03 09:24:13 -04:00
emersion 424006089e
Default to backend-wise input device mapping, if any 2018-05-03 14:16:17 +01:00
emersion 29224e7aec
Fix segfault when running the resize command without arguments 2018-05-03 14:04:39 +01:00