Orestis Floros
38f28186ec
Remove some includes from all.h
...
Also removes duplicates from other headers
All used std* imports are included once in all.h for easy use
- getopt: Only used in main.c and inject_randr1.5.c
- glob: Not used in i3, only in i3bar & libi3
- inttypes: Only used in util.c
- locale: A bit specific for all.h
- math: Slow according to #4022
- unistd: I feel it's good to explicitly include per file that needs it
- yajl: Specific to yajl_utils.h and ipc.h
Related to #4022
Timing before:
```
Analyzing build trace from ...
**** Time summary:
Compilation (81 times):
Parsing (frontend): 51.3 s
Codegen & opts (backend): 7.7 s
**** Files that took longest to parse (compiler frontend):
1254 ms: build/src/i3-commands.o
972 ms: build/src/i3-resize.o
945 ms: build/src/i3-con.o
921 ms: build/src/i3-scratchpad.o
907 ms: build/src/i3-main.o
904 ms: build/src/i3-handlers.o
904 ms: build/src/i3-config_directives.o
893 ms: build/src/i3-restore_layout.o
875 ms: build/src/i3-x.o
854 ms: build/src/i3-ipc.o
**** Files that took longest to codegen (compiler backend):
863 ms: build/src/i3-commands.o
471 ms: build/i3bar/src/i3bar-xcb.o
377 ms: build/src/i3-con.o
360 ms: build/src/i3-ipc.o
306 ms: build/src/i3-x.o
290 ms: build/src/i3-main.o
238 ms: build/src/i3-config_parser.o
237 ms: build/src/i3-handlers.o
220 ms: build/i3-config-wizard/i3_config_wizard-main.o
214 ms: build/src/i3-bindings.o
**** Functions that took longest to compile:
209 ms: main (../../i3/src/main.c)
95 ms: manage_window (../../i3/src/manage.c)
57 ms: reconfig_windows (../../i3/i3bar/src/xcb.c)
55 ms: x_draw_decoration (../../i3/src/x.c)
49 ms: x_push_node (../../i3/src/x.c)
48 ms: handle_client_message (../../i3/src/handlers.c)
48 ms: dump_node (../../i3/src/ipc.c)
47 ms: GENERATED_call (../../i3/src/config_parser.c)
45 ms: config_string_cb (../../i3/i3bar/src/config.c)
44 ms: GENERATED_call (../../i3/src/commands_parser.c)
42 ms: floating_check_size (../../i3/src/floating.c)
40 ms: con_swap (../../i3/src/con.c)
40 ms: parse_config (../../i3/src/config_parser.c)
39 ms: main (../../i3/i3-nagbar/main.c)
39 ms: cmd_rename_workspace (../../i3/src/commands.c)
38 ms: window_update_normal_hints (../../i3/src/window.c)
38 ms: cmd_swap (../../i3/src/commands.c)
37 ms: dump_bar_config (../../i3/src/ipc.c)
36 ms: translate_keysyms (../../i3/src/bindings.c)
35 ms: tree_close_internal (../../i3/src/tree.c)
34 ms: match_matches_window (../../i3/src/match.c)
34 ms: floating_enable (../../i3/src/floating.c)
34 ms: json_string (../../i3/src/load_layout.c)
33 ms: x_push_changes (../../i3/src/x.c)
33 ms: main (../../i3/i3-config-wizard/main.c)
31 ms: free_configuration (../../i3/src/config.c)
30 ms: parse_file (../../i3/src/config_parser.c)
28 ms: load_font (../../i3/libi3/font.c)
28 ms: handle_configure_request (../../i3/src/handlers.c)
28 ms: parse_command (../../i3/src/commands_parser.c)
**** Function sets that took longest to compile / optimize:
*** Expensive headers:
29287 ms: ../../i3/include/libi3.h (included 78 times, avg 375 ms), included via:
i3-resize.o all.h data.h (576 ms)
a-g_utf8_make_valid.o (491 ms)
a-dpi.o (491 ms)
a-get_colorpixel.o (483 ms)
a-is_debug_build.o (478 ms)
a-strndup.o (478 ms)
...
29221 ms: ../../i3/include/all.h (included 39 times, avg 749 ms), included via:
i3-resize.o (946 ms)
i3-scratchpad.o (895 ms)
i3-restore_layout.o (865 ms)
i3-handlers.o (839 ms)
i3-drag.o (830 ms)
i3-config_directives.o (793 ms)
...
5195 ms: /usr/include/xcb/xcb.h (included 79 times, avg 65 ms), included via:
i3-handlers.o all.h (113 ms)
i3-restore_layout.o all.h (108 ms)
a-g_utf8_make_valid.o libi3.h (108 ms)
i3bar-xcb.o common.h (105 ms)
i3-scratchpad.o all.h (95 ms)
a-get_colorpixel.o libi3.h (89 ms)
...
4100 ms: /usr/include/math.h (included 41 times, avg 100 ms), included via:
i3-scratchpad.o all.h (180 ms)
i3-fake_outputs.o all.h (138 ms)
i3-regex.o all.h (130 ms)
i3-restore_layout.o all.h (128 ms)
i3-xcb.o all.h (121 ms)
i3-move.o all.h (119 ms)
...
4046 ms: ../../i3/i3bar/include/common.h (included 9 times, avg 449 ms), included via:
i3bar-main.o (503 ms)
i3bar-xcb.o (501 ms)
i3bar-workspaces.o (472 ms)
i3bar-parse_json_header.o (446 ms)
i3bar-child.o (438 ms)
i3bar-ipc.o (434 ms)
...
2713 ms: ../../i3/include/i3.h (included 41 times, avg 66 ms), included via:
i3-xcursor.o (450 ms)
i3-config_directives.o all.h ipc.h configuration.h (87 ms)
i3-config.o all.h ipc.h configuration.h (71 ms)
i3-manage.o all.h ipc.h configuration.h (70 ms)
i3-window.o all.h ipc.h configuration.h (68 ms)
i3-x.o all.h ipc.h configuration.h (61 ms)
...
1492 ms: /usr/include/xcb/xkb.h (included 42 times, avg 35 ms), included via:
i3-config_directives.o all.h ipc.h configuration.h i3.h (50 ms)
i3-config.o all.h ipc.h configuration.h i3.h (45 ms)
i3-window.o all.h ipc.h configuration.h i3.h (43 ms)
i3-x.o all.h ipc.h configuration.h i3.h (42 ms)
i3-manage.o all.h ipc.h configuration.h i3.h (41 ms)
i3-config_parser.o all.h ipc.h configuration.h i3.h (38 ms)
...
1432 ms: /usr/include/stdlib.h (included 79 times, avg 18 ms), included via:
i3-scratchpad.o all.h (48 ms)
i3-restore_layout.o all.h (36 ms)
i3-regex.o all.h (32 ms)
i3-key_press.o all.h (28 ms)
i3-commands.o all.h (28 ms)
i3-bindings.o all.h (24 ms)
...
1349 ms: /usr/include/pthread.h (included 79 times, avg 17 ms), included via:
i3bar-xcb.o common.h xcb.h (33 ms)
a-ucs2_conversion.o libi3.h xcb.h (32 ms)
i3-match.o all.h xcb.h (27 ms)
i3-scratchpad.o all.h xcb.h (25 ms)
a-g_utf8_make_valid.o libi3.h xcb.h (25 ms)
i3_config_wizard-main.o xcb.h (24 ms)
...
1151 ms: /usr/include/X11/Xlib.h (included 45 times, avg 25 ms), included via:
i3-output.o all.h data.h sn-launcher.h sn-common.h (50 ms)
i3-config_parser.o all.h data.h sn-launcher.h sn-common.h (43 ms)
i3-x.o all.h data.h sn-launcher.h sn-common.h (34 ms)
i3-config_directives.o all.h data.h sn-launcher.h sn-common.h (32 ms)
i3_config_wizard-main.o sn-launchee.h sn-common.h (30 ms)
i3-drag.o all.h data.h sn-launcher.h sn-common.h (29 ms)
...
```
Timing after:
```
Analyzing build trace from ...
**** Time summary:
Compilation (81 times):
Parsing (frontend): 47.6 s
Codegen & opts (backend): 7.6 s
**** Files that took longest to parse (compiler frontend):
1154 ms: build/src/i3-commands.o
929 ms: build/src/i3-display_version.o
852 ms: build/src/i3-bindings.o
847 ms: build/src/i3-con.o
806 ms: build/src/i3-ipc.o
801 ms: build/src/i3-floating.o
792 ms: build/src/i3-main.o
792 ms: build/src/i3-drag.o
792 ms: build/src/i3-window.o
776 ms: build/src/i3-config_directives.o
**** Files that took longest to codegen (compiler backend):
885 ms: build/src/i3-commands.o
422 ms: build/i3bar/src/i3bar-xcb.o
382 ms: build/src/i3-con.o
348 ms: build/src/i3-x.o
288 ms: build/src/i3-ipc.o
268 ms: build/src/i3-handlers.o
254 ms: build/src/i3-main.o
251 ms: build/src/i3-floating.o
249 ms: build/src/i3-config_parser.o
194 ms: build/src/i3-randr.o
**** Functions that took longest to compile:
186 ms: main (../../i3/src/main.c)
95 ms: manage_window (../../i3/src/manage.c)
65 ms: floating_check_size (../../i3/src/floating.c)
63 ms: x_draw_decoration (../../i3/src/x.c)
58 ms: handle_client_message (../../i3/src/handlers.c)
55 ms: x_push_node (../../i3/src/x.c)
54 ms: match_matches_window (../../i3/src/match.c)
51 ms: parse_config (../../i3/src/config_parser.c)
49 ms: dump_node (../../i3/src/ipc.c)
47 ms: reconfig_windows (../../i3/i3bar/src/xcb.c)
47 ms: config_string_cb (../../i3/i3bar/src/config.c)
45 ms: GENERATED_call (../../i3/src/config_parser.c)
45 ms: GENERATED_call (../../i3/src/commands_parser.c)
43 ms: floating_enable (../../i3/src/floating.c)
42 ms: handle_configure_request (../../i3/src/handlers.c)
40 ms: con_swap (../../i3/src/con.c)
36 ms: main (../../i3/i3-input/main.c)
36 ms: main (../../i3/i3-msg/main.c)
36 ms: main (../../i3/i3-nagbar/main.c)
36 ms: cmd_move_con_to_workspace_number (../../i3/src/commands.c)
35 ms: json_string (../../i3/src/load_layout.c)
35 ms: tree_restore (../../i3/src/tree.c)
35 ms: cmd_swap (../../i3/src/commands.c)
34 ms: x_push_changes (../../i3/src/x.c)
32 ms: main (../../i3/i3-config-wizard/main.c)
32 ms: ewmh_setup_hints (../../i3/src/ewmh.c)
31 ms: match_parse_property (../../i3/src/match.c)
30 ms: cmd_mark (../../i3/src/commands.c)
30 ms: translate_keysyms (../../i3/src/bindings.c)
30 ms: window_update_normal_hints (../../i3/src/window.c)
**** Function sets that took longest to compile / optimize:
*** Expensive headers:
29596 ms: ../../i3/include/libi3.h (included 78 times, avg 379 ms), included via:
a-get_config_path.o (539 ms)
i3_dump_log-main.o (522 ms)
i3_config_wizard-main.o (501 ms)
a-fake_configure_notify.o (500 ms)
a-root_atom_contents.o (488 ms)
i3-display_version.o all.h (466 ms)
...
26054 ms: ../../i3/include/all.h (included 41 times, avg 635 ms), included via:
i3-display_version.o (901 ms)
i3-drag.o (775 ms)
i3-ewmh.o (703 ms)
i3-startup.o (693 ms)
i3-commands.o (687 ms)
i3-xcb.o (680 ms)
...
5345 ms: /usr/include/xcb/xcb.h (included 79 times, avg 67 ms), included via:
i3-display_version.o all.h (173 ms)
i3_input-keysym2ucs.o keysym2ucs.h (106 ms)
i3-ewmh.o all.h (106 ms)
a-fake_configure_notify.o libi3.h (103 ms)
a-get_config_path.o libi3.h (95 ms)
i3bar-parse_json_header.o common.h (93 ms)
...
4127 ms: ../../i3/i3bar/include/common.h (included 9 times, avg 458 ms), included via:
i3bar-child.o (524 ms)
i3bar-mode.o (486 ms)
i3bar-outputs.o (464 ms)
i3bar-parse_json_header.o (463 ms)
i3bar-config.o (457 ms)
i3bar-ipc.o (448 ms)
...
1542 ms: /usr/include/xcb/xkb.h (included 42 times, avg 36 ms), included via:
i3-con.o all.h ipc.h configuration.h i3.h (60 ms)
i3-render.o all.h ipc.h configuration.h i3.h (56 ms)
i3-bindings.o all.h ipc.h configuration.h i3.h (56 ms)
i3-sighandler.o all.h ipc.h configuration.h i3.h (48 ms)
i3-xcb.o all.h ipc.h configuration.h i3.h (47 ms)
i3-resize.o all.h ipc.h configuration.h i3.h (39 ms)
...
1456 ms: /usr/include/stdlib.h (included 79 times, avg 18 ms), included via:
i3-drag.o all.h (60 ms)
i3-display_version.o all.h (55 ms)
i3-fake_outputs.o all.h (39 ms)
i3-config_directives.o all.h (33 ms)
i3-xcursor.o all.h (30 ms)
i3bar-mode.o common.h libi3.h pango.h pango-attributes.h pango-font.h pango-coverage.h glib-object.h gbinding.h glib.h gasyncqueue.h gthread.h gutils.h (29 ms)
...
1136 ms: /usr/include/X11/Xlib.h (included 44 times, avg 25 ms), included via:
i3-con.o all.h data.h sn-launcher.h sn-common.h (35 ms)
i3-resize.o all.h data.h sn-launcher.h sn-common.h (34 ms)
i3-util.o all.h data.h sn-launcher.h sn-common.h (33 ms)
i3-assignments.o all.h data.h sn-launcher.h sn-common.h (33 ms)
i3-sighandler.o all.h data.h sn-launcher.h sn-common.h (31 ms)
i3-xcb.o all.h data.h sn-launcher.h sn-common.h (31 ms)
...
808 ms: /usr/include/stdio.h (included 79 times, avg 10 ms), included via:
i3-drag.o all.h (19 ms)
i3-fake_outputs.o all.h (18 ms)
a-font.o libi3.h (16 ms)
i3bar-child.o common.h libi3.h (15 ms)
a-safewrappers.o libi3.h (15 ms)
a-ipc_send_message.o libi3.h (13 ms)
...
770 ms: /usr/include/xcb/randr.h (included 42 times, avg 18 ms), included via:
i3-click.o all.h data.h (29 ms)
i3-commands.o all.h data.h (27 ms)
i3-assignments.o all.h data.h (25 ms)
i3-xcb.o all.h data.h (21 ms)
i3-resize.o all.h data.h (21 ms)
i3-sighandler.o all.h data.h (20 ms)
...
688 ms: /usr/include/math.h (included 6 times, avg 114 ms), included via:
a-dpi.o (145 ms)
i3-render.o (127 ms)
i3-floating.o (106 ms)
a-root_atom_contents.o (106 ms)
i3-window.o (102 ms)
i3-bindings.o (99 ms)
...
```
2020-04-20 05:54:17 +02:00
Orestis Floros
0b62129224
Remove unused headers
...
With help from
https://github.com/include-what-you-use/include-what-you-use/
2020-04-20 04:25:06 +02:00
Orestis Floros
a87e8c8d5b
Fix load_layout crash when floating node doesn't have CT_FLOATING_CON parent
...
Fixes #3901
2020-04-12 00:48:01 +02:00
xzfc
1f0c628cde
clang-format: bring back ForeachMacros ( #3948 )
...
* clang-format: bring back ForeachMacros
ForeachMacros was disabled in 4211274fcd
due to the breakage of include/queue.h. The currently used version,
clang-format-6.0 doesn't break it.
* Add curly braces
Co-authored-by: Orestis Floros <orestisflo@gmail.com>
2020-02-19 11:31:09 +01:00
Orestis Floros
a73510026f
Remove packed attribute from Rect
...
Fixes #3785 -- the issue where the Travis build failed because of gcc's
-Werror=address-of-packed-member.
Adds an equality function to avoid relying on memcmp().
2019-09-03 10:43:36 +03:00
Albert Safin
64ab1f42b7
Preserve back_and_forth during restart
...
Add new key "previous_workspace_name" to the json dump of the root container.
2018-12-11 20:46:06 +07:00
Orestis Floros
29f2510fa9
Fix aspect ratio bugs
...
- ICCCM says: > If a base size is not provided, the minimum size is to
be used in its place and vice versa.
i3 didn't obey the "vice versa" part. Min size and base size are both
saved without replacements in window_update_normal_hints,
floating_check_size makes the needed replacements if either was not
provided.
- Aspect ratio is now saved correctly in manage_window because
window_update_normal_hints is called.
- i3 didn't save the aspect ratio if the window conformed the given
aspect ratio range when handle_normal_hints was called. If the window
was resized to a size outside of the given bounds, i3 didn't correct it.
- Aspect ratio now affects only tiling windows, like the rest of the
normal size hints
- The aspect ratio calculation is now done without a loop
A real life example of how these changes affect the workflow:
An mpv window, when playing a video, sets its min == max aspect ratio
during mapping. i3 ignored these hints. When resized, the window's
aspect ratio was not preserved. With this commit, resizing floating mpv
windows will always preserve the aspect ratio.
2018-11-12 18:45:00 +02:00
Orestis Floros
eb53ec83b9
load_layout: Correctly mark non-leaf containers
...
Example problematic layout:
{
"layout": "splith",
"marks": ["H1"],
"nodes": [
{
"swallows": [
{
"class": "^a$"
}
]
}
]
}
Since the marks were added to the json_node during end_map, the
container that ended up getting the "H1" mark was the child instead of
the parent.
2018-11-07 02:32:12 +02:00
Orestis Floros
50880db2c5
Reduce some code around frees
2018-10-13 21:10:09 +03:00
Orestis Floros
6a1f653508
libi3: validate UTF8 strings
...
Will validate container / window titles.
Fixes #3156 .
2018-09-10 02:00:32 +03:00
Orestis Floros
be6faa3161
tree_append_json: Allow strings that are not valid UTF8
...
Fixes #3156 .
I couldn't reproduce the problem in a "natural" way so I cheated:
1. Start i3 with gdb
2. Set breakpoing on tree_restore
3. Run, open window, i3-msg restart
5. Open the file in *path with a hex editor
6. Edit the "name" field of the window and insert bytes that are not
valid UTF8
7. Continue
After parsing fails, all nodes including croot are incomplete, meaning
they have to be deleted. We can't recover in any reasonable way so we
have to allow non-UTF8 characters to avoid this situation altogether.
2018-09-06 14:58:31 +03:00
Orestis Floros
e8d2b9b7b5
tree_append_json: don't focus freed container
2018-09-06 14:48:21 +03:00
Orestis Floros
6a2728ba79
Introduce get_existing_workspace_by_name
2018-03-28 15:18:43 +03:00
Orestis Floros
0c2fbeedc2
Don't raise floating windows when focused because of focus_follows_mouse
...
Fixes #2990 .
2018-01-14 15:45:33 +02:00
Michael Stapelberg
c45c002bad
validate JSON before loading
...
This commit also introduces slurp() which reads a file in its entirety. Using
this function instead of doing IO in the functions in load_layout.c again and
again makes the code cleaner (fixing at least two memory leaks) and avoids
re-reading the same file 3 times.
related to #2755
2017-09-13 17:41:05 +02:00
Michael Stapelberg
b23e1f644f
Bugfix: free incomplete containers when JSON parsing fails
...
related to #2755
2017-09-13 16:39:13 +02:00
Orestis Floros
554775f694
Set marks to NULL after freeing
...
realloc() was being called on an already freed pointer.
Fixes #2900
2017-09-07 10:51:13 +03:00
Chih-Chyuan Hwang
13372d511a
Fix the i3 crash caused by mark + restart commands ( #2779 )
...
This patch fixes the issue #2511(https://github.com/i3/i3/issues/2511 ).
1). Memorize the marks, but only call con_mark once the container has finished parsing. (Credit: This is @Airblader's patch.)
2). Add a test case 267-regress-mark-restart.t for regression test to check if mark and restart command crash i3.
2017-05-23 08:47:11 +02:00
Michael Stapelberg
fff3f79da9
switch to clang-format-3.8 ( #2547 )
...
https://llvm.org/bugs/show_bug.cgi?id=30353 was filed for the unintended
line break between in e.g. “TAILQ_ENTRY(foo)\nbar;”.
Until that’s fixed or a workaround is known, we’ll live with line
breaks. To make it a bit easier for readers to see what’s going on, I
added extra line breaks around each such struct member/variable
definition, so that they at least visually are a single unit.
fixes #2174
2016-11-08 13:46:43 -08:00
Michael Stapelberg
f354f53435
Ensure all *.[ch] files include config.h
...
Including config.h is necessary to get e.g. the _GNU_SOURCE define and
any other definitions that autoconf declares. Hence, config.h needs to
be included as the first header in each file.
This is done either via:
1. Including "common.h" (i3bar)
2. Including "libi3.h"
3. Including "all.h" (i3)
4. Including <config.h> directly
Also remove now-unused I3__FILE__, add copyright/license statement
where missing and switch include/all.h to #pragma once.
2016-10-23 21:09:24 +02:00
johannes karoff
1437271e65
do not match docks in config and command criteria ( #2340 )
2016-09-26 09:45:58 -07:00
Ingo Bürk
b2397c9f01
Remove redundant depth argument from x_con_init(). ( #2323 )
2016-05-05 14:18:27 +02:00
Michael Stapelberg
8d4bf6c577
free dynamically allocated matches
2016-01-09 17:06:58 +01:00
Michael Stapelberg
414be6290d
tree_append_json: fix memory leaks
2016-01-09 17:06:58 +01:00
Ingo Bürk
1f660a4cc4
Move title_format from window to container.
...
This patch moves the title_format information from windows to containers.
Furthermore, it allows correctly setting it on window-less containers and
displays the title accordingly for split containers.
We now also dump and read title_format in GET_TREE / during restarts.
fixes #2120
2016-01-05 12:22:27 -05:00
Ingo Bürk
e3a5c004d3
Reject empty swallow definitions
...
Empty swallow definitions don't make sense and can lead to crashes,
for that reason we reject them.
fixes #2099
2015-12-11 20:28:13 +01:00
Ingo Bürk
7a77c5f0bb
Introduce "--add" for marking windows.
...
In order to keep compatibility to before allowing multiple marks on a window,
we introduce a flag "--add" that must be set to put more than one mark on a
window. The default, which is also available as "--replace", keeps the old
behavior of overwriting a mark when setting a new one.
fixes #2014
2015-10-22 15:32:15 +02:00
Ingo Bürk
9bb2f038ab
Allow multiple marks on windows.
...
This patch allows multiple marks to be set on a single window. The restriction that a mark may
only be on one window at a time is still upheld as this is necessary for commands like
"move window to mark" to make sense.
relates to #2014
2015-10-22 15:29:42 +02:00
Ingo Bürk
dd7a532160
When appending a layout containing a marked container, make sure that any other containers with the same mark
...
are unmarked during insertion of the new container.
fixes #1956
2015-09-25 19:26:41 +02:00
Ingo Bürk
2c338b6ae2
Handle _NET_WM_STATE_STICKY, but only for floating containers. If this atom is set, the floating window will always be automatically moved to the currently active workspace of the output that it is on. This is the equivalent of a sticky note stuck to the monitor.
...
We will respect this atom upon managing a window as well as when we receive a request that changes the sticky state.
fixes #1455
2015-09-13 20:40:20 +02:00
Michael Stapelberg
fed05ef876
clang-format src/load_layout.c
2015-08-05 22:55:07 +02:00
Michael Stapelberg
57438d270d
append_layout: load floating containers correctly
...
fixes #1739
fixes #1271
2015-08-05 22:40:58 +02:00
shdown
bc52fae15c
libi3: change scalloc() signature to match calloc()
2015-08-03 12:50:13 +03:00
Deiz
884214f14f
Update copyright notices and get rid of ranges
...
The script used to make these changes can be found at:
https://gist.github.com/Deiz/32322020f76d23e2bf8f
2015-04-20 17:50:21 -04:00
hwangcc
42515308e7
Add a safe wrapper for write and fix some warnings
...
1. Add a function writeall and make swrite wrap that function. Use either writeall or swrite, depending on whether we want to exit on errors or not.
2. Fix warnings when compiling with a higher optimisation level.
(CFLAGS ?= -pipe -O3 -march=native -mtune=native -freorder-blocks-and-partition)
Signed-off-by: hwangcc <hwangcc@csie.nctu.edu.tw>
2015-03-29 10:22:34 +08:00
Michael Stapelberg
dd5be77d1d
Merge branch 'master' into next
2015-01-31 22:42:54 +01:00
Michael Stapelberg
55b5f491a4
Bugfix: correctly restore workspaces regardless of where “type” is (Thanks dsargrad)
...
fixes #1395
2015-01-31 22:42:47 +01:00
cornerman
58c65a64fe
add deco_rect property to con in ipc response
2014-11-29 18:19:39 +01:00
Michael Stapelberg
0d656dd05d
don’t set names corresponding to debug colors, remove “sleep 1”.
...
The names were (mostly) internal to i3 anyway.
Hopefully this doesn’t break anything, but I really think this old
behavior needs to go now :).
2014-07-15 10:36:31 +02:00
Michael Stapelberg
ee75821699
Merge branch 'master' into next
2014-07-15 10:28:51 +02:00
Michael Stapelberg
679a5de8cf
Bugfix: properly restore workspace containers (Thanks vals)
...
fixes #1306
2014-07-15 10:27:42 +02:00
Michael Stapelberg
4c06e7a573
clang-format-3.5 **/*.h **/*.c
...
This should be the last commit that formats a big bunch of files. From
here on, whenever I merge patches, I’ll run clang-format like described
in the title.
2014-06-19 11:20:32 +02:00
Michael Stapelberg
9200094203
format **/*.c with clang-format-3.5
...
This has multiple effects:
1) The i3 codebase is now consistently formatted. clang-format uncovered
plenty of places where inconsistent code made it into our code base.
2) When writing code, you don’t need to think or worry about our coding
style. Write it in yours, then run clang-format-3.5
3) When submitting patches, we don’t need to argue about coding style.
The basic idea is that we don’t want to care about _how_ we write the
code, but _what_ it does :). The coding style that we use is defined in
the .clang-format config file and is based on the google style, but
adapted in such a way that the number of modifications to the i3 code
base is minimal.
2014-06-15 19:07:02 +02:00
Tony Crisci
13db562551
Remove yajl major version conditionals
...
Yajl version ≥ 2 is required.
fixes #1156
2014-05-04 22:52:37 +02:00
Michael Stapelberg
524f20b8a0
layout restoring: append at the nearest split container (or workspace) (Thanks chris)
...
Before this commit, leaf containers (such as terminal emulators) would
get children appended, which is not intended.
fixes #1223
2014-04-18 20:30:27 +02:00
Alexander Kedrik
de3901bb29
use designated initializers for yajl_callbacks struct
2014-01-06 22:12:14 +01:00
Michael Stapelberg
93cfdcd488
sanity check: drop swallows for split containers (Thanks xeen)
...
fixes #1149
2014-01-05 20:25:47 +01:00
Michael Stapelberg
2fea5ef82b
Revert "use designated initializers for yajl_callbacks struct"
...
This reverts commit 705b43294a
.
This commit broke i3bar for some users.
2014-01-05 13:05:31 +01:00
Michael Stapelberg
18e6184f1c
run con_fix_percent unconditionally, not only on parsing errors
2014-01-04 21:59:41 +01:00
Michael Stapelberg
58b3c730e2
return parse errors via IPC for append_layout
2014-01-04 21:39:13 +01:00