aboutsummaryrefslogtreecommitdiff
path: root/include/sway
AgeCommit message (Collapse)Author
2018-07-16Implement no_focus commandRyan Dwyer
2018-07-15Make focus part of transactionsRyan Dwyer
Rather than maintain copies of the entire focus stack, this PR transactionises the focus by introducing two new properties to the container state and using those when rendering. * `bool focused` means this container has actual focus. Only one container should have this equalling true in its current state. * `struct sway_container *focus_inactive_child` points to the immediate child that was most recently focused (eg. for tabbed and stacked containers).
2018-07-15Merge pull request #2272 from RyanDwyer/simplify-transactionsDrew DeVault
Simplify transactions by using a dirty flag on containers
2018-07-14Add extended debugging flagsDrew DeVault
We currently have several ways of setting debug flags, including command line arguments, environment variables, and compile-time macros. This replaces the lot with command line flags.
2018-07-14Simplify transactions by utilising a dirty flag on containersRyan Dwyer
This PR changes the way we handle transactions to a more simple method. The new method is to mark containers as dirty from low level code (eg. arranging, or container_destroy, and eventually seat_set_focus), then call transaction_commit_dirty which picks up those containers and runs them through a transaction. The old methods of using transactions (arrange_and_commit, or creating one manually) are now no longer possible. The highest-level code (execute_command and view implementation handlers) will call transaction_commit_dirty, so most other code just needs to set containers as dirty. This is done by arranging, but can also be done by calling container_set_dirty.
2018-07-14Implement tap_button_map for input devicesBrian Ashworth
2018-07-13Merge pull request #2252 from rkubosz/scroll-button-optionDrew DeVault
feature: scroll button option for input devices
2018-07-12Don't disable borders for xwayland floating viewsemersion
2018-07-11add scroll button optionRobert Kubosz
This commit introduces a scroll_button option, which is intended to be used with scroll_method. Now user can edit his sway config and add an scroll_button option to device section.
2018-07-10Remove `clipboard` command and `get_clipboard` messageemersion
2018-07-10Add get_config message type to ipcIan Fan
2018-07-09Remove duplicate function declaration and add assertionRyan Dwyer
2018-07-09Implement some floating move commandsRyan Dwyer
This implements the following for floating containers: * move <direction> <amount> * move [absolute] position <x> <y> * move [absolute] position mouse
2018-07-07Split rendereremersion
2018-07-06Merge pull request #2206 from martinetd/leaksDrew DeVault
Fix a bunch of leaks
2018-07-06Merge branch 'master' into leaksemersion
2018-07-07Use opaque region to determine if frame done should be sentRyan Dwyer
2018-07-05Implement mode --pango_markupBrian Ashworth
2018-07-05cmd_results_to_json: return copied string and properly free the jsonDominique Martinet
The only user of this function would copy the string right away to get rid of the const flag anyway, and freeing a const string afterwards might work but is not meant to be done according to the json-c API.
2018-07-04ipc-server: add display destroy listener and remove ipc_terminateDominique Martinet
wl_event_source_remove() is illegal after display has been destroyed, so just destroy everything when we still can. ==20392==ERROR: AddressSanitizer: heap-use-after-free on address 0x607000001240 at pc 0x00000048e86e bp 0x7ffe4b557e00 sp 0x7ffe4b557df0 READ of size 8 at 0x607000001240 thread T0 #0 0x48e86d in wl_list_insert ../common/list.c:149 #1 0x7fdf673d4d7d in wl_event_source_remove src/event-loop.c:487 #2 0x41b742 in ipc_terminate ../sway/ipc-server.c:94 #3 0x40b1ad in main ../sway/main.c:440 #4 0x7fdf6664c18a in __libc_start_main ../csu/libc-start.c:308 #5 0x409359 in _start (/opt/wayland/bin/sway+0x409359) 0x607000001240 is located 48 bytes inside of 72-byte region [0x607000001210,0x607000001258) freed by thread T0 here: #0 0x7fdf692c4880 in __interceptor_free (/lib64/libasan.so.5+0xee880) #1 0x7fdf673d371a in wl_display_destroy src/wayland-server.c:1097 previously allocated by thread T0 here: #0 0x7fdf692c4c48 in malloc (/lib64/libasan.so.5+0xeec48) #1 0x7fdf673d4d9e in wl_event_loop_create src/event-loop.c:522 #2 0x40acb2 in main ../sway/main.c:363 #3 0x7fdf6664c18a in __libc_start_main ../csu/libc-start.c:308
2018-07-02idle_inhibit: move server data to its own structDominique Martinet
2018-07-02idle_inhibit: stop inhibitor when views become invisibleDominique Martinet
2018-07-02Add idle inhibit unstable v1 supportDominique Martinet
2018-06-30sway views: add helpers to get view and layer from wlr_surfaceDominique Martinet
2018-06-30Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-30Revert "Don't unmaximize floating views"Rostislav Pehlivanov
This reverts commit 97672295ed50d1d6272876c4a3b6b5607cab05c6.
2018-06-29Render saved buffers with the surface's dimensionsRyan Dwyer
2018-06-29Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-29Add comment about usage to arrange_windows declarationRyan Dwyer
2018-06-27Allow views to skip configuresRyan Dwyer
To do this properly, the transaction queue will only be processed if it can be completely processed.
2018-06-27Fix memleak in container_get_boxRyan Dwyer
Rather than allocate a structure and expect callers to free it, take a pointer to an existing struct as an argument. This function is no longer called anywhere though.
2018-06-27Remove transaction_add_damageRyan Dwyer
Instead, damage each container when applying the transaction.
2018-06-27Merge branch 'master' into xwayland-wants-floatRyan Dwyer
2018-06-26layer_shell: order destroying before sway_outputDominique Martinet
Both sway_output and sway_layer_shell listen to wlr's output destroy event, but sway_layer_shell needs to access into sway_output's data strucure and needs to be destroyed first. Resolve this by making sway_layer_shell listen to a new event that happens at start of sway_output's destroy handler
2018-06-26Remove incorrect assertion and supporting codeRyan Dwyer
Children can exist when destroying a container, such as when destroying the last output. Sway is not terminating in that case.
2018-06-26Rename view's free callback to destroyRyan Dwyer
2018-06-26Damage output when a fullscreen view unmapsRyan Dwyer
Also moved the arranging into view_unmap to avoid excessive code duplication.
2018-06-25Implement transaction timings debugRyan Dwyer
Launch sway with SWAY_DEBUG=txn_timings to enable it.
2018-06-24Implement atomic layout updates for xwayland viewsRyan Dwyer
2018-06-24Force transactions to complete in orderRyan Dwyer
This forces transactions to complete in order by using a singly linked list stored in the sway server.
2018-06-23Fix crash when deleting last child in a tabbed or stacked containerRyan Dwyer
There was no `current` child because the container was destroyed. This makes it fall back to looking in the parent's current children list.
2018-06-23Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-23Implement atomic layout updates for tree operationsRyan Dwyer
This implements atomic layout updates for when views map, reparent or unmap.
2018-06-19Perform (partial) server initialization before dropping privileges.Tobias Blass
Some operations during backend creation (e.g. becoming DRM master) require CAP_SYS_ADMIN privileges. At this point, sway has dropped them already, though. This patch splits the privileged part of server_init into its own function and calls it before dropping its privileges. This fixes the bug with minimal security implications.
2018-06-18Automatically float xwayland windowsemersion
2018-06-18Preserve buffers during transactionsRyan Dwyer
* Also fix parts of the rendering where it was rendering the pending state instead of current.
2018-06-18Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-12Fix keyboard shortcut handling inconsistenciesfrsfnrrg
* Ensure that modifier keys are identified even when the next key does not produce a keysym. This requires that modifier change tracking be done for each sway_shortcut_state. * Permit regular and --release shortcuts on the same key combination. Distinct bindings are identified for press and release cases; note that the release binding needs to be identified for both key press and key release events. * Maintain ascending sort order for the shortcut state list, and keep track of the number of pressed key ids, for simpler (and hence faster) searching of the list of key bindings. * Move binding duplicate detection into get_active_binding to avoid duplicating error messages.
2018-06-12Sort binding key listsfrsfnrrg
Sort the list comprising the set of keys for the binding in ascending order. (Keyboard shortcuts depend only on the set of simultaneously pressed keys, not their order, so this change should have no external effect.) This simplifies comparisons between bindings.
2018-06-11Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer