Commit graph

1984 commits

Author SHA1 Message Date
Joshua Ashton
95ce9e0264 keybind: Fix shift modifiers
Need to lower the syms for these to match!

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-21 18:15:42 +01:00
Johan Malm
174e82a608 layers: support popups 2021-10-20 22:32:46 +01:00
Johan Malm
08a54bd3f5 desktop: use correct coordinates layer_surface_at()
Use output coordinates rather than layout coordinates in order to
correctly handle pointer button event on multi-output setup.
2021-10-20 20:57:12 +01:00
Johan Malm
26454e3115 xwayland: clear wlr_xwayland_surface in handle_destroy
Avoids wlr_xwayland_surface becoming a dangling pointer if a view is not
destroyed immediately.

See swaywm/sway@215787e8
2021-10-20 20:34:47 +01:00
Joshua Ashton
8048f5f497 server: Expose viewporter
Needed for some games to fake modesets.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-20 18:49:22 +01:00
Joshua Ashton
35e9d8cb35 output: Implement src box for viewporter
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-20 18:49:22 +01:00
Joshua Ashton
0a7f1b51f7 xwayland: Implement set_decorations
Fixes games going between borderless and normal windowed modes.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-20 18:49:02 +01:00
Joshua Ashton
89f09567f5 xdg-deco: Respect decoration requests properly
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-20 18:49:02 +01:00
Joshua Ashton
60547cffe6 xdg: Set view in user data
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-20 18:49:02 +01:00
Joshua Ashton
a29ffebc40 xwayland: Set view in surface data
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-20 18:49:02 +01:00
ARDiDo
fffa912fd6 use closest wlr_output 2021-10-20 06:51:30 +01:00
ARDiDo
380b8b295a clean up view_available_wlr_output 2021-10-20 06:51:30 +01:00
ARDiDo
08286a607f improve view_output 2021-10-20 06:51:30 +01:00
Johan Malm
7398966661 config: change libinput variables to camelCase
This is more consistent with other rc.xml variables.

strcasecmp() is used in src/config/rc.xml, so there are not backward
compatibility issues.
2021-10-19 21:44:44 +01:00
Johan Malm
e7da5f21e9 view: fix build warning 2021-10-18 20:06:47 +01:00
Johan Malm
806fdb08bd view: add view_get_string_prop() 2021-10-18 20:01:10 +01:00
Johan Malm
cf1bd67ec1 foreign: remove unnecessary view_update_title()
View update title is called from view_impl_map() which is enough
2021-10-18 19:40:04 +01:00
Johan Malm
40da2f34a5 view: check view->impl functions exist before using
Avoids segfault when using disappearing notification in Thunderbird
2021-10-18 19:35:41 +01:00
Joshua Ashton
846ccb9eb9 action: Implement shift to go backwards in OSD
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-18 17:28:34 +01:00
Joshua Ashton
d8a499deaa config: Fix RaiseOnFocus always setting FollowMouse
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-18 17:25:08 +01:00
Joshua Ashton
22d10497ca view: Add 'center' option to SnapToEdge
Similar to fullscreen, but not a separate state, and with gaps.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 23:24:36 +01:00
Joshua Ashton
95f583ba6b cursor: Don't trigger cursor modifiers if we have a constraint
We are probably playing a game and we don't want to be resizing the window when trying to duck/jump whatever.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 23:23:39 +01:00
Joshua Ashton
398cad692d cursor: Fix modifier button check
Previously any modifier would trigger this due to &ing the wrong value.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 23:23:39 +01:00
Joshua Ashton
7e4e579c37 cursor: Handle absolute motion for relative_pointer
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 23:21:27 +01:00
ARDiDo
f5072151a9 add pointer constraints 2021-10-17 22:32:25 +01:00
Johan Malm
bd1e6f3728 view: set inter-view gap correctly in SnapToEdge
When arranging views side-by-side or above-below using SnapToEdge, the gap
between views should be rc.gap rather than 2x rc.gap
2021-10-17 22:23:00 +01:00
Johan Malm
526fb1668c config: use super+arrow for SnapToEdge by default 2021-10-17 21:30:48 +01:00
Joshua Ashton
8b8e37c268 theme: Implement window.label.text.justify
Crosses off 6.12.1

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 20:50:13 +01:00
Joshua Ashton
140c245880 xdg: Respect min/max size in configure
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 19:49:05 +01:00
Joshua Ashton
d9b021916a xwayland: Handle min width/height in configure
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 19:49:05 +01:00
Joshua Ashton
1db6c54e59 cursor: Handle min size better
Less janky than just returning if one extent reaches max, and also uses the new min_size function for xwayland hint support.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 19:49:05 +01:00
Joshua Ashton
8652f97887 view: Add view_min_size helper function
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 19:49:05 +01:00
Joshua Ashton
62123dc37e xwayland: Implement resize event
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 18:23:15 +01:00
Joshua Ashton
2a18899689 xwayland: Implement move event
Closes: #81
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 18:23:15 +01:00
Joshua Ashton
a67e74670b xwayland: Only perform top-left boundary check when using ssd
We don't have decorations so we shouldn't account for them.

