user-defined region), the snapped state is now discarded as soon as the
dragging begins. This means that dragging from a snapped position to a
maximized state (with the `topMaximize` option enabled) and then
- un-maxmimizing the window will restore the window to its size and position
+ un-maximizing the window will restore the window to its size and position
*before* it was snapped. In previous releases, un-maximizing would restore
the window to its snapped state. To preserve the snapped state of a window
when maximized, use the Maximize window button or the `ToggleMaximize`
</resistance>
```
-- Run menu actions on button release intead of press.
+- Run menu actions on button release instead of press.
- Constrain window size to that of usable area when an application is started.
Issue #1399
- Support showing the full `app_id` in the window switcher. Users with a custom
for it in the client-menu under the Workspaces submenu. Written-by: @bnason
- Account for space taken up by XWayland clients with `_NET_WM_STRUT_PARTIAL`
property in the `usable_area` calculation. This increases inter-operability
- with X11 desktop componenets.
+ with X11 desktop components.
- Set XWayland's `_NET_WORKAREA` property based on usable area. XWayland
clients use the `_NET_WORKAREA` root window property to determine how much of
the screen is not covered by panels/docks. The property is used for example
- Do not reset XWayland window SSD on unminimize
- Keep XWayland stacking order in sync when switching workspaces
-- Update top-layer visiblity on workspace-switch in order to show
+- Update top-layer visibility on workspace-switch in order to show
top-layer layer-shell clients correctly when there is a window in
fullscreen mode on another workspace. Issues: #1040 #1158
- Make interactive window snapping with mouse more intuitive in
- xwayland: fix client request-unmap bug relating to foreign-toplevel handle
- xwayland: fix race condition resulting in map view without surface
- Limit SSD corner radius to the height of the titlebar
-- Fix rounded-corner bug producing weird artefacts when very large border
+- Fix rounded-corner bug producing weird artifacts when very large border
thickness is used. Fixes #988
- Ensure `string_prop()` handlers deal with destroying views. Fixes #1082
- Fix SSD thickness calculation bug relating to titlebar. Fixes #1083
- Add support for `ext_idle_notify` protocol.
- Window-switcher: #879 #969
- - Set item-height based on font-heigth
+ - Set item-height based on font-height
- Add theme option:
- osd.window-switcher.width
- osd.window-switcher.padding
- Prevent re-focus for always-on-top views when switching workspaces.
Written-by: @Consolatis
- Make sure a default libinput category always exists to avoid devices not
- being configured is some insances. Written-by: @jlindgren90
+ being configured is some instances. Written-by: @jlindgren90
- Update cursor if it is within the OSD area when OSD appears/disappears.
Written-by: @bi4k8
- Provide generic parsing of XML action arguments to enable the use of the
of outlines. Written-by: @Flrian
- Render submenu arrows
- Allow highest level menu definitions - typically used for root-menu and
- client-menu - to be defined without label attritube, for example like this:
+ client-menu - to be defined without label attribute, for example like this:
`<openbox_menu><menu id="root-menu">...</menu></openbox>`. Issue #472
- Allow xdg-desktop-portal-wlr to work out of the box by initializing dbus
and systemd activation environment. This enables for example OBS Studio
- Enable tap be default on non-touch devices (which some laptop trackpads
apparently are)
- Handle missing cursor theme (issue #246). Written-by: @Consolatis
-- Fix various surface syncronization, stacking, positioning and focus
+- Fix various surface synchronization, stacking, positioning and focus
issues, including those related to both xwayland, scroll/drag events
and also #526 #483
- On first map, do not center xwayland views with explicitly specified
focused view.
- Gracefully handle dying client during interactive move.
Written-by: @Consolatis
-- Dynamically adjust server-side-deccoration invisible resize areas based
+- Dynamically adjust server-side-decoration invisible resize areas based
on `usable_area` to ensure that cursor events are sent to clients such as
panels in preference to grabbing window edges. Fixes #265.
Written-by: @Consolatis
unmaximized geometry is known when started in maximized mode.
Fixes issue #305. Reported-by: @01micko
- Support `<menu><item><action name="Execute"><execute>`
- `<exectue>` is a deprecated name for `<command>`, but is supported for
+ `<execute>` is a deprecated name for `<command>`, but is supported for
backward compatibility with old menu-generators.
- Keep xwayland-shell SSD state on unmap/map cycle.
Written-by: @Consolatis
- Call foreign-toplevel-destroy when unmapping xwayland surfaces because
some xwayland clients leave unmapped child views around. Although
`handle_destroy()` is not called for these, we have to call
- foreign-toplevel-destroy to avoid clients such as panels incorrecly
+ foreign-toplevel-destroy to avoid clients such as panels incorrectly
showing them.
- Handle xwayland `set_override_redirect` events to fix weird behaviour
with gitk menus and rofi.
Fixes #352 relating to JetBrains and Intellij focus issues
Written-by: Jelle De Loecker
- Do not segfault on missing drag icon. Written-by: @Consolatis
-- Fix windows irratically sticking to edges during move/resize.
+- Fix windows erratically sticking to edges during move/resize.
Fixes issues #331 and #309
## [0.5.2] - 2022-05-17
Openbox spec is somewhat of a stable standard considering how long it has
remained unchanged for and how wide-spread its adoption is by lightweight
-distributions such as LXDE, LXQt, BunsenLabs, ArchLabs, Mabox and Raspian. Some
+distributions such as LXDE, LXQt, BunsenLabs, ArchLabs, Mabox and Raspbian. Some
widely used themes (for example Numix and Arc) have built-in support.
We could have invented a whole new syntax, but that's not where we want to
##
## This allows xdg-desktop-portal-wlr to function (e.g. for screen-recording).
## It is automatically set to "wlroots" by labwc though, so it is only
-## includeded here for completeness. Again, labwc will not over-write an
+## included here for completeness. Again, labwc will not over-write an
## already set environment variable, so if you need it set to something else,
## then uncomment and adjust.
##
*<margin top="" bottom="" left="" right="" output="" />*
Specify the number of pixels to reserve at the edges of an output
- (typically a dislay/screen/monitor). New, maximized and tiled windows
+ (typically a display/screen/monitor). New, maximized and tiled windows
will not be placed in these areas. The use-case for *<margin>* is as a
workaround for clients such as panels that do NOT support the
wlr-layer-shell protocol.
# SESSION MANAGEMENT
-To enable the use of graphical clients launched via D-Bus or systemd servie
+To enable the use of graphical clients launched via D-Bus or systemd service
activation, labwc can update both activation environments on launch. Provided
that labwc is aware of an active D-Bus user session (*i.e.*, the environment
variable `DBUS_SESSION_BUS_ADDRESS` is defined), the compositor will invoke the
</mouse>
<!--
- A touch configuration can be bound to a specifc device. If device
+ A touch configuration can be bound to a specific device. If device
name is left empty, the touch configuration applies to all touch
devices or functions as a fallback. Multiple touch configurations
can exist.
* @buf: Buffer to fill with the full filename
* @len: Length of buffer
*
- * Example return value: /usr/share/themes/Numix/openbox-3/iconfify.xbm
+ * Example return value: /usr/share/themes/Numix/openbox-3/iconify.xbm
*/
void button_filename(const char *name, char *buf, size_t len);
#define LABWC_SPAWN_H
/**
- * spawn_async_no_shell - execute asyncronously
+ * spawn_async_no_shell - execute asynchronously
* @command: command to be executed
*/
void spawn_async_no_shell(char const *command);
struct server;
/**
- * session_environment_init - set enrivonment variables based on <key>=<value>
- * pairs in `${XDG_CONFIG_DIRS:-/etc/xdg}/lawbc/environment` with user override
+ * session_environment_init - set environment variables based on <key>=<value>
+ * pairs in `${XDG_CONFIG_DIRS:-/etc/xdg}/labwc/environment` with user override
* in `${XDG_CONFIG_HOME:-$HOME/.config}`
*/
void session_environment_init(void);
/*
* The relay structure manages the relationship between text-inputs and
* input-method on a given seat. Multiple text-inputs may be bound to a relay,
- * but at most one will be "active" (commucating with input-method) at a time.
+ * but at most one will be "active" (communicating with input-method) at a time.
* At most one input-method may be bound to the seat. When an input-method and
* an active text-input is present, the relay passes messages between them.
*/
* Virtual keyboards should not belong to seat->keyboard_group. As a result we
* need to be able to ascertain which wlr_keyboard key/modifier events come from
* and we achieve that by using `struct keyboard` which inherits `struct input`
- * and adds keybord specific listeners and a wlr_keyboard pointer.
+ * and adds keyboard specific listeners and a wlr_keyboard pointer.
*/
struct keyboard {
struct input base;
* a. that have been created but never mapped;
* b. set to NULL after client minimize-request.
*
- * The only views that are allowed to be focusd are those that have a surface
+ * The only views that are allowed to be focused are those that have a surface
* and have been mapped at some point since creation.
*/
bool view_is_focusable(struct view *view);
assert(nearest_edges);
if (!output_is_usable(view->output)) {
- wlr_log(WLR_DEBUG, "ignoring edge search for view on unsable output");
+ wlr_log(WLR_DEBUG, "ignoring edge search for view on unusable output");
return;
}
if (!output_is_usable(view->output)) {
wlr_log(WLR_DEBUG,
- "ignoring edge search for view on unsable output");
+ "ignoring edge search for view on unusable output");
return;
}
return 0.5 * (y1 + y2);
}
- /* Othewise, linearly interpolate */
+ /* Otherwise, linearly interpolate */
int dx = x - x1;
return y1 + dx * (rise / (double)run);
}
}
/*
- * Cancels interative move/resize without changing the state of the of
+ * Cancels interactive move/resize without changing the state of the of
* the view in any way. This may leave the tiled state inconsistent with
* the actual geometry of the view.
*/
*
* Openbox spec requires a label="" defined here, but it is
* actually pointless so we handle it with or without the label
- * attritute to make it easier for users to define "root-menu"
+ * attribute to make it easier for users to define "root-menu"
* and "client-menu".
*/
struct menu **submenu = NULL;
wlr_output_set_name(wlr_output, output_name);
}
if (store_wlr_output) {
- /* Ensures that we can use the new wlr_output pointer within new_output_nofity() */
+ /* Ensures that we can use the new wlr_output pointer within new_output_notify() */
*store_wlr_output = wlr_output;
}
new_output_notify(struct wl_listener *listener, void *data)
{
/*
- * This event is rasied by the backend when a new output (aka display
+ * This event is raised by the backend when a new output (aka display
* or monitor) becomes available.
*/
struct server *server = wl_container_of(listener, server, new_output);
return nviews;
}
-/* Sort and de-deplicate a list of points that define a 1-D grid */
+/* Sort and de-duplicate a list of points that define a 1-D grid */
static int
order_grid(int *edges, int nedges)
{
* that some libinput setting could not be applied.
*
* TODO: We are currently using int32_t with -1 as default
- * to desribe the not-configured state. This is not
+ * to describe the not-configured state. This is not
* really optimal as we can't properly deal with
* enum values that are 0. After some discussion via
* IRC the best way forward seem to be to use a
/*
* We use the following button filename schema: "BUTTON [TOGGLED] [STATE]"
- * with the words separted by underscore, and the following meaning:
+ * with the words separated by underscore, and the following meaning:
* - BUTTON can be one of 'max', 'iconify', 'close', 'menu'
* - TOGGLED is either 'toggled' or nothing
* - STATE is 'hover' or nothing. In future, 'pressed' may be supported too.
* We handle the edge-case where line-thickness > radius by merely
* setting line-thickness = radius and in effect drawing a quadrant of a
* circle. In this case the X and Y borders butt up against the arc and
- * overlap each other (as their line-thickessnes are greater than the
- * linethickness of the arc). As a result, there is no inner rounded
+ * overlap each other (as their line-thicknesses are greater than the
+ * line-thickness of the arc). As a result, there is no inner rounded
* corners.
*
* So, in order to have inner rounded corners cornerRadius should be
* wlr_xdg_toplevel_set_size and will send the retained
* values with every subsequent configure request. If a
* client has resized itself in the meantime, a
- * configure request that sends the now-outated size
+ * configure request that sends the now-outdated size
* may prompt the client to resize itself unexpectedly.
*
* Calling wlr_xdg_toplevel_set_size to update the
* This event is raised when a client would like to begin an interactive
* move, typically because the user clicked on their client-side
* decorations. Note that a more sophisticated compositor should check
- * the provied serial against a list of button press serials sent to
+ * the provided serial against a list of button press serials sent to
* this client, to prevent the client from requesting this whenever they
* want.
*/
* This event is raised when a client would like to begin an interactive
* resize, typically because the user clicked on their client-side
* decorations. Note that a more sophisticated compositor should check
- * the provied serial against a list of button press serials sent to
+ * the provided serial against a list of button press serials sent to
* this client, to prevent the client from requesting this whenever they
* want.
*/