]> git.mdlowis.com Git - proto/labwc.git/log
proto/labwc.git
3 years agoSnapToRegion: Allow for live config updates
Consolatis [Sun, 1 Jan 2023 17:12:20 +0000 (18:12 +0100)]
SnapToRegion: Allow for live config updates

3 years agoSnapToRegion: Respect core.gap setting
Consolatis [Fri, 16 Sep 2022 04:08:28 +0000 (06:08 +0200)]
SnapToRegion: Respect core.gap setting

3 years agoSnapToRegion: Add dynamic overlay
Consolatis [Tue, 13 Sep 2022 06:15:33 +0000 (08:15 +0200)]
SnapToRegion: Add dynamic overlay

Either uses a half transparent single rect if running
hardware accelerated or uses a solid struct multirect
outline if not.

3 years agoSnapToRegion: Evacuate tiled views from destroying outputs
Consolatis [Thu, 7 Jul 2022 17:05:54 +0000 (19:05 +0200)]
SnapToRegion: Evacuate tiled views from destroying outputs

3 years agoSnapToRegion: Snap when ending a move while pressing a modifier
Consolatis [Wed, 6 Jul 2022 15:05:34 +0000 (17:05 +0200)]
SnapToRegion: Snap when ending a move while pressing a modifier

3 years agoSnapToRegion: Add overlay while moving and pressing a modifier
Consolatis [Wed, 6 Jul 2022 05:19:28 +0000 (07:19 +0200)]
SnapToRegion: Add overlay while moving and pressing a modifier

3 years agoSnapToRegion: Add regions_from_cursor()
Consolatis [Wed, 6 Jul 2022 15:26:22 +0000 (17:26 +0200)]
SnapToRegion: Add regions_from_cursor()

3 years agoSnapToRegion: Add SnapToRegion action
Consolatis [Wed, 6 Jul 2022 06:06:48 +0000 (08:06 +0200)]
SnapToRegion: Add SnapToRegion action

3 years agoSnapToRegion: Add view_snap_to_region()
Consolatis [Wed, 6 Jul 2022 15:04:21 +0000 (17:04 +0200)]
SnapToRegion: Add view_snap_to_region()

3 years agoSnapToRegion: Wire up output and handle usable_area changes
Consolatis [Wed, 6 Jul 2022 14:57:25 +0000 (16:57 +0200)]
SnapToRegion: Wire up output and handle usable_area changes

3 years agoSnapToRegion: Add config parser
Consolatis [Wed, 6 Jul 2022 15:21:02 +0000 (17:21 +0200)]
SnapToRegion: Add config parser

3 years agoSnapToRegion: Add implementation
Consolatis [Wed, 6 Jul 2022 15:37:22 +0000 (17:37 +0200)]
SnapToRegion: Add implementation

3 years agoxwayland: Add xwayland.h and move more things to xwayland.c
John Lindgren [Sat, 7 Jan 2023 22:50:33 +0000 (17:50 -0500)]
xwayland: Add xwayland.h and move more things to xwayland.c

- Move xwayland-specific struct definitions to new xwayland.h header
- Move xwayland_move_sub_views_to_front() from desktop.c to xwayland.c
- Split out xwayland_server_init/finish() from server_init/finish()
- Rename new_xwayland_surface -> xwayland_new_surface and
  xwayland_surface_new() -> handle_new_surface() for consistency
- Add "mapped" argument to xwayland_unmanaged_create() so that we can
  make unmanaged_handle_map() private to xwayland-unmanaged.c

3 years agodocs/rc.xml: Overwrite the default W-Return keybind
Consolatis [Fri, 6 Jan 2023 15:54:11 +0000 (16:54 +0100)]
docs/rc.xml: Overwrite the default W-Return keybind

.. instead of adding a new one.
Also change from sakura to foot and add comments.

3 years agosrc/action.c: Improve debugging by adding action argument to debug log
Consolatis [Fri, 6 Jan 2023 17:44:13 +0000 (18:44 +0100)]
src/action.c: Improve debugging by adding action argument to debug log

