aboutsummaryrefslogtreecommitdiff
path: root/rootston
AgeCommit message (Collapse)Author
2018-07-29reintroduce xwayland is_unmanagedMarkus Ongyerth
153f37bdf57c61e7fb09162a6791afe8b9b4d0ef (#1145) removed the wlr_xwayland_is_unamanged function while fixing OR, because it was belieived that it's supposed to work around the broken OR handling. This was a misunderstanding. is_unmanaged is (while sort of a hack) intended to work around inherent differences between "real" X sessions and our Xwayland/wayland situation. The main reason it exists is to support applications like rofi and dzen, while not handing focus to other OR windows (which should *not* be required). Traditionally, these applications just grabbed input from X and didn't need to be focused by any logic in the WM. Which of course doesn't work in wayland compositors. So we have to give them focus in some way. Giving *every* OR window focus, breaks other applications that don't expect focus to change. A testcase that was pointed out to me where wlr_xwayland_is_unamanged was breaking things is https://github.com/swaywm/sway/issues/2128 (syncplay, gitk, gitgui) Supposedly it broke using keyboard to navigate the menus. I can't reproduce this with this patch. The popups can be navigated as long as the parent has focus.
2018-07-24rootston: Reap child processesGenki Sky
Just install a SIG_IGN handler, which is defined by POSIX.1-2001 to reap the child. To test, spawn any process (e.g. GUI application) with a keybinding, close that process, verify it doesn't show up as a <defunct> zombie in ps(1) output.
2018-07-19linux-dmabuf: add v1 suffixemersion
This prevents some future conflicts with the stable version. Fixes #1133
2018-07-18xwayland: handle override_redirect flag changesemersion
The override_redirect flag can change on configure notify and on map notify. This adds an event to know when it changes. This removes wlr_xwayland_surface_is_unmanaged which was wrongly using the window type to decide whether the view should be unmanaged. A similar patch was proposed to Weston, but has never been merged upstream [1]. [1]: https://patchwork.freedesktop.org/patch/211161/
2018-07-14propagate rename to rootston codeMarkus Ongyerth
2018-07-14rename wlr_tablet_tool to wlr_tabletMarkus Ongyerth
The previous naming was based on the input-device capability names from libinput. With code that uses the libinput_tablet_tool and mapping into tablet-v2, this is confusing, so the name is changed to follow the names used in the protocol.
2018-07-14Remove unused tablet_pad list from toolsMarkus Ongyerth
2018-07-14Another feedback passMarkus Ongyerth
2018-07-14Handle relative motion for mouse toolsMarkus Ongyerth
2018-07-14Send all tablet tool axis eventsMarkus Ongyerth
2018-07-14Fix clang build errorsMarkus Ongyerth
2018-07-14Hook up set_cursor in rootstonMarkus Ongyerth
2018-07-141st feedback passMarkus Ongyerth
Rename make_ functions to _create Implement set_cursor and set_feedback
2018-07-14Fix segfaultinessMarkus Ongyerth
2018-07-14Add tool buttonsMarkus Ongyerth
2018-07-14Propagate most axis events to clientsMarkus Ongyerth
2018-07-14Implement basic tablet_pad handling (bound to keyboard focus)Markus Ongyerth
2018-07-14Basic tablet_v2 object lifetimeMarkus Ongyerth
2018-07-09util: add wlr_ prefix to log symbolsemersion
2018-07-07Merge pull request #1095 from agx/output-add-modeDrew DeVault
Allow to add additional modes to outputs
2018-07-07rootston: use wl_list_empty instead of wl_list_length > 0Guido Günther
2018-07-07rootston: Handle modeline parameterGuido Günther
This allows to pass custom modes.
2018-07-04surface: move position and scale out of wlr_surface_stateemersion
2018-07-04surface: do not monkey-patch state damageemersion
2018-07-04surface: make pending and current embedded structsemersion
2018-07-04Fix damage tracking debug modeemersion
2018-06-30screencopy-v1: add basic implementationemersion
2018-06-30rootston: fix leak in handle_layer_shell_surfaceDominique Martinet
Found through static analysis
2018-06-24use seat function to end grabTony Crisci
2018-06-24Merge branch 'master' into cancel-grab-on-focus-changeTony Crisci
2018-06-17Merge branch 'master' into screencontentemersion
2018-06-13surface: remove wlr_surface.textureemersion
The texture is managed by the surface's wlr_buffer now. In particular, the buffer can destroy the texture early if it becomes invalid.
2018-06-10rootston: Cancel existing keyboard grab when changing focusGenki Sky
It's possible that a non-default keyboard grab exists when we are trying to change focus. For example, say there is an XDG popup when we click on a different window. This popup's keyboard grab will swallow any keyboard_notify_enter(), meaning the newly-clicked window won't receive keyboard input. So, we cancel any existing grabs in roots_seat_set_focus(). Before this fix, a window would have been set as active but not receive keyboard entry. Fixes #233. Signed-off-by: Genki Sky <sky@genki.is>
2018-06-08rootston: destroy xwayland before all clientsemersion
Destroying all clients disconnects the xwayland client, and xwayland automatically restarts when disconnected.
2018-06-06dont damage drag icon after update_positionTony Crisci
2018-06-05update drag position at the right timesTony Crisci
2018-06-05handle drag icon map in rootstonTony Crisci
2018-06-05rename drag-icon map to unmapTony Crisci
2018-06-01Add wlr_surface_get_geometryMarkus Ongyerth
This function defaults and clips the xdg-surface geometry to the bounding box of the surface + its subsurfaces, as specified by the protocol spec.
2018-05-31Merge branch 'master' into screencontentemersion
2018-05-30rootston: xdg-shell*: Fix get_size() for newly-mapped viewsGenki Sky
The user-visible issue is that newly-mapped xdg-shell* windows would sometimes start with their top-left-corner, rather than their center, in the center of the screen. This is because get_size() would conservatively fall back on (width, height) == (0, 0) if both set_window_geometry() had not been called, and it found view->wlr_surface to be NULL. But, view->wlr_surface is only set to non-NULL in view_map(). We call get_size() before this. Fortunately, the wlr_surface in question is accessible via view->xdg_shell{,_v6}->surface, so always fall back on that. We can assert its presence instead of further falling back on (width, height) == (0, 0). Signed-off-by: Genki Sky <sky@genki.is>
2018-05-29rootston: use wl_display_destroy_clientsemersion
2018-05-29rootston: enable export-dmabufemersion
2018-05-29Merge pull request #999 from dcz-purism/virtual-keyboardemersion
Support virtual keyboard protocol
2018-05-28virtual-keyboard: add support for the virtual-keyboard-v1 protocolDorota Czaplejewicz
2018-05-25Merge pull request #993 from emersion/bind-wl-drm-in-rendereremersion
render: bind wl_drm in renderer
2018-05-25backends: implement custom EGL and renderer initializationIlia Bozhinov
Compositors now have more control over how the backend creates its renderer. Currently all backends create an EGL/GLES2 renderer, so the necessary attributes for creating the context are passed to a user-provided callback function. It is responsible for initializing provided wlr_egl and to return a renderer. On fail, return 0. Fixes #987
2018-05-24rootston: Keep focus unchanged when non-focusable element clickedDorota Czaplejewicz
Before this change, a view would lose focus after clicking something that's not keyboard-interactive. This would lead to edge cases with layer-shell windows like input methods, which are pointer-only-interactive, but are not intended to change the state of any focus.
2018-05-24rootston: Disable keyboard focus on inactive viewsDorota Czaplejewicz
After clicking on something non-interactive, the current view was getting deactivated, but still received keyboard events. roots_seat_set_focus now changes both together in this case.
2018-05-21render: bind wl_drm in rendereremersion