]> git.mdlowis.com Git - proto/labwc.git/log
proto/labwc.git
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.

3 years agoview: Hide decorations for fullscreen views
John Lindgren [Sat, 26 Nov 2022 07:25:02 +0000 (02:25 -0500)]
view: Hide decorations for fullscreen views

Otherwise the decorations are visible on adjacent outputs.

3 years agossd: Add missing state updates
John Lindgren [Sat, 26 Nov 2022 07:23:15 +0000 (02:23 -0500)]
ssd: Add missing state updates

- Update `ssd.state` in `ssd_create()` to avoid doing unnecessary work in
  the next call to `ssd_update_geometry()`
- Reset `ssd.margin` in `ssd_destroy()` to avoid accidentally using stale
  values

3 years agossd: Eliminate unnecessary temporary variables
John Lindgren [Sat, 26 Nov 2022 07:22:03 +0000 (02:22 -0500)]
ssd: Eliminate unnecessary temporary variables

3 years agossd: Simplify ssd_create()
John Lindgren [Sat, 26 Nov 2022 07:17:04 +0000 (02:17 -0500)]
ssd: Simplify ssd_create()

- Add `active` argument for consistency with `ssd_set_active()`
- `assert()` that `ssd_create()` is not called twice without an
  `ssd_destroy()` in between

3 years agoview: Add view_reload_ssd()
John Lindgren [Sat, 26 Nov 2022 07:13:42 +0000 (02:13 -0500)]
view: Add view_reload_ssd()

Gather related logic from `reload_config_and_theme()` in `server.c` and
`ssd_reload()` in `ssd.c` into a new function, `view_reload_ssd()`.

Also drop the `view->mapped` check since we want to update any view that
has SSD nodes created, mapped or not.

3 years agoview: Enable/disable decorations explicitly
John Lindgren [Sat, 26 Nov 2022 07:00:38 +0000 (02:00 -0500)]
view: Enable/disable decorations explicitly

`view_set_decorations()` now calls `ssd_create()` and `ssd_destroy()`
explicitly to enable/disable decorations. As a result, the implicit
enable/disable logic in `ssd_update_geometry()` is no longer needed.

3 years agoaction: Inline private/action.h into action.c
John Lindgren [Tue, 22 Nov 2022 16:59:54 +0000 (11:59 -0500)]
action: Inline private/action.h into action.c

There is no need for a header since the types defined in it are
used only in action.c.

3 years agoview: Move xdg_surface + xwayland_surface to derived structs
John Lindgren [Fri, 25 Nov 2022 18:41:12 +0000 (13:41 -0500)]
view: Move xdg_surface + xwayland_surface to derived structs

Add xdg_surface_from_view() + xwayland_surface_from_view() accessors
that assert() the view is of the expected type before returning.

Fix a real bug in xdg.c parent_of() that dereferenced
`view->xdg_surface->toplevel` without first checking `view->type`.

The goal of the new accessors is to catch similar bugs in future.

3 years agoview: create derived structs
Johan Malm [Tue, 22 Nov 2022 20:13:06 +0000 (20:13 +0000)]
view: create derived structs

...for XDG toplevels and XWayland views to only include applicable
wl_listeners for each type of view.

3 years agoview/ssd: Move ssd->enabled to view->ssd_enabled
John Lindgren [Mon, 21 Nov 2022 20:38:20 +0000 (15:38 -0500)]
view/ssd: Move ssd->enabled to view->ssd_enabled

3 years agoview/ssd: Move view->margin to view->ssd.margin
John Lindgren [Mon, 21 Nov 2022 20:13:43 +0000 (15:13 -0500)]
view/ssd: Move view->margin to view->ssd.margin

3 years agoview: Add view_set_untiled()
John Lindgren [Mon, 21 Nov 2022 18:17:14 +0000 (13:17 -0500)]
view: Add view_set_untiled()

