]> git.mdlowis.com Git - proto/labwc.git/log
proto/labwc.git
2 years agoscripts/helper/find-idents.c: handle single line comment tokens
Consolatis [Thu, 9 Feb 2023 04:33:16 +0000 (05:33 +0100)]
scripts/helper/find-idents.c: handle single line comment tokens

2 years agoAdd scripts/find-banned.sh
Johan Malm [Mon, 30 Jan 2023 21:24:52 +0000 (21:24 +0000)]
Add scripts/find-banned.sh

2 years agoToggleKeybinds per window
Consolatis [Sun, 5 Mar 2023 09:35:56 +0000 (10:35 +0100)]
ToggleKeybinds per window

2 years agoosd: move get_osd_height() closer to where it is called from
Johan Malm [Wed, 5 Jul 2023 18:52:01 +0000 (19:52 +0100)]
osd: move get_osd_height() closer to where it is called from

2 years agoosd: make item-border part of item-height
Johan Malm [Wed, 5 Jul 2023 18:49:56 +0000 (19:49 +0100)]
osd: make item-border part of item-height

2 years agotheme: add option osd.window-switcher.item.active.border.width
Consolatis [Sat, 1 Jul 2023 12:56:13 +0000 (14:56 +0200)]
theme: add option osd.window-switcher.item.active.border.width

...and change default values for the variables below to keep the
window-switcher look the same as it was at the last release.

osd.window-switcher.padding = 4
osd.window-switcher.item.padding.y = 1
osd.window-switcher.item.active.border.width = 2

2 years agotheme: add option osd.window-switcher.padding
Johan Malm [Thu, 29 Jun 2023 20:29:43 +0000 (21:29 +0100)]
theme: add option osd.window-switcher.padding

Fixes: issue #969
2 years agosrc/action.c: relax argument checks when running actions
Consolatis [Mon, 15 May 2023 16:50:13 +0000 (18:50 +0200)]
src/action.c: relax argument checks when running actions

2 years agoconfig: validate keybind, mousebind and menu actions
Consolatis [Sat, 13 May 2023 14:27:46 +0000 (16:27 +0200)]
config: validate keybind, mousebind and menu actions

2 years agosrc/action.c: add action_is_valid()
Consolatis [Sat, 13 May 2023 13:57:37 +0000 (15:57 +0200)]
src/action.c: add action_is_valid()

2 years agosrc/action.c: enforce action arg->key being set
Consolatis [Fri, 12 May 2023 12:33:12 +0000 (14:33 +0200)]
src/action.c: enforce action arg->key being set

2 years agoaction.c: remove duplicate code
Johan Malm [Sun, 2 Jul 2023 20:20:04 +0000 (21:20 +0100)]
action.c: remove duplicate code

2 years agomenu: support CDATA for <command> element
Johan Malm [Sun, 2 Jul 2023 20:17:26 +0000 (21:17 +0100)]
menu: support CDATA for <command> element

