Commit graph

5398 commits

Author SHA1 Message Date
Connor E
4bd46fb079 Implement strip_workspace_name. 2018-11-17 16:11:28 +00:00
Drew DeVault
eda3bfeed5
Merge pull request #3142 from RyanDwyer/move-view-properties
Move view {x,y,width,height} into container struct
2018-11-17 11:04:34 -05:00
Drew DeVault
a5cdc293dc
Merge pull request #3143 from colemickens/grow
commands/resize: fix grow vars uninitialized
2018-11-17 11:03:42 -05:00
Ryan Dwyer
be9348d25c Move view {x,y,width,height} into container struct
This renames/moves the following properties:

* sway_view.{x,y,width,height} ->
sway_container.content_{x,y,width,height}
    * This is required to support placeholder containers as they don't
    have a view.
* sway_container_state.view_{x,y,width,height} ->
sway_container_state.content_{x,y,width,height}
    * To remain consistent with the above.
* sway_container_state.con_{x,y,width,height} ->
sway_container_state.{x,y,width,height}
    * The con prefix was there to give it contrast from the view
    properties, and is no longer useful.

The function container_set_geometry_from_floating_view has also been
renamed to container_set_geometry_from_content.
2018-11-17 21:29:42 +10:00
Cole Mickens
fb6ef83b16 commands/resize: fix grow vars uninitialized 2018-11-17 03:23:06 -08:00
Ryan Dwyer
cb63321de6
Merge pull request #3132 from emersion/dispatch-cursor-btn-segfault
Fix segfault in dispatch_cursor_button
2018-11-17 20:24:01 +10:00
emersion
b67baf5108
Merge pull request #3141 from tslocum/resize-set-floating-ppt
resize set: convert ppt to px for floating containers
2018-11-17 11:20:08 +01:00
Trevor Slocum
f4ccc51da0 resize set: convert ppt to px for floating containers 2018-11-16 07:30:46 -08:00
emersion
4ce18d2744
Fix segfault in dispatch_cursor_button 2018-11-15 16:35:19 +01:00
Drew DeVault
c36665bc17
Merge pull request #3130 from RyanDwyer/fix-mode-double-free
Fix double free of mode
2018-11-15 09:35:51 -05:00
Ryan Dwyer
4e8bf5b328 Fix double free of mode
config->current_mode is a pointer into the config->modes list, and each
mode has already been freed.

Same with bars.
2018-11-15 23:48:11 +10:00
Brian Ashworth
0451acfb75
Merge pull request #3128 from RyanDwyer/fix-unmap-crash
Fix double free when unmapping any view
2018-11-15 00:38:42 -05:00
Ryan Dwyer
2115ebe39d Fix double free when unmapping any view 2018-11-15 15:22:09 +10:00
Drew DeVault
932d6ee0d4
Merge pull request #3126 from emersion/swap-unused-function
Fix unused function in swap command
2018-11-14 21:43:40 -05:00
Drew DeVault
484bf591be
Merge pull request #3121 from c-edw/feature/MissingFrees
[WIP] Free unfreed resources.
2018-11-14 21:25:26 -05:00
emersion
98a953a872
Fix unused function in swap command
Also fixes a size_t cast to void *.
2018-11-14 19:31:43 +01:00
Drew DeVault
47cca240e2
Merge pull request #3102 from emersion/render-software-cursors
Render software cursors with wlr_output_render_software_cursors
2018-11-13 14:59:48 -05:00
Connor E
eda1bf769f More frees. 2018-11-13 14:42:00 +00:00
Connor E
b5d95f264d Add some missing frees. 2018-11-13 13:45:01 +00:00
Drew DeVault
27b930df24
Merge pull request #3117 from emersion/wlroots-config10
Use #if instead of #ifdef for WLR_HAS_*
2018-11-12 20:35:27 -05:00
emersion
2afd930914
Use #if instead of #ifdef for WLR_HAS_* 2018-11-12 22:23:06 +01:00
emersion
3b8d4a9212
Merge pull request #3116 from harishkrupo/master
IPC: Send keyboard layout info in IPC_GET_INPUTS
2018-11-12 21:26:00 +01:00
Harish Krupo
d8ad429e39 IPC: Send keyboard layout info in IPC_GET_INPUTS
Signed-off-by: Harish Krupo <harishkrupo@gmail.com>
2018-11-12 22:00:22 +05:30
Drew DeVault
2e43f02427
Merge pull request #2979 from RedSoxFan/config-var-repl
Alter config variable replacement process
2018-11-12 11:13:59 -05:00
Drew DeVault
ee6b0ce24a
Merge pull request #3113 from RedSoxFan/fix-ws-auto-back-and-forth
cmd_ws_auto_back_and_forth: fix negation
2018-11-11 16:16:28 -05:00
Brian Ashworth
62d69e9f14 cmd_ws_auto_back_and_forth: fix negation
In the conversion to `parse_boolean` for `cmd_ws_auto_back_and_forth`,
the `negation` was never removed causing the setting to be the opposite
of what it should be.
2018-11-11 16:05:13 -05:00
Drew DeVault
101515eb0c
Merge pull request #3108 from RedSoxFan/workspace-output-improved
Allow multiple outputs for workspace output
2018-11-11 11:30:27 -05:00
Brian Ashworth
12876932a9 Allow multiple outputs for workspace output
`i3 4.16` allows users to list multiple outputs for a workspace and the
first available will be used. The syntax is as follows:
`workspace <workspace> output <outputs...>`