3 years agoview: Rename/move workspaces_send_to() to view_move_to_workspace()
John Lindgren [Mon, 21 Nov 2022 18:03:49 +0000 (13:03 -0500)]
view: Rename/move workspaces_send_to() to view_move_to_workspace()

This function semantically belongs in view.c since it
modifies `struct view`.

Also a minor formatting fix in view_toggle_always_on_top().

3 years agoaction/view: Ensure view arguments are never NULL
John Lindgren [Tue, 22 Nov 2022 07:09:42 +0000 (02:09 -0500)]
action/view: Ensure view arguments are never NULL

3 years agossd: Inactive window button icons now follow theme color
Scarcely There [Mon, 21 Nov 2022 05:38:17 +0000 (23:38 -0600)]
ssd: Inactive window button icons now follow theme color

I was making a theme and discovered only the active window button icon
color was taking effect. The pixmaps were being created in both the
active and inactive cases, but inactive pixmaps were never added to
the SSD scene graph.

3 years agoinclude: Break out view.h from labwc.h
John Lindgren [Mon, 21 Nov 2022 15:10:39 +0000 (10:10 -0500)]
include: Break out view.h from labwc.h

IMHO it encourages better design (by making dependencies more obvious)
to have source file/header file pairs like view.c/view.h, rather than a
monolithic header like labwc.h with everything in it.

I don't think we need to break up all of labwc.h at once, but maybe we
can start pulling it apart bit by bit as it's convenient.

Also:

- Move "struct border" to ssd.h so that view.h can use it without pulling
  in all of labwc.h.
- Add a missing required #include within scaled_font_buffer.h (forward
  declaration of "struct font" is not enough).

3 years agointeractive: Refactor natural_geometry/tiled state handling
John Lindgren [Sat, 19 Nov 2022 17:58:52 +0000 (12:58 -0500)]
interactive: Refactor natural_geometry/tiled state handling

Currently, snapping to a screen edge and then snapping to maximize
results in both the natural_geometry and tiled state of the view
getting messed up. After unmaximize, the view ends up in a weird
state (tiled location but natural/untiled size).

There are also a couple of sketchy things going on in the code:

- interactive_begin() pokes its own values into view->natural_geometry
  to force view_maximize() to set a particular geometry.

- interactive_end() "fixes" view->natural_geometry after calling
  view_maximize() to save the original geometry from the start of the
  interactive move/resize.

To fix all this:

- Adjust/expand the API of view.c so that the interactive.c can
  avoid this "back door" of overwriting view->natural_geometry
  directly.

- Save the natural geometry and the tiled state of the view in
  interactive_begin() when starting to move the view.  When done,
  interactive_end() will update the tiled state if appropriate but
  *not* overwrite the natural geometry.

3 years agoview: Reuse view_set_decorations() in view_toggle_decorations()
John Lindgren [Wed, 16 Nov 2022 21:42:37 +0000 (16:42 -0500)]
view: Reuse view_set_decorations() in view_toggle_decorations()

This simply deduplicates some near-identical code.

3 years agoview: Fix positioning of initially-maximized XWayland views
John Lindgren [Wed, 16 Nov 2022 21:46:52 +0000 (16:46 -0500)]
view: Fix positioning of initially-maximized XWayland views

map() in xwayland.c called ssd_create() but did not call
view_apply_maximized_geometry() afterward, resulting in the
decorations being displayed off-screen.

Rather than calling view_apply_maximized_geometry() in more places,
let's reuse the existing call in view_set_decorations(), and extend
ssd_update_geometry() to call ssd_create() when needed.

3 years agonls: add turkish translation
Oğuz Ersen [Sun, 20 Nov 2022 14:11:18 +0000 (17:11 +0300)]
nls: add turkish translation

3 years agoMerge pull request #618 from jlindgren90/xwayland-surface
Johan Malm [Sun, 20 Nov 2022 16:50:28 +0000 (16:50 +0000)]
Merge pull request #618 from jlindgren90/xwayland-surface

