]> git.mdlowis.com Git - proto/labwc.git/log
proto/labwc.git
2 years agosrc/workspaces.c: do not render OSD on disabled outputs
Consolatis [Wed, 10 May 2023 16:37:28 +0000 (18:37 +0200)]
src/workspaces.c: do not render OSD on disabled outputs

Fixes #914

2 years agosrc/action.c: validate action type when assigning arguments
Consolatis [Thu, 11 May 2023 21:36:51 +0000 (23:36 +0200)]
src/action.c: validate action type when assigning arguments

Before this patch it was possible to assign an argument with an
existing name to an action that didn't support the given argument.
An example of this is using `direction` for `GoToDesktop`.

This patch now only creates action arguments that are actually
defined for the given action type and logs an error for
unsupported arguments.

The commit also makes sure to always supply the argument name.
This will reduce required checks in other parts of the codebase
in future commits.

Partly fixes: #894

2 years agoincludes: identifier consistency in include guards
Tomi Ollila [Sat, 13 May 2023 13:10:33 +0000 (16:10 +0300)]
includes: identifier consistency in include guards

Made all header files to have LABWC_ prefix in include guard identifers.

Converted from __LABWC_ in 35 include/ files.
Converted from __LAB_ in 5 include/ files.
Added LABWC prefix to 3 include/ files.
Added include guards to 3 include/ files.

The double underscores were removed since according to C standard
those "are always reserved for any use".

2 years agosrc/config/rcxml.c: move region validation into the validate() hook
Consolatis [Fri, 12 May 2023 11:53:50 +0000 (13:53 +0200)]
src/config/rcxml.c: move region validation into the validate() hook

2 years agolabwc-config(5): describe element/attribute-agnostic XML parsing
Johan Malm [Wed, 10 May 2023 20:15:11 +0000 (21:15 +0100)]
labwc-config(5): describe element/attribute-agnostic XML parsing

2 years agowindow-rules: support title criteria
Johan Malm [Tue, 9 May 2023 20:20:05 +0000 (21:20 +0100)]
window-rules: support title criteria

Example config:

    <windowRules>
      <windowRule identifier="foot" title="max">
        <action name="Maximize"/>
      </windowRule>
    </windowRules>

Observe that:

- `foot -T foo` starts maximized
- `xterm -T foo` starts normal

2 years agobuild: bump version to 0.6.3
Johan Malm [Mon, 8 May 2023 06:27:47 +0000 (07:27 +0100)]
build: bump version to 0.6.3

2 years agoNEWS.md: add notes on 0.6.3
Johan Malm [Sat, 6 May 2023 11:26:38 +0000 (12:26 +0100)]
NEWS.md: add notes on 0.6.3

2 years agoxwayland: Add mapped argument to xwayland_view_create()
John Lindgren [Wed, 19 Apr 2023 22:10:07 +0000 (18:10 -0400)]
xwayland: Add mapped argument to xwayland_view_create()

This is a trivial cleanup to make xwayland_view_create() symmetrical with
xwayland_unmanaged_create(), and avoid the need to access view->impl from
xwayland-unmanaged.c.

The return value of xwayland_view_create() is no longer user, so return void.

No functional change.

2 years agofollowMouse: add followMouseRequiresMovement
Consolatis [Sun, 2 Apr 2023 00:18:25 +0000 (02:18 +0200)]
followMouse: add followMouseRequiresMovement

This implements the same config option as `underMouse` in Openbox.

Fixes #862

2 years agomatch.c: fix g_utf8_casefold() memory leak
Johan Malm [Sat, 6 May 2023 10:30:45 +0000 (11:30 +0100)]
match.c: fix g_utf8_casefold() memory leak

Reported-by: @jlindgren90
2 years agoSupport window-rules
Johan Malm [Fri, 28 Apr 2023 20:41:41 +0000 (21:41 +0100)]
Support window-rules

Two types of window rules are supported, actions and properties. They are
defined as shown below.

    <windowRules>

      <!-- Action -->
      <windowRule identifier="some-application">
        <action name="Maximize"/>
      </windowRule>

      <!-- Property -->
      <windowRule identifier="foo*" serverDecoration="yes|no"/>

    </windowRules>