3 years agooutput: Use better arg naming for output_update_all_usable_areas()
Consolatis [Fri, 6 Jan 2023 18:54:51 +0000 (19:54 +0100)]
output: Use better arg naming for output_update_all_usable_areas()

This restores the original approach of naming the argument `layout_changed`
which fits much better than `enforce_view_arrange`. Especially when extending
the function to also handle region updates once merged.

3 years agoinclude/labwc.h: Provide MIN/MAX macros
Consolatis [Fri, 6 Jan 2023 14:06:57 +0000 (15:06 +0100)]
include/labwc.h: Provide MIN/MAX macros

3 years agoinclude/ssd.h: prefix defines with SSD_
Consolatis [Fri, 6 Jan 2023 14:56:44 +0000 (15:56 +0100)]
include/ssd.h: prefix defines with SSD_

3 years agosrc/view.c: move xwayland specific function to xwayland.c
Consolatis [Wed, 4 Jan 2023 03:18:00 +0000 (04:18 +0100)]
src/view.c: move xwayland specific function to xwayland.c

Also remove the `<xcb/xcb_icccm.h>` include as its already included
by `"labwc.h"` -> `<wlr/xwayland.h>` -> `<wlr/xwayland/xwayland.h>`.

3 years agooutput: Add output_update_usable_area/all_usable_areas()
John Lindgren [Wed, 16 Nov 2022 17:43:59 +0000 (12:43 -0500)]
output: Add output_update_usable_area/all_usable_areas()

Move the desktop_arrange_all_views() call outside layers_arrange() into
a new function, output_update_usable_area().  The new function currently
does exactly what layers_arrange() used to, but will be expanded in a
later commit.

Add output_update_all_usable_areas(), which is the same as calling
output_update_usable_area() for each output, but only calls
desktop_arrange_all_views() once.

Rebased and slightly modified by @Consolatis

3 years agotheme: support theme setting override
Johan Malm [Mon, 5 Dec 2022 21:46:16 +0000 (21:46 +0000)]
theme: support theme setting override

...by reading <config-dir>/themerc-override where <config-dir> is normally
$HOME/.config/labwc can be other locations as described in labwc-config(5)
and can also be specified by the command line option -C.

The reason for supporting theme override is to give users more fine-
grained control of settings without making local copies and modifying
themes.

3 years agosrc/output.c: Release layer tree when releasing output
yuanye [Tue, 15 Nov 2022 01:38:15 +0000 (09:38 +0800)]
src/output.c: Release layer tree when releasing output

Split off from PR #622 and slightly modified by @Consolatis

3 years agosrc/view.c: ensure natural geometry is restored even with no outputs available
Consolatis [Fri, 30 Dec 2022 18:41:34 +0000 (19:41 +0100)]
src/view.c: ensure natural geometry is restored even with no outputs available

Reported-by: @Flrian
3 years agosrc/layers.c: destroy layer surface on output loss
Consolatis [Fri, 30 Dec 2022 00:14:27 +0000 (01:14 +0100)]
src/layers.c: destroy layer surface on output loss

3 years agosrc/layers.c: ensure layers_arrange() is only called with an output set
Consolatis [Fri, 30 Dec 2022 00:37:32 +0000 (01:37 +0100)]
src/layers.c: ensure layers_arrange() is only called with an output set

3 years agosrc/layers.c: remove new_popup handler on node destruction
Consolatis [Fri, 30 Dec 2022 00:14:46 +0000 (01:14 +0100)]
src/layers.c: remove new_popup handler on node destruction

3 years agosrc/layers.c: prevent crash with no outputs available
Consolatis [Mon, 26 Dec 2022 22:11:01 +0000 (23:11 +0100)]
src/layers.c: prevent crash with no outputs available

3 years agosrc/view.c: prevent fullscreen with no outputs available
Consolatis [Mon, 26 Dec 2022 22:10:11 +0000 (23:10 +0100)]
src/view.c: prevent fullscreen with no outputs available

3 years agosrc/output.c: prevent crash with no outputs available
Consolatis [Mon, 26 Dec 2022 22:09:33 +0000 (23:09 +0100)]
src/output.c: prevent crash with no outputs available