xwayland: Better document/assert view/surface association

3 years agoUpdate labwc-config.5.scd
Arnaud Vallette d'Osia [Sat, 19 Nov 2022 09:16:03 +0000 (10:16 +0100)]
Update labwc-config.5.scd

Supported mouse actions correction.

3 years agosrc/config/rcxml.c: Check for modifiers when merging mousebinds
Consolatis [Fri, 18 Nov 2022 11:17:29 +0000 (12:17 +0100)]
src/config/rcxml.c: Check for modifiers when merging mousebinds

Previously mosuebinds for the same context using the same button
but different modifiers would be merged, e.g. only the last one
would survive the merge. This commit adds the missing check for
keyboard modifiers.

Fixes #630

Reported-by: @lidgnulinux
3 years agobuild: drop pixman dependency after 532656ad5b47
Jan Beich [Fri, 18 Nov 2022 08:18:25 +0000 (08:18 +0000)]
build: drop pixman dependency after 532656ad5b47

3 years agobuild: bump version to 0.6.0
Johan Malm [Thu, 17 Nov 2022 21:01:06 +0000 (21:01 +0000)]
build: bump version to 0.6.0

3 years agoNEWS.md: update notes on 0.6.0
Johan Malm [Thu, 17 Nov 2022 20:51:38 +0000 (20:51 +0000)]
NEWS.md: update notes on 0.6.0

3 years agoci: add hwdata
Johan Malm [Thu, 17 Nov 2022 21:26:18 +0000 (21:26 +0000)]
ci: add hwdata

3 years agowlroots.wrap: use 0.16.0
Johan Malm [Tue, 15 Nov 2022 22:41:53 +0000 (22:41 +0000)]
wlroots.wrap: use 0.16.0

3 years agoRefuse to start when SUID is detected
Johan Malm [Fri, 14 Oct 2022 22:27:42 +0000 (23:27 +0100)]
Refuse to start when SUID is detected

This ensures that those surprised by the deprecation of SUID operation
receive an error rather than accidentally having run as root.

swaywm/sway@e572805

3 years agoupdate repeat rate of all keyboard input devices, not keyboard group's keyboard
bi4k8 [Wed, 9 Nov 2022 20:31:45 +0000 (20:31 +0000)]
update repeat rate of all keyboard input devices, not keyboard group's keyboard

without this patch, reconfiguring keyboard repeat rate/delay at runtime does not work

3 years agocursor: combine two variables relating to frame-context
Johan Malm [Mon, 7 Nov 2022 20:26:37 +0000 (20:26 +0000)]
cursor: combine two variables relating to frame-context

Mouse bindings, unlike key bindings, are made within contexts which
represent what was clicked/dragged.  The context 'Frame' refers to the
entire window frame including both the window decorations (if any) and the
client window itself. It is typically used for alti + left/right click to
move/resize the window.

'Frame' is a special case in that when a button is bound in this
context, the action will not be forwarded to the client, which is what
we describe with the 'consumed_by_frame_context' variable.

3 years agooutput: test adaptive sync
Johan Malm [Sat, 12 Nov 2022 15:51:46 +0000 (15:51 +0000)]
output: test adaptive sync

Required by https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3637
See also swaywm/sway@07bfeb2

Fixes #516

3 years agoSupport smooth scroll and horizontal scroll
bi4k8 [Wed, 9 Nov 2022 05:18:14 +0000 (05:18 +0000)]
Support smooth scroll and horizontal scroll

note that this changes Scroll mousebinds from taking a "button"
attribute to taking a "direction" attribute

3 years agocursor: Make update_pressed_surface() no-op except during grabs
John Lindgren [Tue, 15 Nov 2022 19:20:05 +0000 (14:20 -0500)]
cursor: Make update_pressed_surface() no-op except during grabs

