Commit Graph

1650 Commits (8ff956a34812f2f7e290aaa4f542de9c95bda058)

Author SHA1 Message Date
Michael Stapelberg 2c68c234ea Implement assignments for (named) workspaces, with '~' compatibility (floating) 2011-05-23 18:41:17 +02:00
Michael Stapelberg 272a86745e Bugfix: Free pixmaps when killing windows (Thanks Mike) 2011-05-22 23:32:59 +02:00
Michael Stapelberg 4c1392d8ab retab! cfgparse.l 2011-05-22 22:15:43 +02:00
Michael Stapelberg c23f3b45fc cfgparse.l: kill a few states by using the stack 2011-05-22 22:08:40 +02:00
Michael Stapelberg 1d6447187c cleanup cfgparse lexer/parser (ignore whitespace, solves conflicts) 2011-05-22 21:48:25 +02:00
Michael Stapelberg e27a8597d8 forgot to remove unused TOK_ATTACH token from lexer 2011-05-22 21:42:34 +02:00
Michael Stapelberg 08f64f011d cleanup cmdparse lexer/parser (ignore whitespace, solves conflicts) 2011-05-22 21:26:50 +02:00
Michael Stapelberg 607fd7d024 tests: also test multiple commands in for_window
Increases branch coverage to 49.1%
2011-05-16 22:03:07 +02:00
Michael Stapelberg 1bd4c983db tests: add test for the for_window config directive, use separate config for tests
This test increases code coverage to 60.7%
2011-05-16 21:50:34 +02:00
Michael Stapelberg 03cc490f0e Bugfix: fix crash when disabling floating mode 2011-05-16 20:51:29 +02:00
Michael Stapelberg 5ae4620a24 Time Lord technology: for_window config directive to run arbitrary cmds
An example to set all XTerms floating:
    for_window [class="XTerm"] mode floating

To make all urxvts use a 1-pixel border:
    for_window [class="urxvt"] border 1pixel

A less useful, but rather funny example:
    for_window [title="x200: ~/work"] mode floating

The commands are not completely arbitrary. The commands above were tested,
others may need some fixing. Internally, windows are compared against your
criteria (class, title, …) when they are initially managed and whenever one of
the relevant values change. Then, the specified command is run *once* (per
window). It gets prefixed with a criteria to make it match only the specific
window that triggered it. So, if you configure "mode floating", i3 runs
something like '[id="8393923"] mode floating'.
2011-05-15 20:10:25 +02:00
Michael Stapelberg ca2e4199b5 Introduce HANDLE_EMPTY_MATCH macro to simplify command handlers in cmdparse.y 2011-05-15 19:43:35 +02:00
Michael Stapelberg d3e458bc78 Remove old code from randr.c and workspace.c 2011-05-14 22:38:19 +02:00
Michael Stapelberg 5db97dc473 Bugfix: Fix initialization / assignments when RandR is missing 2011-05-14 22:34:34 +02:00
Michael Stapelberg 3f45d3c447 re-implement assignments of workspace to specific outputs 2011-05-14 22:19:58 +02:00
Michael Stapelberg 0e2d58347c introduce the NODES_FOREACH and GREP_FIRST macros 2011-05-14 22:11:09 +02:00
Michael Stapelberg 443753bea6 x.c: disable some of the debug output 2011-05-14 20:04:34 +02:00
Michael Stapelberg 0bfab98a7f Correctly re-implement scrolling on window decorations
Got lost when refactoring the click handling in 24463718cc

Fixes: #390
2011-05-13 21:58:17 +02:00
Michael Stapelberg aea445b690 Bugfix: Attach new cons at the correct place when a floating con is focused (+test) (Thanks fernandotcl)
New containers were previously attached directly to the workspace instead of to
the previously focused place in the workspace (for example a stacked con).

