]> git.mdlowis.com Git - proto/labwc.git/log
proto/labwc.git
4 years agoCodeStyle
Consolatis [Sun, 9 Jan 2022 04:48:27 +0000 (05:48 +0100)]
CodeStyle

4 years agoview: Handle maximized view on disabled output more simply
John Lindgren [Sat, 8 Jan 2022 16:46:46 +0000 (11:46 -0500)]
view: Handle maximized view on disabled output more simply

Partially reverts commit ab07b68d7e888211e9ef5a3731f5272912d4b878.

4 years agoAllow mouse movements to trigger SnapToEdge
Consolatis [Sat, 8 Jan 2022 10:25:18 +0000 (11:25 +0100)]
Allow mouse movements to trigger SnapToEdge

4 years agocursor: More reliably clear "pressed" status of mouse bindings
John Lindgren [Sat, 8 Jan 2022 07:47:30 +0000 (02:47 -0500)]
cursor: More reliably clear "pressed" status of mouse bindings

The "pressed" status of the mouse button is stored per-binding, and
the first binding activated causes us to break out of the loop that
cleared the "pressed" status -- as a result, some statused weren't
cleared when another binding was activated.

The bug could be seen when clicking the maximize button on a window
and then moving the mouse: the DRAG action would continue to move
the window (unmaximizing it) even though the mouse button was no
longer held.

4 years agocursor: Don't allow a DRAG action to start from a double-click
John Lindgren [Sat, 8 Jan 2022 07:01:14 +0000 (02:01 -0500)]
cursor: Don't allow a DRAG action to start from a double-click

By moving the cursor slightly after the second press (but before
the second release) it was possible to accidentally trigger both a
DOUBLECLICK and a DRAG action.  Doing this on the titlebar would
cause the window to maximize and then immediately unmaximize, which
feels very "glitchy".

As a simple fix, don't allow a press event that is triggering a
DOUBLECLICK to also trigger a DRAG (or CLICK) on the following
release event.

Note: Openbox avoids the issue by processing DOUBLECLICK on the
second release event.  If the cursor moves before that, the DRAG
wins out and the DOUBLECLICK isn't processed.

4 years agoUnmaximize on Move
Consolatis [Wed, 5 Jan 2022 07:30:07 +0000 (08:30 +0100)]
Unmaximize on Move

4 years agomousebindings: use available resize edges first in drag actions
ARDiDo [Fri, 7 Jan 2022 21:19:51 +0000 (16:19 -0500)]
mousebindings: use available resize edges first in drag actions

4 years agomousebindings: change default focus and raise to press from drag.
ARDiDo [Fri, 7 Jan 2022 21:13:36 +0000 (16:13 -0500)]
mousebindings: change default focus and raise to press from drag.

This raises the window without having to drag it.

4 years agolabwc-config: fix spelling mistake
ARDiDo [Fri, 7 Jan 2022 20:53:13 +0000 (15:53 -0500)]
labwc-config: fix spelling mistake

4 years agomouse: add support for drag mouse event
ARDiDo [Thu, 6 Jan 2022 23:30:17 +0000 (18:30 -0500)]
mouse: add support for drag mouse event

4 years agoview: adjust views safety following layout change
Johan Malm [Fri, 7 Jan 2022 22:01:44 +0000 (22:01 +0000)]
view: adjust views safety following layout change

Refactor view_adjust_for_layout_change() in order to:

- Use view_maximize() - otherwise the unmaximized geometry remains off
  the screen.
- Avoid relying on view_apply_maximized_geometry() to handle missing
  output

Issue #194

4 years agoview: fix bug in view_snap_to_edge()
Johan Malm [Fri, 7 Jan 2022 20:53:48 +0000 (20:53 +0000)]
view: fix bug in view_snap_to_edge()

Use view_move() and view_move_resize() correctly.

view_move_resize() should only be used when the view actually changes
width and/or height, otherwise the serials might cause a delay in moving
xdg-shell clients.

Issue #201

4 years agoseat: support WLR_{WL,X11}_OUTPUTS >= 2
Johan Malm [Thu, 6 Jan 2022 21:40:10 +0000 (21:40 +0000)]
seat: support WLR_{WL,X11}_OUTPUTS >= 2