Closes: #53
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 12:22:01 +01:00
Joshua Ashton
f12617deea action: Fix crash in move to edge
Fixes a crash in move to edge ( #77 ) when the centre of the window is out of any display regions.

Doesn't fix the expected behaviour that it would work, but much better than the whole compositor dying.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 12:21:49 +01:00
Joshua Ashton
8e3108c032 action: Add 'SnapToEdge'
Implements snap-style edge snapping that works between multiple monitors.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 12:19:35 +01:00
Joshie
6bcefc27a8 theme: fix parsing inactive label colors
There was a typo here which meant these never got parsed and always appeared as black.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-17 11:59:02 +01:00
Johan Malm
e2ae63a7cf xdg/wayland-shell: handle set_app_id and set_class events 2021-10-16 21:50:56 +01:00
Johan Malm
e140682528 view: call wlr_foreign_toplevel_handle_v1_set_app_id() on map
Fix issue #74

Add view-impl.c with view_impl_map() containing common code for xdg-shell
and xwayland-shell.
2021-10-16 21:26:57 +01:00
Johan Malm
4d44659c08 desktop: remove deprecated functions
- set_activated()
- desktop_set_focus_view_only()
2021-10-16 19:53:00 +01:00
Johan Malm
9a290feeea desktop: simplify interface for view raise/focus
Split desktop_focus_view() into the following two functions:
  - desktop_focus_and_activate_view()
  - desktop_raise_view()

Always call view_set_activated() rather than using the private
set_activated(). This keeps the code cleaner and ensures
wlr_foreign_toplevel_handle_v1_set_activated() is called.
2021-10-16 19:44:54 +01:00
Johan Malm
70144ac113 view: add view_set_activated()
Call wlr_foreign_toplevel_handle_v1_set_activated() from it in support of
issue #73
2021-10-16 19:24:26 +01:00
Johan Malm
54d22a7129 theme: inherit osd colors if not set 2021-10-15 21:44:27 +01:00
Johan Malm
597650b457 theme: add window_(in)active_label_text_color
Support both active and inactive colors for titlebar text
2021-10-15 21:35:41 +01:00
Johan Malm
606b6d946e Fix coding style, mostly whitespace 2021-10-15 20:52:36 +01:00
Johan Malm
f8e1d76333 config: survive parsing error
It is no good crashing on an rc.xml syntax error, particularly on a
SIGHUP when the user could have applications open.
2021-10-15 20:33:55 +01:00
Johan Malm
73b8f06a26 layer-shell: fix commit handler (issue #71)
On commit, do not arrange layers unless the layer shell-specific state
changed or the layer was (un)mapped.

Chase swaywm/sway@5fd5d643 and swaywm/wlroots@754f40f9
2021-10-15 19:14:07 +01:00
ARDiDo
416499624e Complete libinput configuration 2021-10-15 19:11:35 +01:00
Johan Malm
417763e8f8 config: support audio and monitor keys by default
Add default keybinds:

    XF86_AudioLowerVolume - amixer sset Master 5%-
    XF86_AudioRaiseVolume - amixer sset Master 5%+
    XF86_AudioMute - amixer sset Master toggle
    XF86_MonBrightnessUp - brightnessctl set +10%
    XF86_MonBrightnessDown - brightnessctl set 10%-
2021-10-14 19:37:57 +01:00