Fixes: #376
2011-05-13 21:30:37 +02:00
Michael Stapelberg 3d2cd6abaa Fix kill command with trailing whitespace 2011-05-13 21:18:20 +02:00
Michael Stapelberg 167bdd26b7 Argument for 'kill' for killing a specific window (now default) or the whole client (+test)
Use 'kill window' to kill a specific window (for example only one specific
popup), use 'kill client' to kill the whole application (or X11 connection to
be specific).
2011-05-13 20:41:03 +02:00
Michael Stapelberg 44c2555e67 Bugfix: When focusing the next floating window, descend the CT_FLOATING_CON
makes t/35-floating-focus.t pass again
2011-05-13 19:53:19 +02:00
Michael Stapelberg 5eef824495 t/35-floating-focus: rewrite testcase to use windows instead of empty cons 2011-05-13 19:27:18 +02:00
Michael Stapelberg 836a3ad615 Bugfix: set WM_STATE to WITHDRAWN when an app unmaps their window(s) (+test)
Fixes: #362
2011-05-13 17:04:55 +02:00
Michael Stapelberg 62e977102b Bugfix: Fix the WANT_QSTRING state 2011-05-13 17:03:15 +02:00
Michael Stapelberg b0e871e0cf Bugfix: Fix focus follows mouse for non-default layout cons (Thanks phnom)
Fixes: #361
2011-05-12 22:24:52 +02:00
Michael Stapelberg 15c288f7d7 s/seperate/separate (Thanks Jon) 2011-05-12 17:20:00 +02:00
Michael Stapelberg 6e32e6123d Bugfix: Ignore focus when attaching cons while restoring the layout
Fixes: #369
2011-05-12 07:22:17 +02:00
Michael Stapelberg 94646190aa Bugfix: Correct string/quoted string parsing for the commands exec, workspace, nop, restore and mark (Thanks SardemFF7)
Fixes: #380
2011-05-12 07:09:06 +02:00
Michael Stapelberg 2e75d934a4 Bugfix: Don’t append the --restart parameter on each restart (Thanks aniou)
Fixes: #384
2011-05-12 06:58:09 +02:00
Michael Stapelberg c62f70856f Bugfix: Don’t crash when dock clients set the urgency hint (+testcase) 2011-05-11 22:45:20 +02:00
Michael Stapelberg 4be3178d4d Bugfix: Don’t fill split cons etc. with client background color (fixes nested decoration rendering)
Fixes: #359
2011-05-11 22:01:09 +02:00
Michael Stapelberg 4da6fc7ba3 Bugfix: Restore border_style when restarting inplace (Thanks aniou)
Fixes #385.
2011-05-11 20:45:56 +02:00
Michael Stapelberg 9c05c18156 ipc: change border_style to human-readable string instead of enum value 2011-05-11 20:39:18 +02:00
Michael Stapelberg eb8ad348b2 Bugfix: Don’t run into an endless loop when killing con with children (Thanks mseed)
When a tabbed container had more than one child and at least the first one
supported WM_DELETE, i3 entered an endless loop when killing that tabbed
container. This was due to tree_close only sending WM_DELETE without actually
removing the child, while the loop in tree_close assumed that with every call
of tree_close one child would be removed.
2011-05-11 20:22:47 +02:00
Michael Stapelberg 7e587f3570 add coverage target to makefile to generate a coverage report 2011-05-08 20:08:46 +02:00
Michael Stapelberg 098fc06942 tests: add --coverage-testing option to complete-run.pl 2011-05-08 20:08:35 +02:00
Michael Stapelberg 78264958c0 makefile: add COVERAGE flag 2011-05-08 19:56:11 +02:00
Michael Stapelberg e73c171e0d Bugfix: assign BORDER_BOTTOM instead of BORDER_RIGHT (Thanks Jan) 2011-05-06 13:09:50 +02:00
Michael Stapelberg 1fe5c58764 cfgparse.y: define types (Thanks Merovius) 2011-05-05 21:58:28 +02:00
Michael Stapelberg bd73275771 re-indent cfgparse.y 2011-05-05 21:19:47 +02:00
Michael Stapelberg a075fd4ee2 cmdparse.y: set type on the tokens/non-terminals (Thanks Merovius) 2011-05-05 20:39:05 +02:00
Michael Stapelberg 3d1acd6c2f re-implement assigning windows to workspaces 2011-05-02 23:29:26 +02:00
Michael Stapelberg 7e51f626ef Bugfix: Before rendering, attach the con to its floating_con
Otherwise, the rendering will produce negative coordinates.
2011-05-02 11:06:13 +02:00
Michael Stapelberg b2754fd679 Bugfix: When re-assigning floating windows to a different output, use the last focused workspace, not the first 2011-05-02 11:05:50 +02:00
Michael Stapelberg 79323a0be0 Bugfix: Fix the client background rectangle calculation (Thanks Mike)
Really fixes #364.
2011-05-01 22:27:06 +02:00
Michael Stapelberg b401e08a5d Bugfix: For fullscreen cons, use a deco_height of 0 to correctly render the background color
This should fix #364.
2011-05-01 19:46:41 +02:00
Michael Stapelberg d28008aa63 Bugfix: Correctly render decorations in tabbed containers (don’t overlap)
This fixes a regression introduced in b644fb5f26.
2011-05-01 18:48:30 +02:00
Michael Stapelberg 43ec3ddbaf wizard: actually write the output config 2011-05-01 13:56:35 +02:00
Michael Stapelberg 9101f4cce2 wizard: check if the config file does not already exist and if we can create it 2011-05-01 12:50:18 +02:00