Additionally when the workspace is created, the outputs get added to the
output priority list in the order specified. This ensures that if a higher
output gets connected, the workspace will move to the higher output. This
works the same way as if the user had a workspace on an output, disconnected
the output, and then later reconnected the output.
2018-11-11 11:22:38 -05:00
Brian Ashworth
b277000601 Alter config variable replacement process
Currently, variables cannot contain commands and cannot span more than
one argument. This is due to variable replacement happening after
determining the handler and after splitting the config line into
arguments.

This changes the process to:
0. Check for empty lines and block boundaries
1. Split the arguments as before
2. Verify that the first argument is not a variable. If needed the
following occurs
    a. Perform variable replacement on just the first argument
    b. Join the arguments back together then split the arguments again. This is needed when the variable
contains the command and arguments for the command.
3. Determine the handler
4. If the handler is cmd_set, escape the variable name so that it does
not get replaced
5. Join the arguments back together, do variable replacement on the full
command, and split the arguments again
6. Perform any needed quote stripping or unescaping on arguments
7. Run the command handler

This allows for config snippets such as:

```
set $super bindsym Mod4
$super+a exec some-command
```

and

```
set $bg bg #ffffff solid_color
output * $bg
```
2018-11-10 21:53:10 -05:00
emersion
528f129c98
Render software cursors with wlr_output_render_software_cursors 2018-11-10 19:22:32 +01:00
Drew DeVault
80a1c340a9
Merge pull request #3098 from c-edw/feature/RefactorArgParse
Use parse_boolean where possible.
2018-11-10 08:06:11 -05:00
Connor E
b865dabeba Use parse_boolean where possible. 2018-11-10 12:55:06 +00:00
Drew DeVault
7fa7f4f48d
Merge pull request #3085 from 7415963987456321/master
Remove extra line.
2018-11-08 20:07:41 -05:00
7415963987456321
965abe077a Remove extra line 2018-11-09 00:57:09 +00:00
Brian Ashworth
cfcedfca71
Merge pull request #3091 from c-edw/feature/FocusFollowsMouseDoc
Update documentation for focus_follows_mouse.
2018-11-08 15:53:02 -05:00
Connor E
78d07f5be4 Update documentation for focus_follows_mouse. 2018-11-08 20:38:50 +00:00
Drew DeVault
5880478fb1
Merge pull request #3090 from RedSoxFan/resize-set-improved
resize set: implement width and height keywords
2018-11-08 14:39:20 -05:00
Brian Ashworth
c248e96b84 resize set: implement width and height keywords
This implements the following syntaxes from `i3 4.16`:
* `resize set [width] <width> [px|ppt]`
* `resize set height <height> [px|ppt]`
* `resize set [width] <width> [px|ppt] [height] <height> [px|ppt]`