3 years agosrc/debug.c: reset last_view
Consolatis [Mon, 2 Jan 2023 21:40:17 +0000 (22:40 +0100)]
src/debug.c: reset last_view

Before this patch following would cause a use-after-free:
- calling the Debug action when there was at least one view around
- closing that view
- calling the Debug action again

Also add a label for the layer popup tree.

3 years agopo/tr.po: update Turkish translation
01micko [Mon, 2 Jan 2023 21:08:48 +0000 (07:08 +1000)]
po/tr.po: update Turkish translation
thanks to @ersen0

3 years agopo/sv.po: update Swedish translation
Johan Malm [Mon, 2 Jan 2023 18:48:32 +0000 (18:48 +0000)]
po/sv.po: update Swedish translation

3 years agopo/es.po,it.po: update Spanish and Italian translations
01micko [Mon, 2 Jan 2023 03:02:56 +0000 (13:02 +1000)]
po/es.po,it.po: update Spanish and Italian translations

3 years agopo/de.po: update German translation
01micko [Mon, 2 Jan 2023 02:34:54 +0000 (12:34 +1000)]
po/de.po: update German translation
thanks to @Consolatis

3 years agonls: updates for new strings in menus
01micko [Mon, 2 Jan 2023 02:20:36 +0000 (12:20 +1000)]
nls: updates for new strings in menus
- also fixes updating tr.po file
- more descriptive instructions in CONTRIBUTING.md
- fix comments in po/pot files when using meson gettext tools

3 years agoserver: Filter out wp_drm_lease_device from Xwayland
Joshua Ashton [Thu, 29 Dec 2022 01:54:02 +0000 (01:54 +0000)]
server: Filter out wp_drm_lease_device from Xwayland

For now, until we resolve the true cause here either on the Xwayland
side or our side.

I intend to look into it soon.

Fixes: #553
3 years agobuild: Add drm-lease-v1 protocol to server_protocols
Joshua Ashton [Thu, 29 Dec 2022 01:52:10 +0000 (01:52 +0000)]
build: Add drm-lease-v1 protocol to server_protocols

3 years agosrc/view.c: move up view_apply_natural_geometry()
Consolatis [Mon, 2 Jan 2023 15:25:34 +0000 (16:25 +0100)]
src/view.c: move up view_apply_natural_geometry()

So its visible by all the other view_apply_xxx_geometry() functions.

3 years agodocs/themerc: add menu.width.{min,max} + menu.items.padding.{x,y}
Johan Malm [Thu, 8 Dec 2022 20:38:31 +0000 (20:38 +0000)]
docs/themerc: add menu.width.{min,max} + menu.items.padding.{x,y}

...to reflect additions introduced by f0666ba and d00327b

Move menu.overlap.* to the menu section for a more logical grouping

3 years agomenu: minor refactoring to increase readability
Johan Malm [Thu, 8 Dec 2022 20:41:38 +0000 (20:41 +0000)]
menu: minor refactoring to increase readability

3 years agosrc/view.c: reorder includes
Consolatis [Sun, 1 Jan 2023 18:35:07 +0000 (19:35 +0100)]
src/view.c: reorder includes

3 years agosrc/view.c: rename unmaximized_geometry to natural_geometry
Consolatis [Sun, 1 Jan 2023 02:57:19 +0000 (03:57 +0100)]
src/view.c: rename unmaximized_geometry to natural_geometry

3 years agosrc/view.c: use view_set_untiled() helper
Consolatis [Sat, 31 Dec 2022 20:46:05 +0000 (21:46 +0100)]
src/view.c: use view_set_untiled() helper

3 years agosrc/view.c: factor out special case natural geometry checks
Consolatis [Sat, 31 Dec 2022 21:23:00 +0000 (22:23 +0100)]
src/view.c: factor out special case natural geometry checks

3 years agosrc/view.c: factor out the various view_apply_ variants
Consolatis [Sat, 31 Dec 2022 21:01:51 +0000 (22:01 +0100)]
src/view.c: factor out the various view_apply_ variants