When running nested in X11 or a wlroots compositor with the respective
environment variables WLR_X11_OUTPUTS or WLR_WL_OUTPUTS set to value >= 2,
cursors need to be mapped to the respective outputs.

Closes issue #196

Suggested-by: @Consolatis
Written-by: @johanmalm
4 years agoMore robust rc.xml parsing
Consolatis [Thu, 6 Jan 2022 02:24:32 +0000 (03:24 +0100)]
More robust rc.xml parsing

4 years agoPrevent views from starting in fullscreen
ARDiDo [Wed, 5 Jan 2022 22:02:58 +0000 (17:02 -0500)]
Prevent views from starting in fullscreen

4 years agoMove action() prototype from labwc.h to action.h
Johan Malm [Wed, 5 Jan 2022 21:27:47 +0000 (21:27 +0000)]
Move action() prototype from labwc.h to action.h

4 years agoaction.{c,h}: fix coding style
Johan Malm [Wed, 5 Jan 2022 21:23:01 +0000 (21:23 +0000)]
action.{c,h}: fix coding style

4 years agoRewrite action handling to allow multiple actions at once
Consolatis [Wed, 5 Jan 2022 08:11:24 +0000 (09:11 +0100)]
Rewrite action handling to allow multiple actions at once

4 years agowlroots.wrap: add .git to url to avoid redirection warning
Johan Malm [Tue, 4 Jan 2022 21:27:59 +0000 (21:27 +0000)]
wlroots.wrap: add .git to url to avoid redirection warning

4 years agodocs/autostart: remove wlr-randr {--off,--on}
Johan Malm [Mon, 3 Jan 2022 23:32:02 +0000 (23:32 +0000)]
docs/autostart: remove wlr-randr {--off,--on}

swayidle previously used wlr-randr to enable/disable outputs, but since
commit a837fefc, this re-arranges views so is not to be used in the
context of idle system power management.

4 years agoconfig/keybind.c: Don't overwrite the stack
Consolatis [Mon, 3 Jan 2022 04:38:48 +0000 (05:38 +0100)]
config/keybind.c: Don't overwrite the stack

4 years agodesktop: simplify desktop_focus_and_activate_view()
Johan Malm [Sun, 2 Jan 2022 15:53:05 +0000 (15:53 +0000)]
desktop: simplify desktop_focus_and_activate_view()

...following view->surface checks in 295d5172

4 years agocursor.c: fix coding style
Johan Malm [Sun, 2 Jan 2022 15:51:40 +0000 (15:51 +0000)]
cursor.c: fix coding style

Open brace '{' following function definitions go on the next line

4 years agokeyboard: cancel repeat when handling key-bind
Johan Malm [Sun, 2 Jan 2022 15:28:35 +0000 (15:28 +0000)]
keyboard: cancel repeat when handling key-bind

<keybind key="W-d">
  <action name="Execute">
    <command>dmenu_run</command>
  </action>
</keybind>

When using the keybind above (in rc.xml), on the first execution of W-d
all is okay, but the second time, a "d" pressed event is sent to dmenu
resulting in a continuous "ddddddd...") which has to be stopped pressing a
key.

This behaviour started in commit 7e57b7f because release events associated
with keybinds are no longer sent to clients (before that commit, the
release event for the ā€œdā€ would have been passed to dmenu, thus cancelling
the repeat).

Solves issue #176

Helped-by: @spectrum70
4 years agofullscreen: ignore decorations and maximize requests while fullscreen
ARDiDo [Sun, 2 Jan 2022 15:19:48 +0000 (10:19 -0500)]
fullscreen: ignore decorations and maximize requests while fullscreen

4 years agoREADME.md: update acceptance criteria URL
Johan Malm [Sat, 1 Jan 2022 20:35:36 +0000 (20:35 +0000)]
README.md: update acceptance criteria URL

4 years agoUpdate NEWS.md
Johan Malm [Sat, 1 Jan 2022 20:18:57 +0000 (20:18 +0000)]
Update NEWS.md

4 years agocursor: support pointer gestures (pinch/swipe)
bi4k8 [Fri, 31 Dec 2021 23:34:08 +0000 (23:34 +0000)]
cursor: support pointer gestures (pinch/swipe)

