Orestis Floros
20a06462bc
Update EWMH properties on workspace move
...
Closes #3965
Fixes #4001
2020-04-22 08:54:31 +02:00
Orestis Floros
50d2b44325
cmd_focus_sibling: Fix crash on workspace level
...
Fixes #3997
2020-04-22 08:53:52 +02:00
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
af7c4ae76b
generate-command-parser: Add '#pragma once'
2020-04-20 04:25:45 +02:00
Orestis Floros
2954125324
nagbar: Remove i3-nagbar.h
2020-04-20 04:25:45 +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
3c522d9f2f
Sort includes in *.c files
...
Not enabling in .clang-format because it breaks headers files.
Used:
IncludeCategories:
- Regex: '^<config'
Priority: 0
- Regex: '^".*"'
Priority: 1
- Regex: '^<(xcb|xkb|yajl|X11)'
Priority: 3
- Regex: '.*'
Priority: 2
2020-04-19 09:58:25 +02:00
Albert Safin
7419400a8d
x_draw_decoration: always clear parent pixmap when rendering the first child
...
Previously, i3 used to clean the parent pixmap only if the first child
has a titlebar.
This worked well for case `V[a b]` when both `a` and `b` have titlebars
(clearing is required), or both haven't (clearing is not required).
However, in case if `a` has no titlebar, but `b` has, this could lead
to graphical glitches.
This commit rearranges the order of conditions to make sure that the
parent pixmap is cleared regardless of the border style of the first
child.
2020-04-18 04:21:16 +00:00
Ingo Bürk
0bce0d86bf
Merge pull request #4018 from orestisfl/reorder-docks
...
Sort dock clients by class and instance
2020-04-15 08:36:10 +02:00
Orestis Floros
7df88f18eb
Sort dock clients by class and instance
...
This is similar to #3820 but does not use qsort but an insertion sort in
con_attach.
Since each bar block automatically gets its own incremental bar id,
bards end up being sorted according to their definition order in the
config file.
For i3bar, the WM_CLASS is modified to include an instance name which
depends on the bar_id. This could be useful for other reason, e.g. users
targeting a specific bar instance.
Fixes #3491
2020-04-14 20:47:51 +02:00
Orestis Floros
4212fb6488
i3bar: Set WM_CLASS instance to bar_id
2020-04-14 20:46:49 +02:00
Orestis Floros
831a52de9a
Move content for non-existing output containers ( #3767 )
...
Probably fixes various related issues:
Closes #2276
Closes #2459
Closes #2936
Closes #3766
Tested using
bindsym $mod+Shift+i exec xrandr --output DVI-D-0 --mode 1920x1080 --pos 0x0 --rotate normal --output DVI-I-1 --off, restart
The core issue here is that the JSON read during a restart might contain
invalid outputs when the new process is done reading it.
2020-04-12 13:52:05 +02:00
Orestis Floros
ae757c6848
Extend tiling/floating criteria with optional auto/user values ( #4006 )
...
The default `tiling` and `floating` behavior is preserved and matches
both cases.
Adds a new handler to `remanage_window` on A_I3_FLOATING_WINDOW change.
Mainly in order to `run_assignments`, this makes `for_window [floating]`
directives to work for windows which where initially opened as tiling.
Now, when floating is enabled, `for_window` will trigger correctly. Same
applies to `for_window [tiling]`.
The obvious solution of `run_assignments` after
`floating_{enable,disable}` doesn't work because `run_assignments`
modifies the parser state in src/assignments.c:51.
Fixes #3588
Co-Authored-By: Michael Stapelberg <michael@stapelberg.de>
2020-04-12 13:49:08 +02:00
Michael Stapelberg
e7191af8b3
pod2html: render without stylesheet by default ( #4016 )
...
fixes #3956
2020-04-12 11:07:43 +02:00
Ingo Bürk
46e940efba
Merge pull request #4013 from orestisfl/i3-dmenu-desktop-symlinks
...
i3-dmenu-desktop: Support symlinks
2020-04-12 09:15:40 +02:00
Ingo Bürk
adbef0c7e7
Merge pull request #4015 from orestisfl/layout-restore-crash-floating
...
Fix load_layout crash when floating node doesn't have CT_FLOATING_CON parent
2020-04-12 09:12:16 +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
Orestis Floros
3a672bc930
i3-dmenu-desktop: Support symlinks
...
follow_fast is passed to find() in order to support this. Since we check
ourselves for duplicates, the fast option can be used.
Fixes #3973
2020-04-11 22:57:29 +02:00
Ingo Bürk
62279aba45
Merge pull request #4005 from orestisfl/route_click_clutter
...
route_click readability improvements
2020-04-11 19:51:00 +02:00
Ingo Bürk
f4b1da7f23
Merge pull request #4011 from orestisfl/floating_reposition-needs_tree_render
...
Call tree_render if floating move changes workspace
2020-04-11 19:50:14 +02:00
Ingo Bürk
93bb2022bb
Merge pull request #4012 from orestisfl/floating_maybe_reassign_ws_focus
...
floating_maybe_reassign_ws: only re-focus if previously focused
2020-04-11 19:49:53 +02:00
Ingo Bürk
e47d5f6a3e
Merge pull request #4008 from orestisfl/limit-run_command-LOG
...
Limit log length with IPC commands
2020-04-11 19:49:24 +02:00
Ingo Bürk
1e9fbd7186
Merge pull request #4010 from orestisfl/trailing-whitespace-log
...
Fix trailing whitespace in a DLOG
2020-04-11 19:49:05 +02:00
Orestis Floros
5eab604a10
floating_maybe_reassign_ws: only re-focus if previously focused
...
Fixes #3979
2020-04-11 11:10:51 +02:00
Orestis Floros
755d306df3
Revert "floating_reposition: avoid extra tree_render"
...
This reverts commit 204eefc679
.
workspace_show does not call tree_render
2020-04-11 11:08:55 +02:00
Orestis Floros
bb8f2927ae
Call tree_render if floating move changes workspace
...
This fixes a bug where moving a floating container with
cmd_move_direction displays a "broken" state if the container crosses
workspace boundaries.
2020-04-11 10:52:35 +02:00
Orestis Floros
e4cfb80a05
Fix trailing whitespace in a DLOG
2020-04-11 10:10:44 +02:00
Orestis Floros
964456b628
Limit log length with IPC commands
...
Fixes #3525
2020-04-10 16:59:46 +02:00
Orestis Floros
57a37f8af4
run_command: Update outdated docstring
2020-04-10 16:41:36 +02:00
Heman Gandhi
b247896a75
Move parent nodes in scratchpad correctly ( #3793 )
...
* Move parent nodes in scratchpad across workspaces
Co-Authored-By: Orestis <orestisflo@gmail.com>
2020-04-10 16:27:40 +02:00
Ingo Bürk
e2b2a28625
Merge pull request #4004 from orestisfl/i3bar-segfault
...
Fix SEGFAULT when i3bar receives invalid input
2020-04-10 14:00:51 +02:00
Ingo Bürk
312d3dfbd3
Merge pull request #4003 from orestisfl/update_desktop_properties_on_move
...
Update EWMH properties on workspace move
2020-04-10 14:00:26 +02:00
Ingo Bürk
1e6b510497
Merge pull request #4002 from orestisfl/DLOG_CHILD
...
i3bar: Add a macro to log child info
2020-04-10 13:59:55 +02:00
Michael Stapelberg
960df0dbfc
Makefile: add bear target for using clangd/ccls language servers ( #3953 )
...
After installing clangd and/or ccls (Emacs eglot defaults to ccls),
run e.g. make bear -j32 and restart your editor (or just its language server).
2020-04-10 12:26:03 +02:00
Orestis Floros
58d383b1a0
route_click: Remove condition that is always true
...
For reference:
typedef enum { CLICK_BORDER = 0,
CLICK_DECORATION = 1,
CLICK_INSIDE = 2 } click_destination_t;
2020-04-10 12:24:18 +02:00
Orestis Floros
07c7384272
route_click: Add some const bools for readability
2020-04-10 12:22:24 +02:00
Orestis Floros
b401cc994b
Merge pull request #3954 from xzfc/floating-tiling-resize
...
Make floating-tiling resize code consistent with plain tiling resize
2020-04-10 12:17:26 +02:00
Orestis Floros
59108ec299
Merge pull request #3816 from sandsmark/martin/empty-matches
...
Match empty window properties (e. g. no title set) #3308
2020-04-10 11:44:46 +02:00
Orestis Floros
91ec14f2bc
Fix SEGFAULT when i3bar receives invalid input
...
Fixes #3844
2020-04-10 11:38:19 +02:00
Orestis Floros
ed67eaca2c
Update EWMH properties on workspace move
...
Closes #3965
Fixes #4001
2020-04-10 04:40:11 +02:00
Orestis Floros
c46fdc8363
Merge pull request #3995 from xzfc/refactor-property-handlers
...
Refactor property handlers
2020-04-10 03:58:12 +02:00
Orestis Floros
40697a233c
i3bar: Add a macro to log child info
...
Mentioned in #3242
2020-04-10 03:22:34 +02:00
Ingo Bürk
c611b9e0e0
Merge pull request #4000 from orestisfl/revert-3983-resize-behind-fullscreen
...
Correctly handle mouse resize in fullscreen containers
2020-04-09 16:41:43 +02:00
Orestis Floros
6fa2cd32a0
handle_button_press and route_click do not need to return int
2020-04-09 16:16:30 +02:00
Orestis Floros
93e96f4e6b
Do not propagate $mod+right click to clients
2020-04-09 16:08:41 +02:00
Orestis Floros
b590ca076c
Avoid resizing fullscreen container with non-fullscreen
...
Another option is to modify resize_find_tiling_participants but this
would also affect resizing of tiling containers in scripts, so I chose
to make this change specific to resizing with the mouse.
Follow-up after #3983
Fixes #3980
2020-04-09 15:49:09 +02:00
Orestis Floros
4922b245c1
Revert "Avoid resizing fullscreen container"
...
This reverts commit 1a2882d740
.
As mentioned in
https://github.com/i3/i3/issues/3980#issuecomment-611515497 , this
disables resizing children of fullscreen containers.
2020-04-09 15:11:46 +02:00
Ingo Bürk
26cbca3d27
Merge pull request #3999 from orestisfl/cmd_focus_sibling_workspace_crash
...
cmd_focus_sibling: Fix crash on workspace level
2020-04-09 11:47:32 +02:00
Orestis Floros
4b4f1f604f
cmd_focus_sibling: Fix crash on workspace level
...
Fixes #3997
2020-04-09 11:29:14 +02:00
Orestis Floros
016d4a3f45
Call cont_child() more liberally ( #3996 )
...
Following the reproduction instructions from
https://github.com/i3/i3/issues/3242#issuecomment-436175346
For me, #3242 happened when the following sequence executed:
1. Fullscreening window correctly calls `stop_child()` in
6e24e2ad6f/i3bar/src/xcb.c (L685)
2. Xrandr change, `reconfig_windows()` is called and `output->visible` is
set to `true` in this line:
6e24e2ad6f/i3bar/src/xcb.c (L1791)
3. When the window's fullscreen is disabled,
`handle_visibility_notify()` returns in this line:
6e24e2ad6f/i3bar/src/xcb.c (L677)
because previously `output->visible` was set to `true`
To fix this, I call `cont_child()` more leniently since it is a no-op
when the child is not stopped.
Fixes #3242
Closes #3761
2020-04-09 10:43:48 +02:00