3 years agosrc/layers.c: minor simplification
Consolatis [Sun, 1 Jan 2023 17:26:25 +0000 (18:26 +0100)]
src/layers.c: minor simplification

3 years agosrc/view.c: on un-fullscreen restore SSD before applying previous geometry
Consolatis [Sat, 31 Dec 2022 20:20:50 +0000 (21:20 +0100)]
src/view.c: on un-fullscreen restore SSD before applying previous geometry

Before this patch following would cause the SSD to be rendered offscreen:
- snap a window to left or right edge
- toggle fullscreen to fullscreen
- toggle fullscreen to un-fullscreen

To fix that restore the SSD before calculating the new geometry.

3 years agosrc/view.c: Allow snapping to the same edge
Consolatis [Thu, 22 Dec 2022 02:22:34 +0000 (03:22 +0100)]
src/view.c: Allow snapping to the same edge

Reported-by: @Flrian via IRC
Debugged-by: @Flrian
Tested-by: @Flrian
3 years agossd: scale down button icons if necessary
Consolatis [Fri, 23 Dec 2022 21:59:27 +0000 (22:59 +0100)]
ssd: scale down button icons if necessary

This allows using large XBM button icons (larger than
the button width / height) for high and mixed DPI usecases.

Instead of scaling up the low pixel icons when moving a window to a
high DPI output we scale the icons down when moving to a non-scaled
output. The user is still responsible to create / use larger XBM
icons for their theme.

Partly fixes #609

3 years agodesktop.c: handle layer-subsurfaces in get_cursor_context()
Johan Malm [Thu, 29 Dec 2022 20:16:32 +0000 (20:16 +0000)]
desktop.c: handle layer-subsurfaces in get_cursor_context()

...to allow these surfaces to receive pointer button events

Test by running `gtk-layer-demo --keyboard exclusive`, then open the
'set margin' dialog and try setting the margin with the pointer.

3 years agolayer: s/struct wlr_box/output->usable_area/
Johan Malm [Thu, 29 Dec 2022 20:09:01 +0000 (20:09 +0000)]
layer: s/struct wlr_box/output->usable_area/

...because Linux kernel style prefers `sizeof(*foo)` over
`sizeof(struct foo)`.

3 years agolayer: rename signal-handler functions to handle_*
Johan Malm [Wed, 28 Dec 2022 18:22:27 +0000 (18:22 +0000)]
layer: rename signal-handler functions to handle_*

...rather than *_notify to comply with naming convention agreed on in
CONTRIBUTING.md

3 years agolayer: get `struct output` from wlr_output user-data
Johan Malm [Wed, 28 Dec 2022 17:40:34 +0000 (17:40 +0000)]
layer: get `struct output` from wlr_output user-data

...rather than output_from_wlr_output()

3 years agolayer: s/layers_above_shell/layers_above_views/
Johan Malm [Wed, 28 Dec 2022 17:16:17 +0000 (17:16 +0000)]
layer: s/layers_above_shell/layers_above_views/

3 years agolayer: remove wl_list layers[] from `struct output`
Johan Malm [Wed, 28 Dec 2022 17:01:22 +0000 (17:01 +0000)]
layer: remove wl_list layers[] from `struct output`

...and just use `struct wlr_scene_tree *layer_tree[]`

3 years agoinclude/layers.h: remove redundant `struct wlr_box geo`
Johan Malm [Wed, 28 Dec 2022 15:13:26 +0000 (15:13 +0000)]
include/layers.h: remove redundant `struct wlr_box geo`

3 years agolayer: use scene-graph API more fully
Johan Malm [Thu, 22 Dec 2022 21:58:55 +0000 (21:58 +0000)]
layer: use scene-graph API more fully

...and thus simplify the usage of wlr_scene_node_at(). Specifically:

- desktop.c: in get_cursor_context() use node-description for
  layer-surfaces and layer-popups. This lays the foundations for a
  pointer-enter-event being sent when a new layer-surfaces appears under
  the pointer (even if the pointer doesn not move).