Rules are applied if windows match the criteria defined by the
'identifier' attribute which relates to app_id for native Wayland windows
and WM_CLASS for XWayland clients.

Matching against patterns with '*' (wildcard) and '?' (joker) is
supported.

Add 'serverDecoration' property.

2 years agoaction: add Maximize
Johan Malm [Thu, 4 May 2023 20:29:14 +0000 (21:29 +0100)]
action: add Maximize

2 years agoAdd common/match.c with match_glob() from theme.c
Johan Malm [Fri, 28 Apr 2023 20:21:08 +0000 (21:21 +0100)]
Add common/match.c with match_glob() from theme.c

...and make it fully case-insensitive in preparation for window-rules.

2 years agosrc/output.c: fix adaptive sync
Consolatis [Sun, 30 Apr 2023 12:32:45 +0000 (14:32 +0200)]
src/output.c: fix adaptive sync

Fixes #642

Reported-by: @heroin-moose
Tested-by: @heroin-moose
2 years agoparse-bool.c: add helpers to set bool/int iff valid boolean
Johan Malm [Wed, 26 Apr 2023 19:34:48 +0000 (20:34 +0100)]
parse-bool.c: add helpers to set bool/int iff valid boolean

2 years agoIgnore SIGPIPE
Consolatis [Thu, 27 Apr 2023 08:04:55 +0000 (10:04 +0200)]
Ignore SIGPIPE

Prevent wayland clients that request the X11 clipboard but closing
their read fd prematurely to crash labwc because of the unhandled
SIGPIPE signal. It is caused by wlroots trying to write the X11
clipboard data to the closed fd of the wayland client.

See https://github.com/labwc/labwc/issues/890#issuecomment-1524962995
for a reproducer involving xclip and wl-paste | head -c 1.

Fixes #890
Reported-by: @FuzzyQuills
2 years agooutput: Make the session lock layer the topmost
Consus [Thu, 27 Apr 2023 15:55:57 +0000 (18:55 +0300)]
output: Make the session lock layer the topmost

Make sure that only the session lock layer is visible to a user. Fixes
the issue with mako notifications being rendered above the swaylock
window.

2 years agoaction: gracefully handle argument without key
Johan Malm [Tue, 25 Apr 2023 20:28:47 +0000 (21:28 +0100)]
action: gracefully handle argument without key

Fixes: issue #894
2 years agocommon/parse-bool.c: make parse_bool() generic
Johan Malm [Sun, 26 Mar 2023 21:34:44 +0000 (22:34 +0100)]
common/parse-bool.c: make parse_bool() generic

...to avoid multiple versions of a boolean-parser.

- Optionally take a default value
- Return -1 on error
- Rename get-bool.c to parse-bool.c

2 years agoaction: add get_arg_value_{str,bool} to simplify multi-arg handling
Johan Malm [Sun, 26 Mar 2023 21:19:47 +0000 (22:19 +0100)]
action: add get_arg_value_{str,bool} to simplify multi-arg handling

2 years agoaction: make action_arg_add_bool() static
Johan Malm [Sun, 26 Mar 2023 21:01:17 +0000 (22:01 +0100)]
action: make action_arg_add_bool() static

2 years agoAdd Polish translation
Marcin Puc [Mon, 24 Apr 2023 13:19:06 +0000 (15:19 +0200)]
Add Polish translation

2 years agoosd: set field width to ellipsize
Johan Malm [Fri, 21 Apr 2023 15:26:44 +0000 (16:26 +0100)]
osd: set field width to ellipsize

2 years agoconfig: move cycle_* bools to window_switcher struct
Johan Malm [Thu, 20 Apr 2023 21:31:26 +0000 (22:31 +0100)]
config: move cycle_* bools to window_switcher struct

2 years agoconfig: support window switcher field definitions
Johan Malm [Wed, 19 Apr 2023 13:44:41 +0000 (14:44 +0100)]
config: support window switcher field definitions

<windowSwitcher>
  <fields>
    <field content="type" width="25%" />
    <field content="app_id" width="25%" />
    <field content="title" width="50%" />
  </fields>
</windowSwitcher>

Relates to issues #852 #855 #879

2 years agoconfig: make <windowSwitcher> a toplevel element
Johan Malm [Wed, 19 Apr 2023 13:34:41 +0000 (14:34 +0100)]
config: make <windowSwitcher> a toplevel element

...rather than a child of <core>

2 years agoxwayland: validate PID before activating unmanaged surface
Johan Malm [Wed, 19 Apr 2023 19:40:40 +0000 (20:40 +0100)]
xwayland: validate PID before activating unmanaged surface

Check that an unmanaged surface trying to grab focus is actually a child
of the topmost mapped view.

2 years agoxwayland: handle unmanaged activate requests
Johan Malm [Wed, 19 Apr 2023 09:14:51 +0000 (10:14 +0100)]
xwayland: handle unmanaged activate requests

2 years agoxwayland: handle unmanaged override-redirect requests
Johan Malm [Mon, 17 Apr 2023 16:05:13 +0000 (17:05 +0100)]
xwayland: handle unmanaged override-redirect requests

Fixes: issue #874
2 years agoxwayland: split out xwayland_view constructor
Johan Malm [Mon, 17 Apr 2023 16:02:11 +0000 (17:02 +0100)]
xwayland: split out xwayland_view constructor

...and make it public in preparation for supporting override-redirect
requests from unmanaged xwayland surfaces.

2 years agopo: clean up language files
Flrian [Mon, 17 Apr 2023 14:58:24 +0000 (16:58 +0200)]
po: clean up language files
Changed entries in "Language" field to language code
Added language names to "Language Team"
Removed example email address
Fixed author names in Copyright section

2 years agoUpdate es.po
umksan [Sun, 16 Apr 2023 16:07:18 +0000 (13:07 -0300)]
Update es.po

Small grammatical error

2 years agoAdd Indonesia translation
May Mantari [Fri, 14 Apr 2023 14:01:22 +0000 (21:01 +0700)]
Add Indonesia translation

2 years agoAdd Russian translation
Sunderland93 [Fri, 14 Apr 2023 11:25:40 +0000 (15:25 +0400)]
Add Russian translation

2 years agosrc/cursor.c: handle pointer constraint position hint
Jean-Luc Mackail [Wed, 12 Apr 2023 06:42:32 +0000 (16:42 +1000)]
src/cursor.c: handle pointer constraint position hint

Now cursor hints are respected once cursor movement occurs
after unlocking the pointer.

Fixes Overwatch 2 failing to center the mouse pointer when
opening the communication wheel in-game.

Fixes #872

2 years agoSupport ext-session-lock protocol
Johan Malm [Thu, 30 Mar 2023 21:19:05 +0000 (22:19 +0100)]
Support ext-session-lock protocol

2 years agoREADME.md: simplify configuration section
Johan Malm [Sat, 1 Apr 2023 21:19:58 +0000 (22:19 +0100)]
README.md: simplify configuration section

2 years agoview: Add view_move_to_front/back().
John Lindgren [Sat, 1 Apr 2023 18:06:52 +0000 (14:06 -0400)]
view: Add view_move_to_front/back().

This avoids calling view->impl functions from cursor.c and desktop.c.

v2: Add an explicit recursion guard in cursor_update_focus().

2 years agoserver: add wlr_backend_autocreate() trouble-shooting message
Johan Malm [Sat, 1 Apr 2023 18:46:41 +0000 (19:46 +0100)]
server: add wlr_backend_autocreate() trouble-shooting message

2 years agosrc/cursor.c: make sure the cursor is visible after startup
Consolatis [Tue, 28 Mar 2023 17:23:49 +0000 (19:23 +0200)]
src/cursor.c: make sure the cursor is visible after startup

Before this patch, the cursor was invisible after labwc startup
unless manually moved by the user (or being positioned on top
of some some automatically spawned client surface). This patch
sets the cursor from its uninitialized value (LAB_CURSOR_CLIENT)
to the default cursor.

2 years agosrc/cursor.c: fix invisible cursor on output loss / restore
Consolatis [Mon, 27 Mar 2023 22:58:42 +0000 (00:58 +0200)]
src/cursor.c: fix invisible cursor on output loss / restore

Previously, the cursor image was only updated on output loss when the
cursor was on a labwc owned surface. This patch forces a re-enter of a
client surface in the remaining case of cursor being over a non-labwc
surface which causes the client to re-set its own cursor image.

This fixes a regression caused by 4dc99e2f3856650f3b61778f015a823cfae978d2.
Thanks to @Flrian for finding the root cause of the issue.

Fixes #820

Reported-by: @Flrian
Tested-by: @Flrian
2 years agoconfig: support scroll-factor
Johan Malm [Sat, 25 Mar 2023 15:57:47 +0000 (15:57 +0000)]
config: support scroll-factor

Fixes: issue #846
2 years agoImplement action "Lower"
Juliusz Chroboczek [Mon, 20 Mar 2023 02:31:49 +0000 (03:31 +0100)]
Implement action "Lower"

2 years agodesktop: move scene-tree node in move-to-back
Johan Malm [Sat, 25 Mar 2023 16:38:43 +0000 (16:38 +0000)]
desktop: move scene-tree node in move-to-back

view_minimize() does not need to call desktop_move_to_back() because the
stacking order is not changed and the windowSwitcher uses the scene-tree
nodes anyway.

Note: Movement of xwayland sub-views still relies on keeping server->views
in sync with z-order

2 years agofollowMouse: allow focus switching via A-Tab
Consolatis [Sun, 26 Mar 2023 04:14:48 +0000 (06:14 +0200)]
followMouse: allow focus switching via A-Tab

Fixes a regression caused by the recent enhancement of followMouse behavior.

Fixes: #849
Reported-by: mitigate via IRC
2 years agoaction: support SendToDesktop 'follow' option
Johan Malm [Sun, 26 Mar 2023 09:57:53 +0000 (10:57 +0100)]
action: support SendToDesktop 'follow' option

Make follow 'true' by default as per Openbox 3.6 specification.
Note: this is an interface change.

Fixes: issue #841
2 years agoMove get_bool() to src/common/
Johan Malm [Sun, 26 Mar 2023 09:56:10 +0000 (10:56 +0100)]
Move get_bool() to src/common/

...in preparation for sharing it more widely

2 years agoDecorations: always default to client side decorations
Consolatis [Fri, 24 Mar 2023 19:21:21 +0000 (20:21 +0100)]
Decorations: always default to client side decorations

This is required as both decoration protocol variants, the xdg one
and the deprecated kde one, assume that an application that did not
negotiate any decorations will render client side decorations.

2 years agoDecorations: handle results of kde-server-decoration negotiations
Johan Malm [Wed, 22 Mar 2023 19:56:59 +0000 (19:56 +0000)]
Decorations: handle results of kde-server-decoration negotiations

2 years agoDecorations: minor refactoring, no logical changes intended
Consolatis [Thu, 23 Mar 2023 19:55:14 +0000 (20:55 +0100)]
Decorations: minor refactoring, no logical changes intended

2 years agoDecorations: respect earlier client side decoration negotion result
Consolatis [Wed, 22 Mar 2023 18:53:17 +0000 (19:53 +0100)]
Decorations: respect earlier client side decoration negotion result

Before this patch, it was impossible to differentiate between negotiations
resulting in client side decorations and no negotiations at all.

By adding an enum we are now able to differentiate between the two states.

2 years agoDecorations: prepare for the KDE protocol implementation
Consolatis [Mon, 20 Mar 2023 22:00:36 +0000 (23:00 +0100)]
Decorations: prepare for the KDE protocol implementation

2 years agoDecorations: respect earlier decoration negotiation results
Consolatis [Mon, 20 Mar 2023 21:36:35 +0000 (22:36 +0100)]
Decorations: respect earlier decoration negotiation results

Before this patch, setting `<decoration>` to `client` would cause applications
which prefer server side decorations to not have any decorations at all. This
patch fixes it by respecting the result of earlier negotiations via the
xdg-decoration-unstable-v1 protocol.

Fixes #297
Fixes #831

2 years agocursor: fix focus.followMouse glitches
Johan Malm [Thu, 23 Mar 2023 21:39:49 +0000 (21:39 +0000)]
cursor: fix focus.followMouse glitches

Update focus correctly when using `<focus><followMouse>` and (a) the
focused window is closed; and (b) after switching desktops using action
GoToDesktop. Issue #830

Written-by: @Consolatis
Reported-by: @jech
2 years agobuild: bump version to 0.6.2
Johan Malm [Mon, 20 Mar 2023 20:17:19 +0000 (20:17 +0000)]
build: bump version to 0.6.2

2 years agoNEWS.md: add notes on 0.6.2
Johan Malm [Sat, 11 Mar 2023 19:58:42 +0000 (19:58 +0000)]
NEWS.md: add notes on 0.6.2

2 years agoREADME.md: update gaming section on cursor confinement
Johan Malm [Mon, 20 Mar 2023 19:47:48 +0000 (19:47 +0000)]
README.md: update gaming section on cursor confinement

2 years agoconfig: enable windowSwitcher preview by default
Johan Malm [Sat, 11 Mar 2023 21:29:17 +0000 (21:29 +0000)]
config: enable windowSwitcher preview by default

2 years agoconfig: change <cycleView*> to <windowSwitcher*>
Johan Malm [Sat, 11 Mar 2023 22:15:32 +0000 (22:15 +0000)]
config: change <cycleView*> to <windowSwitcher*>

Use `<windowSwitcher show="yes" preview="no" outlines="yes" />`
instead of

- `<cycleViewOSD>yes</cycleViewOSD>`
- `<cycleViewOutlines>yes</cycleViewOutlines>`
- `<cycleViewPreview>no</cycleViewPreview>`

2 years agoMerge pull request #800 from Consolatis/ci/web_deploy
Johan Malm [Sat, 18 Mar 2023 21:20:50 +0000 (21:20 +0000)]
Merge pull request #800 from Consolatis/ci/web_deploy

CI: automatically rebuild labwc.github.io

2 years agoprotocols: remove redundant wlr-output-management
Johan Malm [Sat, 11 Mar 2023 19:28:32 +0000 (19:28 +0000)]
protocols: remove redundant wlr-output-management

2 years agosrc/config/rcxml.c: reset default values on Reconfigure
Consolatis [Wed, 8 Mar 2023 22:53:34 +0000 (23:53 +0100)]
src/config/rcxml.c: reset default values on Reconfigure

Reported-by: <umk3> via IRC
3 years agoosd: add config option to disable osd
Flrian [Wed, 8 Mar 2023 14:26:49 +0000 (15:26 +0100)]
osd: add config option to disable osd

3 years agoPrevent rare crash due to layering move / resize / menu operations
Consolatis [Tue, 7 Mar 2023 21:59:56 +0000 (22:59 +0100)]
Prevent rare crash due to layering move / resize / menu operations

Fixes #817

Reported-by: @kode54
3 years agosrc/keyboard.c: Fix wrong argument parsing
Consolatis [Tue, 7 Mar 2023 16:58:15 +0000 (17:58 +0100)]
src/keyboard.c: Fix wrong argument parsing

The `wlr_keyboard.events.modifiers` signal does not use
a `wlr_keyboard_key_event` as argument, instead it is a
pointer to the `wlr_keyboard` instance which caused the
signal.

3 years agoPrevent cursor based region-snapping when starting a move with A-Left
Consolatis [Tue, 7 Mar 2023 16:51:28 +0000 (17:51 +0100)]
Prevent cursor based region-snapping when starting a move with A-Left

When wanting to snap to a region when starting the move
operation with A-Left (or a similar mousebind which includes a
modifier), the modifier - or another one - must be pressed again.

Fixes #761

3 years agoAdd FocusOutput action
Consolatis [Sun, 5 Mar 2023 16:16:23 +0000 (17:16 +0100)]
Add FocusOutput action

Fixes #806

Suggested-by: @EysseW
Tested-by: @EysseW
3 years agosrc/workspaces.c: update cursor focus
Consolatis [Sun, 5 Mar 2023 15:34:41 +0000 (16:34 +0100)]
src/workspaces.c: update cursor focus

Fixes #807

