aboutsummaryrefslogtreecommitdiff
path: root/sway/ipc-server.c
AgeCommit message (Collapse)Author
2018-08-25Rename sway_root.outputs to sway_root.all_outputsRyan Dwyer
This list includes disabled outputs. When sway_container is demoted, we'll need to store the root's children (ie. enabled outputs) in the sway_root. It makes sense to put these in a list called `outputs`, so I'm renaming the existing list in advance.
2018-08-18Implement iterators per container typeRyan Dwyer
This introduces the following `for_each` functions: * root_for_each_workspace * root_for_each_container * output_for_each_workspace * output_for_each_container * workspace_for_each_container And introduces the following `find` functions: * root_find_output * root_find_workspace * root_find_container * output_find_workspace * output_find_container * workspace_find_container * container_find_child And removes the following functions: * container_descendants * container_for_each_descendant * container_find This change is preparing the way for demoting sway_container. Eventually these functions will accept and return sway_outputs, sway_workspaces and sway_containers (meaning a C_CONTAINER or C_VIEW). This change also makes it easy to handle abnormalities like the workspace floating list, root's scratchpad list and (once implemented) root's saved workspaces list for when there's no connected outputs.
2018-08-11Remove container_for_each_descendant_bfsRyan Dwyer
The function was not used. Also renames container_for_each_descendant_dfs to just container_for_each_descendant.
2018-08-01ipc: remove extraneous valuesIan Fan
Removes IPC_EVENT_MODIFIER and IPC_EVENT_INPUT, which were sway-specific and unused
2018-08-01ipc: add tick eventIan Fan
2018-08-01ipc: always include old property in workspace eventsIan Fan
2018-08-01ipc: add binding eventIan Fan
2018-08-01ipc: add shutdown eventIan Fan
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-10Add get_config message type to ipcIan Fan
2018-07-10Add get_binding_modes message type to ipcIan Fan
2018-07-09Update for swaywm/wlroots#1126emersion
2018-07-06Merge branch 'master' into leaksemersion
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-05ipc-server: free clients at destroyDominique Martinet
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-02ipc-server: fix more use-after-frees on ipc_send_reply errorDominique Martinet
Since ipc_send_reply frees the client on error, we need to check the return value properly as we access client later on Found through static analysis.
2018-07-02ipc-server: minor code cleanupDominique Martinet
No logic change here, this one is mostly to please static analyzer: - client->fd can never be -1 (and if it could, close() a few lines below would have needed the same check) - we never send permission denied error (dead code)
2018-07-02ipc-server: fix double-free on send error in ipc_send_eventDominique Martinet
ipc_send_reply already does client disconnect on error, so we shouldn't do it again. We also need to process current index again as disconnect removes client from the list we currently are processing (this is an indexed "list") Found through static analysis.
2018-06-06Switch output storing from list_t to wl_listBrian Ashworth
2018-06-06Store sway_outputs so that they can be reenabledBrian Ashworth
2018-06-02Make command block implementation genericBrian Ashworth
2018-05-22Implement IPC_GET_MARKSBrian Ashworth
2018-05-12Implement IPC get_seats commandRyan Dwyer
2018-04-13Fix gcc string truncation warningsDominique Martinet
2018-04-05address feedbackTony Crisci
2018-04-05dont send ipc events when there are no listenersTony Crisci
2018-04-02rename input-manager functionsTony Crisci
2018-04-02rename seat functionsTony Crisci
2018-03-30Merge pull request #1669 from emersion/workspace-pointer-eventsDrew DeVault
Fix pointer events for hidden workspaces
2018-03-30Fix segfaults when focusing a workspaceemersion
2018-03-30IPC fixesDrew DeVault
2018-03-30Merge remote-tracking branch 'origin/wlroots' into swaybar-layersDrew DeVault
2018-03-29Revert "Merge pull request #1653 from swaywm/revert-1647-refactor-tree"Tony Crisci
This reverts commit 472e81f35d689d67cda241acafda91c688d61046, reversing changes made to 6b7841b11ff4cd35f54d69dc92029855893e5ce0.
2018-03-29Revert "Refactor tree"Drew DeVault
2018-03-29Move declaration into loopDrew DeVault
2018-03-29Exit ipc_get_workspace_callback earlyDrew DeVault
2018-03-29Implement modesDrew DeVault
2018-03-29Do some small cleanupDrew DeVault
- Fix workspace events (security config isn't in use so it wasn't being sent) - Kill status bar process when swaybar exits - Don't rearrange windows on every layer surface commit
2018-03-29Add bar configuration commandsDrew DeVault
2018-03-29Implement enough IPC for swaybar to workDrew DeVault
2018-03-29rename container functionsTony Crisci
2018-02-27ipc new window eventTony Crisci
2018-02-24take seat param for handle_command and renameTony Crisci
2018-02-14basic focus (without direction)Tony Crisci
2018-01-21clear handler context before ipc commandTony Crisci
2018-01-05sway: change all sway_log to wlr_logDominique Martinet
2017-12-18ipc get_inputsTony Crisci
2017-12-18Add IPC get_outputsemersion