- layers.c:

  * Iterate over `struct wlr_scene_tree *layer_tree[]` rather than
    `struct wl_list layers[]` when arranging layers to avoid surfaces
    being out of sync with nodes

  * Set signal handlers after scene node creation to avoid configure
    race conditions

  * Handle scene-node destroy event rather than event of
    `struct wlr_layer_surface_v1`

  * Arrange layers on map and unmap

  * Handle client request for layer-change

Fixes issue #667

3 years agosrc/workspaces.c: prevent re-focus for always-on-top views
Consolatis [Thu, 29 Dec 2022 03:50:21 +0000 (04:50 +0100)]
src/workspaces.c: prevent re-focus for always-on-top views

Before this patch a focused always-on-top view lost its keyboard
focus when switching workspaces. Now the view keeps its focus.

3 years agosrc/workspaces.c: use cached server pointer
Consolatis [Thu, 29 Dec 2022 03:49:13 +0000 (04:49 +0100)]
src/workspaces.c: use cached server pointer

3 years agodocs: update theme documentation
Flrian [Fri, 23 Dec 2022 17:20:49 +0000 (18:20 +0100)]
docs: update theme documentation

.. to reflect that its now possible to change the color of the menu button

3 years agosrc/theme.c: add menu to individual buttons
Flrian [Fri, 23 Dec 2022 17:18:05 +0000 (18:18 +0100)]
src/theme.c: add menu to individual buttons

3 years agorcxml: Make sure a default libinput category always exists
John Lindgren [Thu, 22 Dec 2022 21:44:08 +0000 (16:44 -0500)]
rcxml: Make sure a default libinput category always exists

Previously, if rc.xml defined only non-default libinput categories,
no default category was created. This meant that configure_libinput()
might totally skip configuring some devices even with default
settings, like tap-to-click.

Fix this by making sure that a default category is always created.

3 years agodocs: Fix small typo in labwc-config(5) manpage
John Lindgren [Thu, 22 Dec 2022 21:17:16 +0000 (16:17 -0500)]
docs: Fix small typo in labwc-config(5) manpage

3 years agoseat.c: minor refactoring of seat_reconfigure()
Johan Malm [Wed, 21 Dec 2022 18:19:07 +0000 (18:19 +0000)]
seat.c: minor refactoring of seat_reconfigure()

3 years agoExclude checkpatch.pl from language stats
Flrian [Tue, 20 Dec 2022 20:56:42 +0000 (21:56 +0100)]
Exclude checkpatch.pl from language stats

3 years agosubprojects/wlroots.git: use 0.16 branch
Johan Malm [Tue, 20 Dec 2022 20:20:52 +0000 (20:20 +0000)]
subprojects/wlroots.git: use 0.16 branch

There should be no API changes on this branch.

3 years agodon't set view->w and view->h when mapping xdg views
bi4k8 [Sat, 17 Dec 2022 20:47:46 +0000 (20:47 +0000)]
don't set view->w and view->h when mapping xdg views

these should only be set on commit. doing so before then confuses
code that expects these fields to be in sync with the scene tree,
such as `handle_commit`.

these were only being set so that `view_center` could read them to
compute a centered position, so instead we can simply forward the
values directly to `view_compute_centered_position` and `view_move`.

3 years agoview: limit XCB header to Xwayland after 286b2146c348
Jan Beich [Mon, 19 Dec 2022 10:47:06 +0000 (10:47 +0000)]
view: limit XCB header to Xwayland after 286b2146c348

../src/view.c:5:10: fatal error: 'xcb/xcb_icccm.h' file not found
 #include <xcb/xcb_icccm.h>
          ^~~~~~~~~~~~~~~~~

3 years agoREADME.md: fix header numbering
Flrian [Thu, 15 Dec 2022 11:43:22 +0000 (12:43 +0100)]
README.md: fix header numbering

3 years agoosd: bookend with calls to cursor_update_focus
bi4k8 [Mon, 12 Dec 2022 00:56:55 +0000 (00:56 +0000)]
osd: bookend with calls to cursor_update_focus