3 years agoxdg: Reduce log priority of timeout message
John Lindgren [Sun, 5 Mar 2023 07:03:41 +0000 (02:03 -0500)]
xdg: Reduce log priority of timeout message

3 years agoxdg: Detect pending configure request timeouts
John Lindgren [Tue, 28 Feb 2023 16:30:42 +0000 (11:30 -0500)]
xdg: Detect pending configure request timeouts

3 years agoxdg: Fix visual glitch when resizing xfce4-terminal from left edge
John Lindgren [Mon, 27 Feb 2023 01:25:05 +0000 (20:25 -0500)]
xdg: Fix visual glitch when resizing xfce4-terminal from left edge

3 years agoview: Anchor right/bottom edge only when resizing via top/left edge
John Lindgren [Sat, 25 Feb 2023 17:05:22 +0000 (12:05 -0500)]
view: Anchor right/bottom edge only when resizing via top/left edge

Currently, we anchor the right/bottom edge of the view whenever the top/
left edge is moving (current.x/y != pending.x/y). Doing so doesn't make
much sense when the right/bottom edge is also moving. In that case it's
probably best to move the view (or at least its top/left corner)
directly to its final position.

The most noticeable effect of this change is with views that don't
accept their requested size exactly when tiled or maximized (examples:
havoc, xfce4-terminal). Previously, their right-bottom corner would be
aligned with the screen edge, leaving gaps on the left and top. Now the
top-left corner will be aligned and the gaps will be on the right and
bottom. This is still not ideal, but IMHO less surprising to the user.

3 years agoview: Comment updates
John Lindgren [Sun, 5 Mar 2023 06:58:24 +0000 (01:58 -0500)]
view: Comment updates

3 years agoview: Add view_set_output()
John Lindgren [Tue, 28 Feb 2023 16:46:48 +0000 (11:46 -0500)]
view: Add view_set_output()

3 years agoview: Add documentation for view->output
John Lindgren [Tue, 21 Feb 2023 13:14:11 +0000 (08:14 -0500)]
view: Add documentation for view->output

3 years agoview: Eliminate view_output() and use view->output directly
John Lindgren [Mon, 20 Feb 2023 21:35:23 +0000 (16:35 -0500)]
view: Eliminate view_output() and use view->output directly

3 years agoview: Make view_apply_special_geometry() return void
John Lindgren [Mon, 20 Feb 2023 21:29:41 +0000 (16:29 -0500)]
view: Make view_apply_special_geometry() return void

This makes the conditions for calling it explicit and more obvious.

3 years agoview: Set output prior to view_apply_tiled_geometry()
John Lindgren [Mon, 20 Feb 2023 21:14:27 +0000 (16:14 -0500)]
view: Set output prior to view_apply_tiled_geometry()

3 years agoview: Set view->output prior to calling view_center()
John Lindgren [Mon, 20 Feb 2023 21:23:53 +0000 (16:23 -0500)]
view: Set view->output prior to calling view_center()

3 years agoxdg: Set view->output prior to view_set_fullscreen()
John Lindgren [Mon, 20 Feb 2023 18:36:15 +0000 (13:36 -0500)]
xdg: Set view->output prior to view_set_fullscreen()

3 years agoxdg,xwayland: Set initial output for views
John Lindgren [Fri, 3 Feb 2023 19:45:04 +0000 (14:45 -0500)]
xdg,xwayland: Set initial output for views

3 years agoview: Attempt to keep non-floating views on the same output
John Lindgren [Mon, 20 Feb 2023 21:22:01 +0000 (16:22 -0500)]
view: Attempt to keep non-floating views on the same output

- Make view_discover_output() static
- Call view_discover_output() only for floating views
- Deprecate view_output(); make it use view->output when possible

3 years agoAdd ToggleKeybinds action
Consolatis [Fri, 3 Mar 2023 17:16:46 +0000 (18:16 +0100)]
Add ToggleKeybinds action

This can be used to better control Virtual Machines, VNC clients, nested
compositors or similar. All keybinds other than ToggleKeybinds itself are
disabled when first called, a 2nd call will restore handling of all keybinds.

Fixes #738
Fixes #810

