Previously mosuebinds for the same context using the same button
but different modifiers would be merged, e.g. only the last one
would survive the merge. This commit adds the missing check for
keyboard modifiers.
Fixes#630
Reported-by: @lidgnulinux
This ensures that those surprised by the deprecation of SUID operation
receive an error rather than accidentally having run as root.
swaywm/sway@e572805
Mouse bindings, unlike key bindings, are made within contexts which
represent what was clicked/dragged. The context 'Frame' refers to the
entire window frame including both the window decorations (if any) and the
client window itself. It is typically used for alti + left/right click to
move/resize the window.
'Frame' is a special case in that when a button is bound in this
context, the action will not be forwarded to the client, which is what
we describe with the 'consumed_by_frame_context' variable.
Currently, the `rc.xml` parser applies font settings in a `<font>` tag with an
unknown value for its `place` attribute to all fonts. This means that whatever
the final unknown-`place` `<font>` tag is in a user's `rc.xml` applies to all
text drawn by labwc.
Instead, only treat `<font>` tags with an empty or missing `place` attribute as
applying globally, and warn when encountering unknown `place` attribute values
(which will help us find font places to support).
Each XWayland view is paired with a particular wlr_xwayland_surface and
its lifetime is tied to that surface. This condition in handle_map():
if (xsurface != view->xwayland_surface)
could never be true since the view is only registered to receive the
"map" signal from view->xwayland_surface, and no other. So the code
updating view->xwayland_surface in handle_map() was dead.
So let's clean things up a little:
- Remove the dead code
- Add some comments, and slightly rearrange code to match
- Add/update assert()s in signal handlers for consistency
- Pass xsurface as <data> when calling handle_unmap() and
handle_destroy() explicitly, to be consistent
Coding style specific changes include:
- Accept pango, glib and libxml2 CamelCase variables
- Remove "need consistent spacing around '*'" warning
- Do not warn about "structs that should be const"
- Do not warn on braces {} around single statements
- Do not warn about braces {} for single statement blocks
- Do not warn about wanting { on previous line for functions
- Remove check for missing blank line after declaration
- Ignore SPLIT_STRING COMPLEX_MACRO PREFER_KERNEL_TYPES
LOGICAL_CONTINUATIONS PARENTHESIS_ALIGNMENT OPEN_ENDED_LINE
MACRO_ARG_REUSE PREFER_FALLTHROUGH ARRAY_SIZE INITIALISED_STATIC
Other changes include:
- Do not complain about missing spelling.txt
- Print filename for each file, but no summary line
This fixes an assert on output test when
running with the headless backend.
To update the wlroots subproject use
meson subprojects update wlroots
Chases wlroots 05454618cd2d49fb3a5f0c560b0d2c455cf32467
xwayland: split headers
Fixes#605
It seems that every Wayland client is expected to implement its own
key-repeat logic, rather than doing it server-side as in X11. This
means that labwc also has to implement its own key-repeat logic for
compositor keybindings.
This is a very simplistic timer-based implementation. It doesn't
attempt to synthesize accurate timestamps, and may lag depending
on system load, but it appears to get the job done.
v2: Use server->wl_event_loop
v3: Comments and formatting
...in support to specifying 'left', 'right' and so on with actions
GoToDesktop and SendToDesktop.
For example:
<mouse>
<default/>
<context name="Desktop">
<mousebind button="Up" action="Scroll">
<action name="GoToDesktop" to="left"/>
</mousebind>
<mousebind button="Down" action="Scroll">
<action name="GoToDesktop" to="right"/>
</mousebind>
</context>
</mouse>
Since xwayland commit 9e4b7948df5a9a67632bb606150ec171b5519672
there is a one-second delay between XWayland surfaces being
unmapped and destroyed. This revealed that we were not actually
handling the unmap() signal correctly for unmanaged surfaces.
...to the pid of the compositor so that SIGHUP and SIGTERM can be sent to
specific instances using `kill -s <signal> <pid>` rather than
`killall -s <signal> labwc`
Issue #573
@Consolatis determined that apparently the extra "clear focus"
event confuses the drag source during drag-and-drop.
Fixes drag-and-drop of files into folders within the same Thunar
window.
This fixes an issue of unreadable displays in some
multiple output configurations.
To update the wlroots subproject use
meson subprojects update wlroots
Chases wlroots 694e9bbb9d7114f39311d93e885e010606a88dae
backend/drm: allocate connector CRTC on lease creation
Fixes#583
- Clarify the coding style relative to Linux kernel and Devault rules
- Add g_pattern_match_simple() example
- Add namespace advice and preference
- Elaborate on preferred header documentation style.
- Add table of contents
- Simplify API section and add wl_list_append()
To update the wlroots subproject use
meson subprojects update wlroots
Chases wlroots 68c8cef38edafa5e52532e0b43a4888554168361
cursor: Don't warp to (0,0) when last output is disconnected
Fixes#561