4 years agofactor keyboard/cursor cleanup into own functions
bi4k8 [Fri, 31 Dec 2021 23:30:25 +0000 (23:30 +0000)]
factor keyboard/cursor cleanup into own functions

4 years agodecorations: use view_apply_maximized_geometry instead of view_maximize
ARDiDo [Sat, 1 Jan 2022 16:50:35 +0000 (11:50 -0500)]
decorations: use view_apply_maximized_geometry instead of view_maximize

4 years agoAdjust views to account for output layout changes
John Lindgren [Fri, 31 Dec 2021 22:30:55 +0000 (17:30 -0500)]
Adjust views to account for output layout changes

labwc currently doesn't handle output layout changes very well:

 - Windows can end up "lost" completely offscreen
 - Maximized/fullscreen windows can end up spanning multiple outputs

Currently, new_output_notify() and output_destroy_notify() contain logic
to update the cursor and force a repaint when outputs are added or
removed.  This logic in fact needs to run on any output layout change,
so consolidate it into a new function, output_update_for_layout_change().

Then add a second new function, view_adjust_for_layout_change(), which
adjusts window placement to account for the new layout.

The behavior is roughly as follows:

 - Normal windows that end up offscreen are centered on the closest
   output (making use of the existing view_center() logic)
 - Maximized windows are re-maximized on the closest output.  Logic is
   also added to the unmaximize step to check that the original
   unmaximized position is still on-screen.
 - Fullscreen windows are re-fullscreened on the same output if
   possible; otherwise they are un-fullscreened.

Minimized windows don't require any special handling.  Their placement
is adjusted just the same, but invisible to the user until they are
later unminimized.

There is some positioning glitch still with un-fullscreening a window
whose output has been disconnected/disabled; it can end up in an
unexpected position (but at least has the correct size and decoration).
I don't think this is due to a bug in my change per se, but perhaps the
change has exposed a bug elsewhere.

Fixes: #177
4 years agobuild: bump version to 0.4.0
Johan Malm [Fri, 31 Dec 2021 21:05:49 +0000 (21:05 +0000)]
build: bump version to 0.4.0

4 years agoview.c: re-maximize views when toggling decorations
ARDiDo [Fri, 31 Dec 2021 17:09:20 +0000 (12:09 -0500)]
view.c: re-maximize views when toggling decorations

4 years agoxwayland: Implement request_activate
Joshua Ashton [Fri, 31 Dec 2021 02:58:55 +0000 (02:58 +0000)]
xwayland: Implement request_activate

Used by Steam, for example, on the Friends and Chat button.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
4 years agoxwayland: Implmement request_minimize
Joshua Ashton [Fri, 31 Dec 2021 02:45:19 +0000 (02:45 +0000)]
xwayland: Implmement request_minimize

This is used by Steam and other apps with client decorations.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
4 years agoxdg: Implement request_minimize
Joshua Ashton [Fri, 31 Dec 2021 02:44:25 +0000 (02:44 +0000)]
xdg: Implement request_minimize

Signed-off-by: Joshua Ashton <joshua@froggi.es>
4 years agodesktop: Fix activating unmapped views
Joshua Ashton [Fri, 31 Dec 2021 02:58:34 +0000 (02:58 +0000)]
desktop: Fix activating unmapped views

This can happen sometimes in xwayland, need to guard against this.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
4 years agoxwayland: Make styling of wl_signal_add consistent
Joshua Ashton [Fri, 31 Dec 2021 02:42:17 +0000 (02:42 +0000)]
xwayland: Make styling of wl_signal_add consistent

Signed-off-by: Joshua Ashton <joshua@froggi.es>
4 years agoxdg: Make styling of wl_signal_add consistent
Joshua Ashton [Fri, 31 Dec 2021 02:41:53 +0000 (02:41 +0000)]
xdg: Make styling of wl_signal_add consistent

Signed-off-by: Joshua Ashton <joshua@froggi.es>
4 years agoUpdate NEWS.md
Johan Malm [Wed, 29 Dec 2021 14:32:18 +0000 (14:32 +0000)]
Update NEWS.md