This matches Weston behavior more closely and fixes Firefox context
menus.

3 years agoview: survive setting fullscreen with no outputs
Johan Malm [Sat, 12 Nov 2022 16:13:20 +0000 (16:13 +0000)]
view: survive setting fullscreen with no outputs

Fixes #608

3 years agosrc/config/rcxml.c: distinguish no and unknown font places
bi4k8 [Wed, 9 Nov 2022 22:41:31 +0000 (22:41 +0000)]
src/config/rcxml.c: distinguish no and unknown font places

Currently, the `rc.xml` parser applies font settings in a `<font>` tag with an
unknown value for its `place` attribute to all fonts. This means that whatever
the final unknown-`place` `<font>` tag is in a user's `rc.xml` applies to all
text drawn by labwc.

Instead, only treat `<font>` tags with an empty or missing `place` attribute as
applying globally, and warn when encountering unknown `place` attribute values
(which will help us find font places to support).

3 years agokeyboard: use 1000/rate msecs for keybind repeat event source delay
bi4k8 [Wed, 9 Nov 2022 20:29:48 +0000 (20:29 +0000)]
keyboard: use 1000/rate msecs for keybind repeat event source delay

3 years agoxwayland: Better document/assert view/surface association
John Lindgren [Fri, 11 Nov 2022 20:54:26 +0000 (15:54 -0500)]
xwayland: Better document/assert view/surface association

Each XWayland view is paired with a particular wlr_xwayland_surface and
its lifetime is tied to that surface.  This condition in handle_map():

    if (xsurface != view->xwayland_surface)

could never be true since the view is only registered to receive the
"map" signal from view->xwayland_surface, and no other.  So the code
updating view->xwayland_surface in handle_map() was dead.

So let's clean things up a little:

- Remove the dead code
- Add some comments, and slightly rearrange code to match
- Add/update assert()s in signal handlers for consistency
- Pass xsurface as <data> when calling handle_unmap() and
  handle_destroy() explicitly, to be consistent

3 years agofix typo
bi4k8 [Wed, 9 Nov 2022 20:27:47 +0000 (20:27 +0000)]
fix typo

3 years agosrc/cursor.c: Use 'handled' for state of consumed cursor actions
Arnaud Vallette d'Osia [Sat, 5 Nov 2022 18:54:00 +0000 (19:54 +0100)]
src/cursor.c: Use 'handled' for state of consumed cursor actions

3 years agoScroll-Bindings: Add docs
Arnaud Vallette d'Osia [Sun, 6 Nov 2022 20:14:11 +0000 (21:14 +0100)]
Scroll-Bindings: Add docs

3 years agoScroll-Bindings: Add default config
Arnaud Vallette d'Osia [Sun, 6 Nov 2022 20:13:57 +0000 (21:13 +0100)]
Scroll-Bindings: Add default config

By default we switch workspaces when scrolling
on the desktop to match the Openbox behavior.

3 years agoScroll-Bindings: Add support for mouse wheel bindings
Arnaudv6 [Tue, 25 Oct 2022 19:46:46 +0000 (21:46 +0200)]
Scroll-Bindings: Add support for mouse wheel bindings

3 years agoFix coding style
Johan Malm [Thu, 3 Nov 2022 19:58:21 +0000 (19:58 +0000)]
Fix coding style

3 years agocheckpatch: ignore += UNNECESSARY_ELSE
Johan Malm [Thu, 3 Nov 2022 19:44:28 +0000 (19:44 +0000)]
checkpatch: ignore += UNNECESSARY_ELSE

3 years agocheckpatch: add scripts/check for batch processing
Johan Malm [Fri, 14 Oct 2022 22:16:01 +0000 (23:16 +0100)]
checkpatch: add scripts/check for batch processing

Co-Authored-By: @Consolatis
3 years agocheckpatch: patch to suit labwc coding style
Johan Malm [Tue, 1 Nov 2022 20:48:16 +0000 (20:48 +0000)]
checkpatch: patch to suit labwc coding style

Coding style specific changes include:

- Accept pango, glib and libxml2 CamelCase variables
- Remove "need consistent spacing around '*'" warning
- Do not warn about "structs that should be const"
- Do not warn on braces {} around single statements
- Do not warn about braces {} for single statement blocks
- Do not warn about wanting { on previous line for functions
- Remove check for missing blank line after declaration
- Ignore SPLIT_STRING COMPLEX_MACRO PREFER_KERNEL_TYPES
  LOGICAL_CONTINUATIONS PARENTHESIS_ALIGNMENT OPEN_ENDED_LINE
  MACRO_ARG_REUSE PREFER_FALLTHROUGH ARRAY_SIZE INITIALISED_STATIC

Other changes include:

- Do not complain about missing spelling.txt
- Print filename for each file, but no summary line

3 years agocheckpatch: import checkpatch.pl from Linux kernel
Johan Malm [Tue, 1 Nov 2022 20:45:55 +0000 (20:45 +0000)]
checkpatch: import checkpatch.pl from Linux kernel

https://raw.githubusercontent.com/torvalds/linux/4ce9f970457899defdf68e26e0502c7245002eb3/scripts/checkpatch.pl

3 years agoChase wlroots: output test assert
Consolatis [Thu, 3 Nov 2022 17:54:49 +0000 (18:54 +0100)]
Chase wlroots: output test assert

This fixes an assert on output test when
running with the headless backend.

To update the wlroots subproject use
meson subprojects update wlroots

Chases wlroots 05454618cd2d49fb3a5f0c560b0d2c455cf32467
xwayland: split headers

Fixes #605

3 years agokeyboard: Implement key repeat for keybindings
John Lindgren [Wed, 2 Nov 2022 20:37:24 +0000 (16:37 -0400)]
keyboard: Implement key repeat for keybindings

It seems that every Wayland client is expected to implement its own
key-repeat logic, rather than doing it server-side as in X11.  This
means that labwc also has to implement its own key-repeat logic for
compositor keybindings.

This is a very simplistic timer-based implementation.  It doesn't
attempt to synthesize accurate timestamps, and may lag depending
on system load, but it appears to get the job done.

v2: Use server->wl_event_loop
v3: Comments and formatting

3 years agokey-state: Prevent array overflow
John Lindgren [Wed, 2 Nov 2022 20:26:33 +0000 (16:26 -0400)]
key-state: Prevent array overflow

- Prevent adding the same keycode more than once
- Prevent adding more keycodes than MAX_PRESSED_KEYS

3 years agosrc/menu/menu.c: Add comments
Consolatis [Tue, 1 Nov 2022 16:50:39 +0000 (17:50 +0100)]
src/menu/menu.c: Add comments

3 years agoREADME: add link to pre-0.6.0 video
Johan Malm [Mon, 31 Oct 2022 17:02:57 +0000 (17:02 +0000)]
README: add link to pre-0.6.0 video

3 years agorcxml.c: combine common code in fill_{key,mouse}bind()
Johan Malm [Sun, 30 Oct 2022 14:26:57 +0000 (14:26 +0000)]
rcxml.c: combine common code in fill_{key,mouse}bind()

3 years agorcxml.c: support 'to.action' in mousebind
Johan Malm [Sun, 30 Oct 2022 14:23:10 +0000 (14:23 +0000)]
rcxml.c: support 'to.action' in mousebind

...in support to specifying 'left', 'right' and so on with actions
GoToDesktop and SendToDesktop.

For example:

    <mouse>
      <default/>
      <context name="Desktop">
        <mousebind button="Up" action="Scroll">
          <action name="GoToDesktop" to="left"/>
        </mousebind>
        <mousebind button="Down" action="Scroll">
          <action name="GoToDesktop" to="right"/>
        </mousebind>
      </context>
    </mouse>

3 years agoxwayland: Hide unmanaged nodes on unmap()
John Lindgren [Thu, 27 Oct 2022 17:53:50 +0000 (13:53 -0400)]
xwayland: Hide unmanaged nodes on unmap()

Since xwayland commit 9e4b7948df5a9a67632bb606150ec171b5519672
there is a one-second delay between XWayland surfaces being
unmapped and destroyed.  This revealed that we were not actually
handling the unmap() signal correctly for unmanaged surfaces.

3 years agocursor: Restore drag icon after the move to scene-graph
Consolatis [Sun, 18 Sep 2022 03:40:52 +0000 (05:40 +0200)]
cursor: Restore drag icon after the move to scene-graph

Also move everything DnD related to src/dnd.c

3 years agoAdd --exit and --reconfigure
Johan Malm [Thu, 6 Oct 2022 20:54:49 +0000 (21:54 +0100)]
Add --exit and --reconfigure

3 years agoAdd long command line options
Johan Malm [Thu, 6 Oct 2022 20:54:26 +0000 (21:54 +0100)]
Add long command line options

3 years agoserver: do not set WAYLAND_DISPLAY twice
Johan Malm [Tue, 4 Oct 2022 20:58:58 +0000 (21:58 +0100)]
server: do not set WAYLAND_DISPLAY twice

3 years agolabwc(1): describe SIGTERM and SIGHUP
Johan Malm [Tue, 4 Oct 2022 20:57:38 +0000 (21:57 +0100)]
labwc(1): describe SIGTERM and SIGHUP

3 years agoSet environment variable LABWC_PID
Johan Malm [Tue, 4 Oct 2022 20:48:57 +0000 (21:48 +0100)]
Set environment variable LABWC_PID

...to the pid of the compositor so that SIGHUP and SIGTERM can be sent to
specific instances using `kill -s <signal> <pid>` rather than
`killall -s <signal> labwc`

Issue #573

3 years agobuild: simplify protocol paths
Johan Malm [Fri, 14 Oct 2022 21:44:51 +0000 (22:44 +0100)]
build: simplify protocol paths

No need for arrays here.

swaywm/sway@04f8a65

3 years agocursor: Call wlr_seat_pointer_notify_clear_focus() only if needed
John Lindgren [Tue, 11 Oct 2022 15:46:30 +0000 (11:46 -0400)]
cursor: Call wlr_seat_pointer_notify_clear_focus() only if needed

@Consolatis determined that apparently the extra "clear focus"
event confuses the drag source during drag-and-drop.

Fixes drag-and-drop of files into folders within the same Thunar
window.

3 years agoChase wlroots: unreadable displays
01micko [Fri, 7 Oct 2022 22:58:28 +0000 (08:58 +1000)]
Chase wlroots: unreadable displays

This fixes an issue of unreadable displays in some
multiple output configurations.

To update the wlroots subproject use
meson subprojects update wlroots

Chases wlroots 694e9bbb9d7114f39311d93e885e010606a88dae
backend/drm: allocate connector CRTC on lease creation

Fixes #583

3 years agoCONTRIBUTING.md: describe coding style more accurately
Johan Malm [Fri, 30 Sep 2022 20:28:59 +0000 (21:28 +0100)]
CONTRIBUTING.md: describe coding style more accurately

- Clarify the coding style relative to Linux kernel and Devault rules
- Add g_pattern_match_simple() example
- Add namespace advice and preference
- Elaborate on preferred header documentation style.
- Add table of contents
- Simplify API section and add wl_list_append()

3 years agos/wl_list_insert(list.prev...)/wl_list_append(list...)/
Consolatis [Wed, 5 Oct 2022 06:43:56 +0000 (08:43 +0200)]
s/wl_list_insert(list.prev...)/wl_list_append(list...)/

3 years agocommon: add wl_list_append()
Johan Malm [Tue, 4 Oct 2022 21:04:09 +0000 (22:04 +0100)]
common: add wl_list_append()

3 years agoNEWS.md: update notes on 0.6.0
Johan Malm [Thu, 29 Sep 2022 22:39:27 +0000 (23:39 +0100)]
NEWS.md: update notes on 0.6.0

3 years agoCI: Switch Void mirror to repo-ci.voidlinux.org
Consolatis [Fri, 30 Sep 2022 00:21:59 +0000 (02:21 +0200)]
CI: Switch Void mirror to repo-ci.voidlinux.org

3 years agoChase wlroots: output cursor
Consolatis [Wed, 21 Sep 2022 19:14:57 +0000 (21:14 +0200)]
Chase wlroots: output cursor

To update the wlroots subproject use
meson subprojects update wlroots

Chases wlroots 68c8cef38edafa5e52532e0b43a4888554168361
cursor: Don't warp to (0,0) when last output is disconnected

Fixes #561

3 years agoCI: FreeBSD switch from 'quarterly' to 'latest'
Consolatis [Thu, 29 Sep 2022 06:04:38 +0000 (08:04 +0200)]
CI: FreeBSD switch from 'quarterly' to 'latest'

Latest wlroots requires libdrm-2.4.113 but 'quarterly' only
provides libdrm-2.4.112. Switch to 'latest' to fix this.

3 years agosrc/osd.c: Ensure destroying views are not used as preview anchors
Consolatis [Mon, 26 Sep 2022 08:58:13 +0000 (10:58 +0200)]
src/osd.c: Ensure destroying views are not used as preview anchors

3 years agosrc/osd.c: Prevent showing invalid windows
Consolatis [Mon, 26 Sep 2022 01:48:02 +0000 (03:48 +0200)]
src/osd.c: Prevent showing invalid windows

This might happen when closing the last
application "to tray" like VLC, Discord or Steam.

Reported-by: @Flrian
3 years agokeyboard: put modifier/key listeners in keyboard struct
Johan Malm [Mon, 26 Sep 2022 06:17:19 +0000 (07:17 +0100)]
keyboard: put modifier/key listeners in keyboard struct

...so that it can be determined what wlr_keyboard events come from.

This is required to manage virtual keyboards alongside the keyboard_group
of physical keyboards.

3 years agoseat: implement virtual keyboard protocol
Joshua Ashton [Wed, 17 Aug 2022 18:23:06 +0000 (18:23 +0000)]
seat: implement virtual keyboard protocol

3 years agoseat: implement virtual pointer protocol
Joshua Ashton [Wed, 17 Aug 2022 18:17:21 +0000 (18:17 +0000)]
seat: implement virtual pointer protocol

3 years agoseat: add seat_add_device helper
Joshua Ashton [Wed, 17 Aug 2022 18:16:16 +0000 (18:16 +0000)]
seat: add seat_add_device helper

3 years agoseat: add seat_update_capabilities helper
Joshua Ashton [Wed, 17 Aug 2022 18:12:24 +0000 (18:12 +0000)]
seat: add seat_update_capabilities helper

3 years agoview: no gap for top/left align big window
Johan Malm [Mon, 26 Sep 2022 19:16:43 +0000 (20:16 +0100)]
view: no gap for top/left align big window

On initial positioning of toplevel windows we call view_center().
During the centering process, if it turns out that the view is larger than
the output usable-area then we just top/left align it with no gap.

Relates to the gap aspect of issue #403

Reported-by: @Flrian
3 years agoCI: Add Debian testing
Consolatis [Fri, 23 Sep 2022 19:08:27 +0000 (21:08 +0200)]
CI: Add Debian testing

3 years agoFix minor coding-style violations
Johan Malm [Sat, 17 Sep 2022 11:31:07 +0000 (12:31 +0100)]
Fix minor coding-style violations

...based on https://github.com/johanmalm/checkpatch.pl