this updates the cursor if it is within the OSD area when OSD appears
or disappears

3 years agoosd: factor drawing out of osd_update
bi4k8 [Mon, 12 Dec 2022 00:50:57 +0000 (00:50 +0000)]
osd: factor drawing out of osd_update

3 years agodocs/menu.xml: Add comment about hiding of workspaces menu
Consolatis [Wed, 7 Dec 2022 14:12:53 +0000 (15:12 +0100)]
docs/menu.xml: Add comment about hiding of workspaces menu

3 years agodocs/rc.xml.all: Add <default /> description for mousebinds
Consolatis [Wed, 7 Dec 2022 13:59:04 +0000 (14:59 +0100)]
docs/rc.xml.all: Add <default /> description for mousebinds

3 years agodocs/rc.xml: add default mousebind example
Consolatis [Wed, 7 Dec 2022 09:52:49 +0000 (10:52 +0100)]
docs/rc.xml: add default mousebind example

3 years agodocs: reformat rc.xml.all
Consolatis [Mon, 12 Dec 2022 12:45:06 +0000 (13:45 +0100)]
docs: reformat rc.xml.all

3 years agodocs: reformat default config
Consolatis [Fri, 25 Nov 2022 02:20:49 +0000 (03:20 +0100)]
docs: reformat default config

3 years agosrc/view.c: dont switch output on SnapToEdge if view is maximized
Flrian [Sat, 10 Dec 2022 22:39:38 +0000 (23:39 +0100)]
src/view.c: dont switch output on SnapToEdge if view is maximized

3 years agosrc/action.c: Provide generic parsing of XML action arguments
Consolatis [Sat, 10 Dec 2022 14:28:25 +0000 (15:28 +0100)]
src/action.c: Provide generic parsing of XML action arguments

.. and use it within src/config/rcxml.c and src/menu/menu.c.

This fixes being unable to use the `direction` argument in menu entries.

Reported-by: mahk via IRC
3 years agodocument Kill command
bi4k8 [Thu, 8 Dec 2022 05:07:49 +0000 (05:07 +0000)]
document Kill command

3 years agoimplement Kill action
bi4k8 [Tue, 15 Mar 2022 15:47:46 +0000 (15:47 +0000)]
implement Kill action

this action sends SIGTERM to a client's process

3 years agodon't NULL-check output when it can't be
bi4k8 [Thu, 8 Dec 2022 05:28:16 +0000 (05:28 +0000)]
don't NULL-check output when it can't be

`output` here is the `pos` argument of `wl_list_for_each`, which means
it is always assigned a return value of `wl_container_of`; this in
turn means that it is never NULL.

checking against NULL here just confuses static analysis and readers

3 years agofix cleanup issues in xdg_surface_new
bi4k8 [Thu, 8 Dec 2022 05:27:25 +0000 (05:27 +0000)]
fix cleanup issues in xdg_surface_new

`view->surface` had not been set to a non-`NULL` value here, so it
was not yet appropriate to access its `resource` member. instead,
use the resource from the argument xdg_surface.

furthermore, we need to free the newly-allocated `xdg_toplevel_view`
before error return.

3 years agoREADME.md: update build instructions
Johan Malm [Tue, 6 Dec 2022 21:14:23 +0000 (21:14 +0000)]
README.md: update build instructions

...because running the setup command as `meson [options]` instead of
`meson setup [options]` is ambiguous and deprecated.

3 years agomenu: Dynamically adjust menu width based on widest item
Consolatis [Mon, 5 Dec 2022 13:38:16 +0000 (14:38 +0100)]
menu: Dynamically adjust menu width based on widest item

Adds two new theme vars:
- menu.width.min (menu will never be smaller than this)
- menu.width.max (menu will never be wider than this + padding)

A fixed menu width can be achieved by setting
menu.width.min == menu.width.max.

3 years agomenu: Convert hardcoded item padding to theme vars
Consolatis [Tue, 6 Dec 2022 13:38:56 +0000 (14:38 +0100)]
menu: Convert hardcoded item padding to theme vars