4 years agointeractive: use "grab" cursor when moving
Johan Malm [Wed, 29 Dec 2021 14:27:09 +0000 (14:27 +0000)]
interactive: use "grab" cursor when moving

This is consistent with sway and looks better.

Relates to issue #124

4 years agolabwc-environment(5): add XCURSOR_{THEME,SIZE}
Johan Malm [Wed, 29 Dec 2021 14:25:13 +0000 (14:25 +0000)]
labwc-environment(5): add XCURSOR_{THEME,SIZE}

4 years agolabwc-config(5): fix typo
Johan Malm [Wed, 29 Dec 2021 14:23:51 +0000 (14:23 +0000)]
labwc-config(5): fix typo

4 years agodocs/rc.xml.all: only declare one 'Root' context
Johan Malm [Wed, 29 Dec 2021 14:20:00 +0000 (14:20 +0000)]
docs/rc.xml.all: only declare one 'Root' context

Multiple <mousebind> can exist within one <context>, so let's keep it
clean.

4 years agoconfig: de-couple <FollowMouse> and <raiseOnFocus>
Johan Malm [Wed, 29 Dec 2021 14:04:41 +0000 (14:04 +0000)]
config: de-couple <FollowMouse> and <raiseOnFocus>

Set these two variables indepently of each other as this is cleaner and
more explicit.

In openbox <raiseOnFocus> only applies if <followMouse> is set, but there
is no need to immitate this.

4 years agosrc/foreign.c: verify associated view is still valid
Consolatis [Tue, 28 Dec 2021 05:08:35 +0000 (06:08 +0100)]
src/foreign.c: verify associated view is still valid

Closes #172

4 years agoview:c Do not overwrite unmaximized dimensions on fullscreen
Consolatis [Mon, 27 Dec 2021 23:55:34 +0000 (00:55 +0100)]
view:c Do not overwrite unmaximized dimensions on fullscreen

Before: window -> maximize -> fullscreen -> unfullscreen would reset pre maximized state
Now: window -> maximize -> fullscreen -> unfullscreen -> unmaximize works as expected

4 years agoFix build on Alpine Linux
Johan Malm [Tue, 28 Dec 2021 15:06:33 +0000 (15:06 +0000)]
Fix build on Alpine Linux

Issue #144

Add `#define _POSIX_C_SOURCE 200809L` to avoid the error below:

../src/cursor.c: In function 'cursor_update_focus':
../src/cursor.c:271:2: warning: implicit declaration of function
'clock_gettime' [-Wimplicit-function-declaration]
  271 |  clock_gettime(CLOCK_MONOTONIC, &now);
      |  ^~~~~~~~~~~~~
../src/cursor.c:271:16: error: 'CLOCK_MONOTONIC' undeclared (first use in
this function)
  271 |  clock_gettime(CLOCK_MONOTONIC, &now);
      |                ^~~~~~~~~~~~~~~
../src/cursor.c:271:16: note: each undeclared identifier is reported only
once for each function it appears in
../src/cursor.c: In function 'is_double_click':
../src/cursor.c:486:16: error: 'CLOCK_MONOTONIC' undeclared (first use in
this function)
  486 |  clock_gettime(CLOCK_MONOTONIC, &now);
      |                ^~~~~~~~~~~~~~~

4 years agoview.c: Remove 'activated' flag when minimizing a view
Consolatis [Mon, 27 Dec 2021 22:41:33 +0000 (23:41 +0100)]
view.c: Remove 'activated' flag when minimizing a view

Before this change a window that had been minimized showed up with states Minimized and Activated.
For foreign-toplevel clients like taskbars that could mean to handle multiple windows at once
having a 'activated' state even though they were clearly minimized.

4 years agoFix use-after-free errors detected by valgrind
John Lindgren [Mon, 27 Dec 2021 14:44:03 +0000 (09:44 -0500)]
Fix use-after-free errors detected by valgrind