Additionally, a bug was fixed that caused setting the height of a tiled
container to change the width instead due to a typo.
2018-11-08 14:17:49 -05:00
emersion
0bc819dd8b
Merge pull request #3089 from sghctoma/fix-clang-build
Fix building with clang
2018-11-08 14:28:37 +01:00
sghctoma
7ead20bfcf Fix building with clang
The "struct sway_container *other" variable in swap.c was potentially
used uninitialized, depending on an "if" statement.
2018-11-08 13:57:04 +01:00
Ryan Dwyer
aad2f444f0
Merge pull request #3087 from RedSoxFan/side-gaps
Implement per side and per direction outer gaps
2018-11-08 22:41:14 +10:00
Drew DeVault
e53b4813fe
Merge pull request #3086 from RedSoxFan/fix-dup-inner-gaps
gaps: remove duplicate inner gaps
2018-11-08 07:06:41 -05:00
Brian Ashworth
9e8aa39530 Implement per side and per direction outer gaps
This introduces the following command extensions from `i3-gaps`:
* `gaps horizontal|vertical|top|right|bottom|left <amount>`
* `gaps horizontal|vertical|top|right|bottom|left all|current
set|plus|minus <amount>`
* `workspace <ws> gaps horizontal|vertical|top|right|bottom|left
<amount>`

`inner` and `outer` are also still available as options for all three
of the above commands. `outer` now acts as a shorthand to set/alter
all sides.

Additionally, this fixes two bugs with the prevention of invalid gap
configurations for workspace configs:
1. If outer gaps were not set and inner gaps were, the outer gaps
would be snapped to the negation of the inner gaps due to `INT_MIN`
being less than the negation. This took precedence over the default
outer gaps.
2. Similarly, if inner gaps were not set and outer gaps were, inner
gaps would be set to zero, which would take precedence over the
default inner gaps.

Fixing both of the above items also requires checking the gaps again
when creating a workspace since the default outer gaps can be smaller
than the negation of the workspace specific inner gaps.
2018-11-07 22:44:11 -05:00
Brian Ashworth
6a42643784 gaps: remove duplicate inner gaps 2018-11-07 22:42:18 -05:00
Connor E
4a21981855 Add focus_follows_mouse always. (#3081)
* Add focus_follows_mouse_mode.

* Fail if focus_follows_mouse is invalid.

* Fix indentation.
2018-11-06 21:58:08 +01:00
emersion
001ec1f3fd
Merge pull request #3046 from tokyovigilante/relative-transform
Add relative output transform
2018-11-06 14:17:33 +01:00
Ryan Walklin
5032acb7a5 Add relative output transform
This commit enhances the output transform
command with options for a relative transform,
i.e. the provided transform will be applied as
an offset to the current transform. Append
`clockwise` to rotate clockwise from the current
rotation, or `anticlockwise` to rotate in the
opposite direction.

For example, if the output LVDS-1 is rotated
90 degrees clockwise, the command
`output LVDS-1 transform 90 clockwise`
will rotate the display to 180 degrees.
All transform options are supported,
including flipped transforms.

Relative transforms can only be applied to
a single output and cannot be used with
a wildcard (*) output specifier.
2018-11-05 22:58:27 +00:00
Drew DeVault
994c35e375
Merge pull request #3068 from emersion/effective-damage
Use wlr_surface_get_effective_damage
2018-11-05 21:31:22 +01:00
Drew DeVault
25bea8f6a5
Merge branch 'master' into effective-damage 2018-11-05 21:21:47 +01:00
Drew DeVault
fbf1730557
Merge pull request #3078 from Emantor/fix/exec_always_double_load
Fix the double execution of exec_always commands on config reloads
2018-11-05 21:15:56 +01:00