3 years agoxdg/xwayland: remove unnecessary assert()s
Johan Malm [Fri, 24 Feb 2023 21:50:16 +0000 (21:50 +0000)]
xdg/xwayland: remove unnecessary assert()s

3 years agoMove common xdg/xwayland handle_destroy() code to view_destroy()
Johan Malm [Fri, 24 Feb 2023 21:45:03 +0000 (21:45 +0000)]
Move common xdg/xwayland handle_destroy() code to view_destroy()

3 years agoview: make request_activate listener xwayland only
Johan Malm [Fri, 24 Feb 2023 21:27:11 +0000 (21:27 +0000)]
view: make request_activate listener xwayland only

3 years agosrc/xdg.c: remove all listeners in handle_destroy()
Johan Malm [Fri, 24 Feb 2023 21:15:11 +0000 (21:15 +0000)]
src/xdg.c: remove all listeners in handle_destroy()

3 years agosrc/cursor.c: add cursor lock confinement
Consolatis [Fri, 24 Feb 2023 09:20:14 +0000 (10:20 +0100)]
src/cursor.c: add cursor lock confinement

3 years agosrc/cursor.c: Implement cursor constraints
Ph42oN [Wed, 12 Oct 2022 21:35:25 +0000 (00:35 +0300)]
src/cursor.c: Implement cursor constraints

3 years agoxwayland.c: prefix view_impl functions with xwayland_view_
Johan Malm [Mon, 6 Feb 2023 20:01:18 +0000 (20:01 +0000)]
xwayland.c: prefix view_impl functions with xwayland_view_

...to make it consistent with xdg.c

3 years agoview: add move_to_front to `struct view_impl`
Johan Malm [Sun, 5 Feb 2023 19:29:24 +0000 (19:29 +0000)]
view: add move_to_front to `struct view_impl`

...to increase xwayland and xdg-shell encapsulation and to avoid passing a
function pointer as an argument in `xwayland_move_sub_views_to_front()`
which is inconsistent with labwc design patterns.

Rename view-impl.c to view-impl-common.c

Move function declarations that are common to view-implementations from
view.h into view-impl-common.h

3 years agoCI: Add hwdata to FreeBSD build requirements
Consolatis [Fri, 24 Feb 2023 13:46:24 +0000 (14:46 +0100)]
CI: Add hwdata to FreeBSD build requirements

3 years agoCI: automatically rebuild labwc.github.io
Consolatis [Fri, 24 Feb 2023 11:56:27 +0000 (12:56 +0100)]
CI: automatically rebuild labwc.github.io

3 years agopo: Add Georgian translation
NorwayFun [Wed, 22 Feb 2023 08:45:41 +0000 (09:45 +0100)]
po: Add Georgian translation

3 years agopo: Add Georgian translation
NorwayFun [Wed, 22 Feb 2023 08:45:22 +0000 (09:45 +0100)]
po: Add Georgian translation

3 years agooutput: Add output_nearest_to()
John Lindgren [Fri, 3 Feb 2023 20:22:54 +0000 (15:22 -0500)]
output: Add output_nearest_to()

Reimplement output_from_cursor_coords() as output_nearest_to_cursor().

3 years agoxdg: Use wlr_xdg_surface_get_geometry() to get size
John Lindgren [Mon, 20 Feb 2023 22:30:17 +0000 (17:30 -0500)]
xdg: Use wlr_xdg_surface_get_geometry() to get size

This fixes an issue with havoc not having a valid size on map().

Investigation showed that xdg_surface->current.geometry is set only by
the xdg_surface::set_geometry protocol message, which is optional. If
set_geometry is not called, then we are supposed to compute the size
from the surface buffer(s). wlr_xdg_surface_get_geometry() already
accounts for this, so we just need to use wlr_xdg_surface_get_geometry()
instead of reading xdg_surface->current.geometry directly.

3 years agoxdg: Remove unused #include
John Lindgren [Mon, 20 Feb 2023 18:26:01 +0000 (13:26 -0500)]
xdg: Remove unused #include

3 years agoREADME.md: suggest using nested gamescope for gaming
Consolatis [Fri, 27 Jan 2023 05:52:42 +0000 (06:52 +0100)]
README.md: suggest using nested gamescope for gaming

Fixes #690