Handlers for the "destroy" signal need to unregister themselves from the
signal (using wl_list_remove()) before invoking free().

    Invalid write of size 8
       at 0x487DF27: wl_list_remove (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x4906FF0: wlr_signal_emit_safe (signal.c:32)
       by 0x48EA304: reset_xdg_surface (wlr_xdg_surface.c:430)
       by 0x48EA3D6: UnknownInlinedFun (wlr_xdg_surface.c:464)
       by 0x48EA3D6: xdg_surface_handle_resource_destroy (wlr_xdg_surface.c:282)
       by 0x4877899: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x487DEBF: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x487E3DF: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x487830D: wl_client_destroy (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x48783F6: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x487B1C9: wl_event_loop_dispatch (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x4878D36: wl_display_run (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x110DAC: main (main.c:81)
     Address 0xc3213d8 is 424 bytes inside a block of size 704 free'd
       at 0x484118B: free (vg_replace_malloc.c:755)
       by 0x4906FDD: wlr_signal_emit_safe (signal.c:29)
       by 0x48EA304: reset_xdg_surface (wlr_xdg_surface.c:430)
       by 0x48EA3D6: UnknownInlinedFun (wlr_xdg_surface.c:464)
       by 0x48EA3D6: xdg_surface_handle_resource_destroy (wlr_xdg_surface.c:282)
       by 0x4877899: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x487DEBF: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x487E3DF: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x487830D: wl_client_destroy (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x48783F6: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x487B1C9: wl_event_loop_dispatch (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x4878D36: wl_display_run (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x110DAC: main (main.c:81)
     Block was alloc'd at
       at 0x48435FF: calloc (vg_replace_malloc.c:1117)
       by 0x113E22: xdg_surface_new (xdg.c:401)
       by 0x4906FDD: wlr_signal_emit_safe (signal.c:29)
       by 0x48EABE7: handle_xdg_surface_commit (wlr_xdg_surface.c:331)
       by 0x4908FE7: surface_commit_state (wlr_surface.c:457)
       by 0x524DD49: ??? (in /usr/lib/libffi.so.8.1.0)
       by 0x524D266: ??? (in /usr/lib/libffi.so.8.1.0)
       by 0x487D322: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x48785CB: ??? (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x487B1C9: wl_event_loop_dispatch (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x4878D36: wl_display_run (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x110DAC: main (main.c:81)

    Invalid write of size 8
       at 0x487DF27: wl_list_remove (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x4906FF0: wlr_signal_emit_safe (signal.c:32)
       by 0x48F5529: UnknownInlinedFun (wlr_input_device.c:34)
       by 0x48F5529: wlr_input_device_destroy (wlr_input_device.c:29)
       by 0x48CE4B5: backend_destroy.part.0.lto_priv.0 (backend.c:148)
       by 0x48D2D55: multi_backend_destroy (backend.c:59)
       by 0x48788FE: wl_display_destroy (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x110E71: UnknownInlinedFun (server.c:406)
       by 0x110E71: main (main.c:83)
     Address 0xc466568 is 24 bytes inside a block of size 56 free'd
       at 0x484118B: free (vg_replace_malloc.c:755)
       by 0x4906FDD: wlr_signal_emit_safe (signal.c:29)
       by 0x48F5529: UnknownInlinedFun (wlr_input_device.c:34)
       by 0x48F5529: wlr_input_device_destroy (wlr_input_device.c:29)
       by 0x48CE4B5: backend_destroy.part.0.lto_priv.0 (backend.c:148)
       by 0x48D2D55: multi_backend_destroy (backend.c:59)
       by 0x48788FE: wl_display_destroy (in /usr/lib/libwayland-server.so.0.20.0)
       by 0x110E71: UnknownInlinedFun (server.c:406)
       by 0x110E71: main (main.c:83)
     Block was alloc'd at
       at 0x48435FF: calloc (vg_replace_malloc.c:1117)
       by 0x11590F: new_input_notify (seat.c:137)
       by 0x4906FDD: wlr_signal_emit_safe (signal.c:29)
       by 0x4906FDD: wlr_signal_emit_safe (signal.c:29)
       by 0x48CDCEE: UnknownInlinedFun (events.c:109)
       by 0x48CDCEE: UnknownInlinedFun (events.c:242)
       by 0x48CDCEE: UnknownInlinedFun (backend.c:58)
       by 0x48CDCEE: handle_libinput_readable (backend.c:48)
       by 0x48CE1BE: backend_start.lto_priv.0 (backend.c:114)
       by 0x48D2CE5: multi_backend_start (backend.c:33)
       by 0x110C45: UnknownInlinedFun (server.c:375)
       by 0x110C45: main (main.c:68)

4 years agoFix coding style
Johan Malm [Sun, 26 Dec 2021 23:29:01 +0000 (23:29 +0000)]
Fix coding style

4 years agoCONTRIBUTING.md: wrap commit messages at 74 characters
Johan Malm [Sun, 26 Dec 2021 23:14:21 +0000 (23:14 +0000)]
CONTRIBUTING.md: wrap commit messages at 74 characters

4 years agoDelete .clang-format
Johan Malm [Sun, 26 Dec 2021 23:10:39 +0000 (23:10 +0000)]
Delete .clang-format

The file is not accurate and clang-format cannot describe our coding
style

4 years agodocs/rc.xml.all: update with default mouse-bindings
Johan Malm [Sun, 26 Dec 2021 23:02:07 +0000 (23:02 +0000)]
docs/rc.xml.all: update with default mouse-bindings

4 years agobuild: use wlroots 0.15.0
Johan Malm [Sun, 26 Dec 2021 22:42:51 +0000 (22:42 +0000)]
build: use wlroots 0.15.0

4 years agocursor: add cursor_update_focus()
Johan Malm [Sun, 26 Dec 2021 22:09:41 +0000 (22:09 +0000)]
cursor: add cursor_update_focus()

...and call it from desktop_move_to_front() in order force an enter event
on the surface below the cursor when cycling views.

Inspired by PR #164 - just restructured it a bit.

Suggested-by: @bi4k8
4 years agocursor: fix setting of resize_edges
Johan Malm [Sun, 26 Dec 2021 21:35:37 +0000 (21:35 +0000)]
cursor: fix setting of resize_edges

Only calculate nearest `resize_edges` if not clear from the server-side
deco under the cursor.

4 years agodocument mouse buttons and newly-supported mouse contexts
bi4k8 [Sat, 11 Dec 2021 22:57:47 +0000 (22:57 +0000)]
document mouse buttons and newly-supported mouse contexts

4 years agoadd mouse bindings for window edges to rc.xml.all
bi4k8 [Sat, 11 Dec 2021 22:57:22 +0000 (22:57 +0000)]
add mouse bindings for window edges to rc.xml.all

4 years agomove edge resizing from hard-coded to configuration
bi4k8 [Sat, 11 Dec 2021 22:49:28 +0000 (22:49 +0000)]
move edge resizing from hard-coded to configuration

4 years agoimplement corner/edge mouse contexts
bi4k8 [Sat, 11 Dec 2021 22:48:28 +0000 (22:48 +0000)]
implement corner/edge mouse contexts

4 years agoCheck the return value of wlr_output_layout_get() for NULL
John Lindgren [Fri, 24 Dec 2021 20:53:49 +0000 (15:53 -0500)]
Check the return value of wlr_output_layout_get() for NULL

wlr_output_layout_get() seems to return NULL for disabled outputs.

Fixes: #174
4 years agoProofread README.md
John Lindgren [Fri, 24 Dec 2021 19:33:54 +0000 (14:33 -0500)]
Proofread README.md

I couldn't help but notice some typos in README.md, and figured I might
as well fix them.

Spelling:

    simplicy -> simplicity
    inteded -> intended
    if -> is

Compound words:

    light-weight -> lightweight
    wall-paper -> wallpaper
    re-inventing -> reinventing
    re-loaded -> reloaded

Grammar/usage:

    & -> and
    binds -> bindings
    missing "the"

4 years agoview.c: end interactive mode when maximizing a view
ARDiDo [Thu, 23 Dec 2021 17:22:46 +0000 (12:22 -0500)]
view.c: end interactive mode when maximizing a view

4 years agodocs/rc.xml.all: Add focus + raise to TitleBar movement / maximize
Consolatis [Thu, 23 Dec 2021 04:58:28 +0000 (05:58 +0100)]
docs/rc.xml.all: Add focus + raise to TitleBar movement / maximize

4 years agoconfig/rcxml: Allow multiple <action>s inside of a <mousebind>
Consolatis [Thu, 23 Dec 2021 04:37:57 +0000 (05:37 +0100)]
config/rcxml: Allow multiple <action>s inside of a <mousebind>

Issue arises when using the default config from docs/rc.xml.all.
Without this patch only the last action defined inside a <mousebind>
will have an effect.

Without a config or when defining the same <mousebind> multiple times
with each containing only a single <action> the issue does not exist.

4 years agoImplement foreign toplevel close
Consolatis [Thu, 23 Dec 2021 11:24:24 +0000 (12:24 +0100)]
Implement foreign toplevel close

4 years agokeyboard: absolve release event if press was bound
Johan Malm [Tue, 21 Dec 2021 22:25:59 +0000 (22:25 +0000)]
keyboard: absolve release event if press was bound

When key press events are handled by compositor keybindings, do not
forward the corresponding release events to clients.

4 years agoOSD: fix stuck OSD when NumLock or CapsLock are activated
ARDiDo [Sat, 18 Dec 2021 15:33:56 +0000 (10:33 -0500)]
OSD: fix stuck OSD when NumLock or CapsLock are activated

4 years agobuild: bump wlroots dependency version number
ARDiDo [Fri, 17 Dec 2021 15:32:43 +0000 (10:32 -0500)]
build: bump wlroots dependency version number

4 years agocursor: scale xcursor for all output scales
ARDiDo [Fri, 17 Dec 2021 15:20:57 +0000 (10:20 -0500)]
cursor: scale xcursor for all output scales

4 years agoosd: fix crash when props are NULL
bi4k8 [Thu, 16 Dec 2021 16:24:13 +0000 (16:24 +0000)]
osd: fix crash when props are NULL

this happened while running Xwayland *over* waypipe, so is likely not a common case, but is possible

4 years agodocument Focus and Raise actions
bi4k8 [Sat, 11 Dec 2021 23:03:38 +0000 (23:03 +0000)]
document Focus and Raise actions

4 years agodocument Client/Frame/Desktop mouse contexts
bi4k8 [Sat, 11 Dec 2021 23:12:05 +0000 (23:12 +0000)]
document Client/Frame/Desktop mouse contexts

4 years agodocument Resize action
bi4k8 [Sat, 11 Dec 2021 22:58:00 +0000 (22:58 +0000)]
document Resize action

4 years agofix crash when a minimized window closes
bi4k8 [Sat, 11 Dec 2021 23:24:44 +0000 (23:24 +0000)]
fix crash when a minimized window closes

e.g., open an editor from a terminal, minimize it, then hit ^C in the terminal

simply don't unmap xdg or xwayland views if they are not currently marked as mapped

4 years agodocument tapButtonMap setting
bi4k8 [Sun, 12 Dec 2021 22:12:46 +0000 (22:12 +0000)]
document tapButtonMap setting

4 years agoimplement libinput tapButtonMap setting
bi4k8 [Sun, 12 Dec 2021 22:12:30 +0000 (22:12 +0000)]
implement libinput tapButtonMap setting

this is a standard libinput setting that was not previously exposed

4 years agoConfig: add OSD font configuration
ARDiDo [Mon, 6 Dec 2021 22:44:28 +0000 (17:44 -0500)]
Config: add OSD font configuration

4 years agodesktop: rename functions to increase consistency
Johan Malm [Mon, 6 Dec 2021 21:23:49 +0000 (21:23 +0000)]
desktop: rename functions to increase consistency

...from
- desktop_raise_view()
- desktop_move_view_to_end_of_cycle()

to
- desktop_move_to_front()
- desktop_move_to_back()

4 years agolabwc-action(5): add PreviousWindow
Johan Malm [Mon, 6 Dec 2021 21:13:21 +0000 (21:13 +0000)]
labwc-action(5): add PreviousWindow

4 years agodesktop: simplify desktop_move_view_to_end_of_cycle()
Johan Malm [Mon, 6 Dec 2021 21:07:08 +0000 (21:07 +0000)]
desktop: simplify desktop_move_view_to_end_of_cycle()

4 years agoquery passed prop, not 'title'
bi4k8 [Mon, 6 Dec 2021 20:16:30 +0000 (20:16 +0000)]
query passed prop, not 'title'

4 years agomove windows to back of cycle when they are minimized
bi4k8 [Fri, 3 Dec 2021 02:36:38 +0000 (02:36 +0000)]
move windows to back of cycle when they are minimized

4 years agoimplement PreviousWindow action
bi4k8 [Fri, 3 Dec 2021 01:07:24 +0000 (01:07 +0000)]
implement PreviousWindow action

4 years agoraise activated foreign windows
bi4k8 [Mon, 6 Dec 2021 03:16:58 +0000 (03:16 +0000)]
raise activated foreign windows

this is required for taskbars to behave as expected

4 years agoFix typo in README
ARDiDo [Sun, 5 Dec 2021 15:13:34 +0000 (10:13 -0500)]
Fix typo in README

4 years agokeyboard: Remove redundant damage_all_outputs() call
John Lindgren [Sat, 4 Dec 2021 15:25:26 +0000 (10:25 -0500)]
keyboard: Remove redundant damage_all_outputs() call

It was already called earlier in handle_compositor_keybindings().

4 years agokeyboard: Allow canceling the Alt-Tab switcher with Escape
John Lindgren [Sat, 4 Dec 2021 15:22:34 +0000 (10:22 -0500)]
keyboard: Allow canceling the Alt-Tab switcher with Escape

This is a standard feature in most window managers (OpenBox
included) that allow window-switching via Alt-Tab.

4 years agoaction: Switch to next window when pressing Alt-Tab once
John Lindgren [Sat, 4 Dec 2021 15:06:21 +0000 (10:06 -0500)]
action: Switch to next window when pressing Alt-Tab once

In OpenBox (as in most other stacking window managers), pressing
Alt-Tab once will cycle to the next window.  This is especially
convenient in workflows which require switching back and forth
frequently between the two top windows.

4 years agocursor.c: fix switch statement indentation
Johan Malm [Fri, 3 Dec 2021 23:17:12 +0000 (23:17 +0000)]
cursor.c: fix switch statement indentation

4 years agointeractive.c: fix style
Johan Malm [Fri, 3 Dec 2021 23:15:28 +0000 (23:15 +0000)]
interactive.c: fix style

4 years agoCONTRIBUTING.md: add link to checkpatch.pl
Johan Malm [Fri, 3 Dec 2021 23:14:52 +0000 (23:14 +0000)]
CONTRIBUTING.md: add link to checkpatch.pl

4 years agoAdd CONTRIBUTING.md
Johan Malm [Fri, 3 Dec 2021 22:44:06 +0000 (22:44 +0000)]
Add CONTRIBUTING.md

4 years agodocs/rc.xml.all: add Client and Root mousebinds
Johan Malm [Fri, 3 Dec 2021 22:14:37 +0000 (22:14 +0000)]
docs/rc.xml.all: add Client and Root mousebinds

4 years agorcxml.c: set default Client Right/Middle Press
Johan Malm [Fri, 3 Dec 2021 22:11:09 +0000 (22:11 +0000)]
rcxml.c: set default Client Right/Middle Press

Raise+Focus, just as for Left Press

4 years agorcxml.c: add Alt-Left/Right to default mousebinds
Johan Malm [Fri, 3 Dec 2021 22:02:38 +0000 (22:02 +0000)]
rcxml.c: add Alt-Left/Right to default mousebinds

4 years agodocs/rc.xml.all: add Alt-Left/Right mousebinds
Johan Malm [Fri, 3 Dec 2021 21:56:21 +0000 (21:56 +0000)]
docs/rc.xml.all: add Alt-Left/Right mousebinds

Alt-Left button for "Move"
Alt-Right button for "Resize"

4 years agoOSD: fix segfault when no app_id is set
ARDiDo [Fri, 3 Dec 2021 21:16:59 +0000 (16:16 -0500)]
OSD: fix segfault when no app_id is set

4 years agoaction: If we have a view that is an activator, use that instead of the current focus...
Joshua Ashton [Fri, 3 Dec 2021 16:37:53 +0000 (16:37 +0000)]
action: If we have a view that is an activator, use that instead of the current focus window

If we don't switch focus, we want the close button to close the window associated with it, not the current focus window.

Signed-off-by: Joshua Ashton <joshua@froggi.es>