...in order to support obmenu-generator output such as this:

  <menu id="root-menu" label="Applications">
    <item label="File Manager"><action name="Execute"><command><![CDATA[xdg-open .]]></command></action></item>
    <item label="Terminal"><action name="Execute"><command><![CDATA[xterm]]></command></action></item>
    <item label="Web Browser"><action name="Execute"><command><![CDATA[xdg-open http://]]></command></action></item>
    <item label="Run command"><action name="Execute"><command><![CDATA[gmrun]]></command></action></item>
  </menu>

References:
- https://github.com/trizen/obmenu-generator
- https://aur.archlinux.org/packages/obmenu-generator
- https://trizenx.blogspot.com/2012/02/obmenu-generator.html

Fixes: issue #972
2 years agocheckpatch.pl: allow xmlFree in CamelCase format
Johan Malm [Mon, 3 Jul 2023 16:04:41 +0000 (17:04 +0100)]
checkpatch.pl: allow xmlFree in CamelCase format

...to avoid 'Avoid CamelCase' warning.

2 years agocheckpatch.pl: remove 'spaces preferred around that...' warning
Johan Malm [Mon, 3 Jul 2023 16:04:15 +0000 (17:04 +0100)]
checkpatch.pl: remove 'spaces preferred around that...' warning

...because it gives a false positive for "xmlChar *foo" saying it should
be "xmlChar * foo".

2 years agomenu: print menu.xml nodenames
Johan Malm [Sun, 2 Jul 2023 12:55:23 +0000 (13:55 +0100)]
menu: print menu.xml nodenames

...when LABWC_DEBUG_MENU_NODENAMES is set

2 years agoaction: disable MoveRelative for fullscreen and unmaximize
Ph42oN [Sun, 2 Jul 2023 20:26:09 +0000 (23:26 +0300)]
action: disable MoveRelative for fullscreen and unmaximize

2 years agoview: resize_relative disable for fullscreen and maximized and set untiled
Ph42oN [Sun, 2 Jul 2023 20:25:24 +0000 (23:25 +0300)]
view: resize_relative disable for fullscreen and maximized and set untiled

2 years agoview: add client_request flag to view->impl->unmap()
John Lindgren [Sat, 1 Jul 2023 16:37:47 +0000 (12:37 -0400)]
view: add client_request flag to view->impl->unmap()

This makes explicit the subtle behavioral difference between
xwayland_view_unmap() and handle_unmap().

With this change, the XDG and XWayland versions of handle_map/unmap()
are now identical, which will make further refactoring possible.

2 years agoosd: use theme->osd_border_width for focused item
Johan Malm [Thu, 29 Jun 2023 16:45:33 +0000 (17:45 +0100)]
osd: use theme->osd_border_width for focused item

2 years agotheme: add window-switcher width/padding
Johan Malm [Mon, 24 Apr 2023 20:31:28 +0000 (21:31 +0100)]
theme: add window-switcher width/padding

...and calculate item-height based on font-height

Add theme options
  - osd.window-switcher.width
  - osd.window-switcher.item.padding.x
  - osd.window-switcher.item.padding.y

Issue #879

2 years agoosd: use theme->osd_border_width consistently
Johan Malm [Mon, 24 Apr 2023 19:48:58 +0000 (20:48 +0100)]
osd: use theme->osd_border_width consistently

2 years agoSome formatting
stefonarch [Mon, 26 Jun 2023 20:33:34 +0000 (22:33 +0200)]
Some formatting

2 years agoaction: add ResizeRelative
Ph42oN [Tue, 27 Jun 2023 18:20:04 +0000 (21:20 +0300)]
action: add ResizeRelative

2 years agoadd MoveRelative to man page and use view->pending
Ph42oN [Tue, 27 Jun 2023 18:17:57 +0000 (21:17 +0300)]
add MoveRelative to man page and use view->pending

2 years agoadd MoveRelative
Julius Yli-Suomu [Mon, 26 Jun 2023 16:04:33 +0000 (19:04 +0300)]
add MoveRelative

2 years agosession.c: unconstify build_path() return value
Johan Malm [Mon, 26 Jun 2023 05:25:40 +0000 (06:25 +0100)]
session.c: unconstify build_path() return value

2 years agocommon/string-helpers.c: add strdup_printf()
Johan Malm [Sun, 25 Jun 2023 08:00:41 +0000 (09:00 +0100)]
common/string-helpers.c: add strdup_printf()

2 years agowindow-rules: support matchOnce attribute
Johan Malm [Wed, 7 Jun 2023 20:44:38 +0000 (21:44 +0100)]
window-rules: support matchOnce attribute

...allowing a rule to be applied to only the first window matching a
particular criteria. For example, the following can be used to apply a
window rule to lxqt-panel but not its configuration window with the same
app_id:

    <windowRules>
      <windowRule identifier="lxqt-panel" matchOnce="true">
        <skipTaskbar>yes</skipTaskbar>
        <action name="MoveTo" x="0" y="0" />
        <action name="ToggleAlwaysOnTop"/>
      </windowRule>
    </windowRules>

2 years agoaction: add MoveTo
Johan Malm [Tue, 6 Jun 2023 19:33:53 +0000 (20:33 +0100)]
action: add MoveTo

2 years agoaction: support arguments of int type
Johan Malm [Sun, 25 Jun 2023 19:20:52 +0000 (20:20 +0100)]
action: support arguments of int type

2 years agoconfig: support <margin top="" bottom="" left="" right="" output="" />
Johan Malm [Tue, 6 Jun 2023 18:52:57 +0000 (19:52 +0100)]
config: support <margin top="" bottom="" left="" right="" output="" />

2 years agoMove border-struct to common/border.h for sharing
Johan Malm [Mon, 5 Jun 2023 20:48:47 +0000 (21:48 +0100)]
Move border-struct to common/border.h for sharing

2 years agoview: add minimize method
Johan Malm [Sun, 25 Jun 2023 10:37:56 +0000 (11:37 +0100)]
view: add minimize method

...and call wlr_xwayland_surface_set_minimized() for xwayland surfaces on
(un)minimize.

Fixes: #958
2 years agoconfig: support <desktops number=""> update documentation
Sachin Bhat [Sun, 25 Jun 2023 09:18:43 +0000 (17:18 +0800)]
config: support <desktops number=""> update documentation

2 years agoconfig: support <desktops number="">
Sachin Bhat [Sun, 25 Jun 2023 00:09:28 +0000 (08:09 +0800)]
config: support <desktops number="">

2 years agoconfig: support <desktops number=>
Sachin Bhat [Sat, 24 Jun 2023 12:36:06 +0000 (20:36 +0800)]
config: support <desktops number=>

2 years agoconfig: support <desktops number=> update documentation
Sachin Bhat [Sat, 24 Jun 2023 11:46:00 +0000 (19:46 +0800)]
config: support <desktops number=> update documentation

2 years agoconfig: support <desktops number=>
Sachin Bhat [Fri, 23 Jun 2023 06:34:34 +0000 (14:34 +0800)]
config: support <desktops number=>

Documentation updated at  and

2 years agoconfig: support <desktops number="">
Sachin Bhat [Mon, 19 Jun 2023 00:46:56 +0000 (08:46 +0800)]
config: support <desktops number="">

2 years agodocs/rc.xml.all: fix mousebind button casing
Standreas [Wed, 14 Jun 2023 14:51:33 +0000 (16:51 +0200)]
docs/rc.xml.all: fix mousebind button casing

2 years agoconfig: fix bug with default scroll mousebind
Johan Malm [Sun, 11 Jun 2023 14:57:58 +0000 (15:57 +0100)]
config: fix bug with default scroll mousebind

Specify attribute name when adding default mousebind actions.

This is required because in src/action.c action GoToDesktop requires an
argument with key 'to' and does not accept `action_get_first_arg()`
because the action supports other optional attributes so we could not
guarantee that 'to' is the first one.

Fixes: #948
2 years agodnd: refocus surface under cursor on drag-destroy
Johan Malm [Sat, 27 May 2023 14:41:20 +0000 (15:41 +0100)]
dnd: refocus surface under cursor on drag-destroy

Keyboard focus is not changed during drag, so we need to refocus the
surface under the cursor and the end of a drag-and-drop operation.

Fixes issue #939

2 years agodocs: fix some typos
Tomi Ollila [Wed, 24 May 2023 10:06:48 +0000 (13:06 +0300)]
docs: fix some typos

Between, output, rounded and focused.

Added one inconsistently missing trailing period.

Inserted newline before last word in one line in
labwc-actions.5.scd in order to keep that line from
passing 80-column boundary.

2 years agowindow-rules: add skipTaskbar and skipWindowSwitcher
Johan Malm [Sat, 20 May 2023 09:20:36 +0000 (10:20 +0100)]
window-rules: add skipTaskbar and skipWindowSwitcher

2 years agoaction: add ToggleAlwaysOnBottom
Johan Malm [Thu, 11 May 2023 21:26:41 +0000 (22:26 +0100)]
action: add ToggleAlwaysOnBottom

2 years agoxdg-popup: render above always-on-top
Johan Malm [Sat, 20 May 2023 07:58:42 +0000 (08:58 +0100)]
xdg-popup: render above always-on-top

2 years agoaction: support {Go,Send}ToDesktop 'wrap' option
Tomi Ollila [Sun, 14 May 2023 17:44:59 +0000 (20:44 +0300)]
action: support {Go,Send}ToDesktop 'wrap' option

Make wrap 'true' by default for both GoToDesktop and SendToDesktop,
in order to default to the current behaviour, and to stay consistent
with Openbox behaviour.

2 years agosrc/output.c: destroy workspace OSD on output destroy
Consolatis [Wed, 17 May 2023 11:13:04 +0000 (13:13 +0200)]
src/output.c: destroy workspace OSD on output destroy

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