Adds two new theme vars:
- menu.items.padding.x
- menu.items.padding.y

3 years agotheme: Rename separator_width to separator_line_thickness
Consolatis [Tue, 6 Dec 2022 11:01:44 +0000 (12:01 +0100)]
theme: Rename separator_width to separator_line_thickness

3 years agomenu: Add generic menu_init() entry point
Consolatis [Tue, 6 Dec 2022 10:54:55 +0000 (11:54 +0100)]
menu: Add generic menu_init() entry point

3 years agoREADME: restructure and amend project description
Johan Malm [Tue, 29 Nov 2022 19:45:29 +0000 (19:45 +0000)]
README: restructure and amend project description

- Describe why the projects exists and state some core-dev values
- Merge the two scope sections
- Put video links before screenshot

3 years agoCONTRIBUTING.md: describe how to upversion
Johan Malm [Tue, 29 Nov 2022 18:57:05 +0000 (18:57 +0000)]
CONTRIBUTING.md: describe how to upversion

...and also split 'Debugging' into sub-sections

3 years agolabwc-menu(5): document separator
Johan Malm [Tue, 29 Nov 2022 18:19:39 +0000 (18:19 +0000)]
labwc-menu(5): document separator

3 years agoCI: check codestyle only once
Consolatis [Mon, 28 Nov 2022 11:05:43 +0000 (12:05 +0100)]
CI: check codestyle only once

3 years agodocs: add basic README
Consolatis [Mon, 28 Nov 2022 10:46:56 +0000 (11:46 +0100)]
docs: add basic README

3 years agodocs: install example configs
Consolatis [Fri, 25 Nov 2022 02:13:16 +0000 (03:13 +0100)]
docs: install example configs

3 years agossd: Move implementation details from ssd.h to ssd-internal.h
John Lindgren [Sat, 26 Nov 2022 21:53:35 +0000 (16:53 -0500)]
ssd: Move implementation details from ssd.h to ssd-internal.h

- Move private structs and functions to `ssd-internal.h`
- Add `ssd_button_get_type()` and `ssd_button_get_view()`

3 years agossd: Allocate `struct ssd` and `struct ssd_hover_state` separately
John Lindgren [Sat, 26 Nov 2022 21:46:28 +0000 (16:46 -0500)]
ssd: Allocate `struct ssd` and `struct ssd_hover_state` separately

- Store a pointer to the `struct view` in `struct ssd`
- Pass `struct ssd *` instead of `struct view *` to ssd functions
- Add `ssd_get_margin()` convenience function

3 years agoview: Fix SSD margin computation
John Lindgren [Sun, 27 Nov 2022 03:49:10 +0000 (22:49 -0500)]
view: Fix SSD margin computation

If `view->ssd_enabled` is false when calling `ssd_create()` then
`ssd_thickness()` returns zeroes which are stored in `ssd->margins`.

The quick fix is just to ensure we set `view->ssd_enabled` before
calling `ssd_create()`. At some point, it might be nice to refactor
so that `ssd_create()` does not reference `view->ssd_enabled`.

3 years agoFix minor coding style breaches
Johan Malm [Sat, 26 Nov 2022 21:35:51 +0000 (21:35 +0000)]
Fix minor coding style breaches

3 years agoci: run checkpatch.pl on all .c and .h files
Johan Malm [Sat, 26 Nov 2022 21:33:44 +0000 (21:33 +0000)]
ci: run checkpatch.pl on all .c and .h files

3 years agossd: Add debug helpers
John Lindgren [Sat, 26 Nov 2022 21:13:09 +0000 (16:13 -0500)]
ssd: Add debug helpers

3 years agossd: Cosmetic cleanups
John Lindgren [Sat, 26 Nov 2022 21:06:22 +0000 (16:06 -0500)]
ssd: Cosmetic cleanups

- Minimize includes in `ssd.h`
- Avoid repetitive `view->ssd.margin` pattern
- Use `struct ssd *` or `const struct ssd *` rather than `struct view *`
  where convenient

Part of the motivation is to make it easier to separate `struct ssd`
from `struct view` in a future commit.