]> git.sur5r.net Git - i3/i3/log
i3/i3
12 years agoUserguide: Added link from 7.2 to 6.6
Pauli Ervi [Sat, 22 Sep 2012 16:19:53 +0000 (19:19 +0300)]
Userguide: Added link from 7.2 to 6.6

The multiple monitors section (7) is probably the most
likely place for someone to go look for how to move
workspaces between monitors (6.6).

12 years agoClose empty workspaces after cross-output move (+test) (Thanks chrysn)
Michael Stapelberg [Sat, 22 Sep 2012 17:03:19 +0000 (19:03 +0200)]
Close empty workspaces after cross-output move (+test) (Thanks chrysn)

fixes #795

12 years agoremove unnecessary code in render_con().
darkraven [Thu, 6 Sep 2012 15:27:23 +0000 (23:27 +0800)]
remove unnecessary code in render_con().

The removed code was add by commit 61b8a62 to fix #564. That bug is cause
by rendering the mplayer window again as a floating window (even if it
has been rendered before as a fullscreen window, at line 202). So simply
checking for fullscreen window is enough to solve this problem. Treating
floating/tiling fullscreen window differently is not needed.

12 years agoIn get_output_next(), avoid an off-by-one for adjacent outputs and || mutually-exclus...
Deiz [Sat, 22 Sep 2012 16:05:22 +0000 (12:05 -0400)]
In get_output_next(), avoid an off-by-one for adjacent outputs and || mutually-exclusive failure conditions.

12 years agot/506-focus-right: also verify that focus up/down is a no-op (Thanks swh)
Michael Stapelberg [Sat, 22 Sep 2012 15:30:44 +0000 (17:30 +0200)]
t/506-focus-right: also verify that focus up/down is a no-op (Thanks swh)

12 years agoMake get_output_next() work with non-aligned RandR setups (+test) (Thanks Feh, swh...
Michael Stapelberg [Sat, 22 Sep 2012 14:49:37 +0000 (16:49 +0200)]
Make get_output_next() work with non-aligned RandR setups (+test) (Thanks Feh, swh, Moritz)

A good visualization of the new algorithm is this:

           +--------+
           |        |
+--------+=|   S1   |========================
|        | |        |
|   S0   | +--------+
|        |         +--------+
+--------+=========|        |================
                   |   S2   | +--------+
                   |        | |        |
                   +--------+ |   S3   |
                              |        |
                              +--------+

When focus is on S0, 'focus output right' will first match S1 (the
closest output which overlaps in the highlighted area), then S2, but not
S3 (since S3 does not overlap into the highlighted area).

fixes #669
fixes #771

12 years agoi3bar: Honor "urgent" protocol hint by unhiding
Quentin Glidic [Tue, 21 Aug 2012 11:52:15 +0000 (13:52 +0200)]
i3bar: Honor "urgent" protocol hint by unhiding

12 years agoi3bar: Allow to force unhide with draw_bars
Quentin Glidic [Tue, 21 Aug 2012 11:51:40 +0000 (13:51 +0200)]
i3bar: Allow to force unhide with draw_bars

12 years agoi3bar: Allow child to specify signals to use
Quentin Glidic [Mon, 20 Aug 2012 20:20:37 +0000 (22:20 +0200)]
i3bar: Allow child to specify signals to use

We now wait for the child process to send the first line before stopping
it to use the signal which might be specified in the i3bar protocol
header
Since clients might use the same signal for both stop and cont, we also
save the stopped state of the child to avoid stopping it while hidden!

12 years agoi3bar: Fully parse the JSON header
Quentin Glidic [Mon, 3 Sep 2012 08:43:29 +0000 (10:43 +0200)]
i3bar: Fully parse the JSON header

12 years agoi3bar: Introduce i3bar_child struct
Quentin Glidic [Mon, 3 Sep 2012 08:23:25 +0000 (10:23 +0200)]
i3bar: Introduce i3bar_child struct

12 years agoi3bar: Handle the first line with another callback
Quentin Glidic [Mon, 3 Sep 2012 08:11:01 +0000 (10:11 +0200)]
i3bar: Handle the first line with another callback

12 years agoi3bar: Split JSON line logic to read_json_input
Quentin Glidic [Mon, 3 Sep 2012 07:52:17 +0000 (09:52 +0200)]
i3bar: Split JSON line logic to read_json_input

12 years agoi3bar: Split flat line logic to read_flat_input
Quentin Glidic [Mon, 3 Sep 2012 07:52:17 +0000 (09:52 +0200)]
i3bar: Split flat line logic to read_flat_input

12 years agoi3bar: Split stdin reading logic to get_buffer
Quentin Glidic [Mon, 3 Sep 2012 07:45:59 +0000 (09:45 +0200)]
i3bar: Split stdin reading logic to get_buffer

12 years agoi3bar: Rename determine_json_version to parse_json_header
Quentin Glidic [Wed, 22 Aug 2012 15:02:02 +0000 (17:02 +0200)]
i3bar: Rename determine_json_version to parse_json_header

12 years agodocs/i3bar-protocol: Document stop/cont_signal
Quentin Glidic [Mon, 20 Aug 2012 18:43:06 +0000 (20:43 +0200)]
docs/i3bar-protocol: Document stop/cont_signal

12 years agoi3bar: Rework unhide/hide on workspace urgency
Quentin Glidic [Tue, 21 Aug 2012 11:49:48 +0000 (13:49 +0200)]
i3bar: Rework unhide/hide on workspace urgency

We now check globally for workspace urgency instead of per-output since
the result is the same but we call unhide_bars/hide_bars only once this
way

12 years agotests: Bugfix: use exit_gracefully() in t/200-urgency-timer
Michael Stapelberg [Sat, 22 Sep 2012 12:51:38 +0000 (14:51 +0200)]
tests: Bugfix: use exit_gracefully() in t/200-urgency-timer

12 years agoMake "[move] workspace number" accept a default ws name after the ws number
Sebastian Ullrich [Fri, 31 Aug 2012 18:19:27 +0000 (20:19 +0200)]
Make "[move] workspace number" accept a default ws name after the ws number

12 years agocfgparse: be forgiving about a missing "ms" after a duration
Michael Stapelberg [Sat, 22 Sep 2012 12:21:35 +0000 (14:21 +0200)]
cfgparse: be forgiving about a missing "ms" after a duration

While it’s certainly better and clearer to specify it, we should do the
right thing when the unit is missing, just like CSS for example
(margin: 0; is okay, margin: 0px; too).

12 years agotests: rename double t/198, add boilerplate
Michael Stapelberg [Sat, 22 Sep 2012 12:20:19 +0000 (14:20 +0200)]
tests: rename double t/198, add boilerplate

12 years agotests: fix t/113-urgent.t after previous commit
Michael Stapelberg [Sat, 22 Sep 2012 12:19:20 +0000 (14:19 +0200)]
tests: fix t/113-urgent.t after previous commit

12 years agoimplement delayed urgency hint reset
Simon Elsbrock [Sat, 22 Sep 2012 11:48:22 +0000 (13:48 +0200)]
implement delayed urgency hint reset

If there is a client with an urgency hint on another workspace and
switching to this workspace would cause the urgency to be reset (by
moving the focusing to the client), delay the reset by some time. This
gives the user the chance to see it.

This commit adds the possibility to configure the urgency delay timer
duration using the 'force_display_urgency_hint' directive. Also,
documentation and a testcase was added to allow for automated checks of
the intended behavior.

fixes #482

12 years agofixes #776
chrysn [Tue, 4 Sep 2012 08:51:18 +0000 (10:51 +0200)]
fixes #776

this implements both the "move container to workspace back_and_forth" command
and movements to the same workspace when auto_back_and_forth is set.

it includes documentation and test suite additions by michael.

it also simplifies the workspace_show_by_name function (making use of
workspace_get accepting NULL pointers).

12 years agodon’t use reserved identifiers for include guards (left-overs)
Michael Stapelberg [Sat, 22 Sep 2012 11:31:08 +0000 (13:31 +0200)]
don’t use reserved identifiers for include guards (left-overs)

fixes #804

12 years agotests: add testcase for the 'mode' IPC event
Michael Stapelberg [Sat, 22 Sep 2012 11:10:01 +0000 (13:10 +0200)]
tests: add testcase for the 'mode' IPC event

12 years agotests: add missing boilerplate
Michael Stapelberg [Sat, 22 Sep 2012 10:56:01 +0000 (12:56 +0200)]
tests: add missing boilerplate

12 years agoAdd new subscribe event 'mode' for binding mode changes
Pavel Löbl [Fri, 21 Sep 2012 22:21:39 +0000 (00:21 +0200)]
Add new subscribe event 'mode' for binding mode changes

Introducing a new event to subscribe called mode. It's fired up
when i3 changes binding mode (like switching from default to resize).
IPC guide adjusted also.

12 years agoadd proper error handling for in-place restarts (Thanks Markus)
Michael Stapelberg [Fri, 21 Sep 2012 14:47:43 +0000 (16:47 +0200)]
add proper error handling for in-place restarts (Thanks Markus)

fixes #806

12 years agoUse ev_signal to avoid async-unsafe functions (Thanks Markus)
Michael Stapelberg [Fri, 21 Sep 2012 14:35:25 +0000 (16:35 +0200)]
Use ev_signal to avoid async-unsafe functions (Thanks Markus)

Functions such as fprintf() might be unsafe to use in a signal handler,
see http://stackoverflow.com/questions/3941271/#answer-3941563

By using ev_signal, libev will use a tiny signal handler which just
passes on the information and then calls (outside of the signal handler)
our callback function which can use fprintf() and other unsafe
functions.

fixes #803

12 years agodon’t use reversed identifiers for include guards (Thanks Markus)
Michael Stapelberg [Fri, 21 Sep 2012 13:36:25 +0000 (15:36 +0200)]
don’t use reversed identifiers for include guards (Thanks Markus)

Done with:

    sed -in 's/\(ifndef\|define\) _\([0-9A-Z_]*\)$/\1 I3_\2/' include/**/*.h

fixes #804

12 years agocomplete-run.pl: Check for missing executables
Sascha Kruse [Tue, 18 Sep 2012 13:36:40 +0000 (15:36 +0200)]
complete-run.pl: Check for missing executables

12 years agoMerge branch 'master' into next
Michael Stapelberg [Thu, 20 Sep 2012 09:34:26 +0000 (11:34 +0200)]
Merge branch 'master' into next

12 years agoMerge branch 'desktop-file'
Michael Stapelberg [Thu, 20 Sep 2012 09:34:26 +0000 (11:34 +0200)]
Merge branch 'desktop-file'

12 years agoFix xsession.desktop to comply to fdo standard
Kacper Kowalik (Xarthisius) [Wed, 19 Sep 2012 18:00:28 +0000 (20:00 +0200)]
Fix xsession.desktop to comply to fdo standard

For more information please see:
http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html

12 years agoMerge branch 'master' into next
Michael Stapelberg [Thu, 20 Sep 2012 09:20:00 +0000 (11:20 +0200)]
Merge branch 'master' into next

12 years agoMerge branch 'remove-ev'
Michael Stapelberg [Thu, 20 Sep 2012 09:20:00 +0000 (11:20 +0200)]
Merge branch 'remove-ev'

12 years agoremove superfluous ev.h include statements
Oliver Kiddle [Thu, 20 Sep 2012 02:01:01 +0000 (04:01 +0200)]
remove superfluous ev.h include statements

12 years agoMerge branch 'master' into next
Michael Stapelberg [Thu, 20 Sep 2012 08:56:58 +0000 (10:56 +0200)]
Merge branch 'master' into next

12 years agoMerge branch 'tiny-fixes'
Michael Stapelberg [Thu, 20 Sep 2012 08:56:33 +0000 (10:56 +0200)]
Merge branch 'tiny-fixes'

12 years agoclean old and new libi3 (Thanks SardemFF7)
Michael Stapelberg [Thu, 20 Sep 2012 08:55:26 +0000 (10:55 +0200)]
clean old and new libi3 (Thanks SardemFF7)

12 years agospelling fix: s/succesfully/successfully/
Michael Stapelberg [Thu, 20 Sep 2012 08:55:03 +0000 (10:55 +0200)]
spelling fix: s/succesfully/successfully/

12 years agoupdate debian packaging
Michael Stapelberg [Wed, 19 Sep 2012 16:44:13 +0000 (18:44 +0200)]
update debian packaging

12 years agoMerge branch 'next'
Michael Stapelberg [Wed, 19 Sep 2012 16:12:41 +0000 (18:12 +0200)]
Merge branch 'next'

12 years agoMerge branch 'release-4.3' into next
Michael Stapelberg [Wed, 19 Sep 2012 16:12:35 +0000 (18:12 +0200)]
Merge branch 'release-4.3' into next

12 years agofix make clean targets 4.3
Michael Stapelberg [Wed, 19 Sep 2012 16:05:51 +0000 (18:05 +0200)]
fix make clean targets

12 years agoman: set version to 4.3
Michael Stapelberg [Wed, 19 Sep 2012 15:53:27 +0000 (17:53 +0200)]
man: set version to 4.3

12 years agoman: update i3(1)
Michael Stapelberg [Wed, 19 Sep 2012 15:53:17 +0000 (17:53 +0200)]
man: update i3(1)

12 years ago--help: note that nVidia’s driver supports RandR from 302.17 on
Michael Stapelberg [Wed, 19 Sep 2012 15:52:56 +0000 (17:52 +0200)]
--help: note that nVidia’s driver supports RandR from 302.17 on

12 years agorelease notes: update and final touches
Michael Stapelberg [Wed, 19 Sep 2012 15:46:42 +0000 (17:46 +0200)]
release notes: update and final touches

12 years agouserguide: mention the FAQ
Michael Stapelberg [Wed, 19 Sep 2012 15:30:44 +0000 (17:30 +0200)]
userguide: mention the FAQ

12 years agouserguide: make moving cons/workspaces to other outputs its own section
Michael Stapelberg [Wed, 19 Sep 2012 15:13:00 +0000 (17:13 +0200)]
userguide: make moving cons/workspaces to other outputs its own section

Frequent requests for this functionality on IRC made me aware that it’s
not easily findable.

12 years agohacking-howto: fix wrong anchor to #_tree_reply
Simon Elsbrock [Sun, 16 Sep 2012 20:55:37 +0000 (22:55 +0200)]
hacking-howto: fix wrong anchor to #_tree_reply

12 years agoAllow changing the layout of workspaces by storing it (Thanks mhcerri)
Michael Stapelberg [Sun, 16 Sep 2012 20:53:41 +0000 (22:53 +0200)]
Allow changing the layout of workspaces by storing it (Thanks mhcerri)

Before commit 4976fa33504907510f1ee9e44884c116af0d801b, setting the
layout of workspaces to something else than the default would just mess
up the parent container of the workspace (the content container).

After that commit, it would create an unnecessary split container when
you change the layout _before_ opening any containers. To avoid this, we
now store the layout (similar to how the 'workspace_layout'
configuration directive works) and apply it when the first container is
attached to the workspace.

Fixes #796

12 years agoMerge branch 'master' into next
Michael Stapelberg [Sun, 16 Sep 2012 15:59:55 +0000 (17:59 +0200)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-fullscreen-scratch'
Michael Stapelberg [Sun, 16 Sep 2012 15:59:43 +0000 (17:59 +0200)]
Merge branch 'fix-fullscreen-scratch'

12 years agotoggle fullscreen on 'scratchpad show'
Simon Elsbrock [Thu, 6 Sep 2012 06:08:46 +0000 (08:08 +0200)]
toggle fullscreen on 'scratchpad show'

If the focused application is in fullscreen mode and 'scratchpad show'
is executed, toggle the fullscreen mode before showing the scratchpad
application. Otherwise, the scratchpad app would not be visible anyways
but focus would be stolen.

fixes #613

12 years agoMerge branch 'master' into next
Michael Stapelberg [Fri, 14 Sep 2012 11:18:04 +0000 (13:18 +0200)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-scratchpad-focus'
Michael Stapelberg [Fri, 14 Sep 2012 11:18:00 +0000 (13:18 +0200)]
Merge branch 'fix-scratchpad-focus'

12 years agoBugfix: Don’t focus the wrong workspace when moving to scratchpad (+test) (Thanks...
Michael Stapelberg [Fri, 14 Sep 2012 11:03:39 +0000 (13:03 +0200)]
Bugfix: Don’t focus the wrong workspace when moving to scratchpad (+test) (Thanks loblik)

The problem was that scratchpad_move() didn’t check whether the source
workspace was focused. Therefore, 'move scratchpad' only worked reliably
interactively , but not when used with criteria.

12 years agoupdate release notes to reflect the current i3-nagbar situation
Michael Stapelberg [Tue, 11 Sep 2012 11:19:05 +0000 (13:19 +0200)]
update release notes to reflect the current i3-nagbar situation

12 years agoOnly launch i3-nagbar for parse errors
Michael Stapelberg [Tue, 11 Sep 2012 11:17:36 +0000 (13:17 +0200)]
Only launch i3-nagbar for parse errors

12 years agoRemove support for resize increment size hints for tiling windows
Michael Stapelberg [Tue, 11 Sep 2012 11:11:47 +0000 (13:11 +0200)]
Remove support for resize increment size hints for tiling windows

As discussed on the mailing list and the bugtracker.

fixes #540

12 years agosighandler: use non-existing backtrace filenames ($TMPDIR/i3-backtrace.%pid.%idx...
Michael Stapelberg [Tue, 11 Sep 2012 11:07:20 +0000 (13:07 +0200)]
sighandler: use non-existing backtrace filenames ($TMPDIR/i3-backtrace.%pid.%idx.txt)

12 years agosasprintf() already handles errors, we don’t need to do that twice
Michael Stapelberg [Tue, 11 Sep 2012 11:02:59 +0000 (13:02 +0200)]
sasprintf() already handles errors, we don’t need to do that twice

12 years agosighandler: provide gdb with pipe stdin/stdout fds (necessary for gdb < 7.5)
Michael Stapelberg [Tue, 11 Sep 2012 10:57:53 +0000 (12:57 +0200)]
sighandler: provide gdb with pipe stdin/stdout fds (necessary for gdb < 7.5)

12 years agoReplace exit with backtrace in crash dialog
Bas Pape [Mon, 10 Sep 2012 14:47:05 +0000 (16:47 +0200)]
Replace exit with backtrace in crash dialog

When the user hits 'b', attach gdb and dump a backtrace to the tmpdir

12 years agoinclude the testcases in the dist tarball (required for building docs)
Michael Stapelberg [Mon, 10 Sep 2012 14:49:43 +0000 (16:49 +0200)]
include the testcases in the dist tarball (required for building docs)

12 years agodocs/testsuite: add pointers to additional docs
Michael Stapelberg [Mon, 10 Sep 2012 12:13:43 +0000 (14:13 +0200)]
docs/testsuite: add pointers to additional docs

12 years agoadd boilerplate to all testcases with documentation references
Michael Stapelberg [Mon, 10 Sep 2012 12:09:01 +0000 (14:09 +0200)]
add boilerplate to all testcases with documentation references

12 years agofix typo
Michael Stapelberg [Mon, 10 Sep 2012 12:08:52 +0000 (14:08 +0200)]
fix typo

12 years agodebian: add lib-i3test.html and lib-i3test-test.html to docs
Michael Stapelberg [Mon, 10 Sep 2012 11:31:34 +0000 (13:31 +0200)]
debian: add lib-i3test.html and lib-i3test-test.html to docs

12 years agotests: document each and every i3test function
Michael Stapelberg [Mon, 10 Sep 2012 11:30:47 +0000 (13:30 +0200)]
tests: document each and every i3test function

12 years agotests: move does_i3_live to i3test::Test
Michael Stapelberg [Mon, 10 Sep 2012 11:29:50 +0000 (13:29 +0200)]
tests: move does_i3_live to i3test::Test

12 years agotests: make cmp_float a real test instruction
Michael Stapelberg [Mon, 10 Sep 2012 11:23:49 +0000 (13:23 +0200)]
tests: make cmp_float a real test instruction

12 years agodocs: generate HTML from testsuite POD documentation
Michael Stapelberg [Mon, 10 Sep 2012 10:03:14 +0000 (12:03 +0200)]
docs: generate HTML from testsuite POD documentation

12 years agouse pwd -P instead of readlink -f (Thanks Marcus Crestani)
Michael Stapelberg [Sun, 9 Sep 2012 13:39:49 +0000 (15:39 +0200)]
use pwd -P instead of readlink -f (Thanks Marcus Crestani)

readlink -f does not work on Mac OS X

12 years agobuild fix: remove src/cmdparse.* in make clean
Michael Stapelberg [Sun, 9 Sep 2012 13:30:37 +0000 (15:30 +0200)]
build fix: remove src/cmdparse.* in make clean

This was removed in commit 8853334bbefd57f8f9bd6bdeb0c221616b40b446

12 years agodon’t errnously detect --release bindings as duplicates
Michael Stapelberg [Thu, 6 Sep 2012 16:11:16 +0000 (18:11 +0200)]
don’t errnously detect --release bindings as duplicates

12 years agodocs/userguide: document the --release flag for key bindings
Michael Stapelberg [Thu, 6 Sep 2012 15:31:30 +0000 (17:31 +0200)]
docs/userguide: document the --release flag for key bindings

12 years agodocs/userguide: use --no-startup-id for executing shell scripts
Michael Stapelberg [Thu, 6 Sep 2012 15:31:16 +0000 (17:31 +0200)]
docs/userguide: use --no-startup-id for executing shell scripts

12 years agoignore modifiers for KeyRelease bindings
Michael Stapelberg [Thu, 6 Sep 2012 15:24:30 +0000 (17:24 +0200)]
ignore modifiers for KeyRelease bindings

For the following binding:

    # Simulate ctrl+v upon pressing $mod+x
    bindsym --release $mod+x exec --no-startup-id xdotool key --clearmodifiers ctrl+v

you can now use either:
1. press $mod, press x, release x, release $mod
2. press $mod, press x, release $mod, release x

fixes #485

12 years agonaive implementation of 'bindsym --release' (and bindcode)
Michael Stapelberg [Thu, 6 Sep 2012 15:04:31 +0000 (17:04 +0200)]
naive implementation of 'bindsym --release' (and bindcode)

The implementation is naive because the user has to generate exactly the
event he specified. That is, if you use this binding:

    bindsym --release $mod+x exec import /tmp/latest-screenshot.png

Then it will only be triggered if you hit $mod, hit x, release x,
release $mod. It will not be triggered if you hit $mod, hit x, release
$mod, release x. The reason is that the KeyRelease event in the latter
case will not have the modifier in its flags, so it doesn’t match the
configured binding.

12 years agore-indent src/config.c
Michael Stapelberg [Thu, 6 Sep 2012 12:49:14 +0000 (14:49 +0200)]
re-indent src/config.c

12 years agoupdate release-notes
Michael Stapelberg [Thu, 6 Sep 2012 07:47:50 +0000 (09:47 +0200)]
update release-notes

12 years agorendering: ceil() instead of truncating for tabbed deco_rect width (Thanks szalik)
Michael Stapelberg [Wed, 5 Sep 2012 21:54:56 +0000 (23:54 +0200)]
rendering: ceil() instead of truncating for tabbed deco_rect width (Thanks szalik)

In tabbed mode, the available width (say 1280) is divided by the amount
of child containers (say 3). Before this commit, we just truncated the
result and would end up with 426 + 426 + 426 = 1278 pixels that we
render to. Now we render a bit too much, but that’ll at least not give
us graphics corruption on any side :).

fixes #791

12 years agofix format string warnings
Michael Stapelberg [Wed, 5 Sep 2012 20:22:48 +0000 (22:22 +0200)]
fix format string warnings

12 years agobugfix: forgot to mark split containers as split = true (+test) (Thanks szalik)
Michael Stapelberg [Wed, 5 Sep 2012 20:03:45 +0000 (22:03 +0200)]
bugfix: forgot to mark split containers as split = true (+test) (Thanks szalik)

When the workspace layout (formerly orientation) was forced to change
due to a move command, the split container we created was not marked as
split = true, which caused tree_flatten() to errnously kill the contents
of it and thus one window ended up unmanaged.

Also, the logic in tree_flatten() was inverted due to commit de94f6da.

fixes #790

12 years agouserguide: point out explicitly how to use startup-notifications
Michael Stapelberg [Wed, 5 Sep 2012 19:10:26 +0000 (21:10 +0200)]
userguide: point out explicitly how to use startup-notifications

12 years agostartup-notifications: keep sequence around for 30s after completion
Michael Stapelberg [Wed, 5 Sep 2012 19:00:08 +0000 (21:00 +0200)]
startup-notifications: keep sequence around for 30s after completion

This changes the fact that Firefox would not be launched on the correct
workspace because it marked the startup sequence as completed *before*
actually mapping all of its windows.

To test this, go to workspace 3 and run this command in a terminal:
    i3-msg 'exec iceweasel; workspace 4'
That will make i3 start iceweasel (and create a proper startup
notification context for it), then immediately switch to workspace 4
(before iceweasel could possibly start).

The iceweasel window(s) should appear on workspace 3.

12 years agoMerge branch 'master' into next
Michael Stapelberg [Wed, 5 Sep 2012 15:09:43 +0000 (17:09 +0200)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-nagbar-exit'
Michael Stapelberg [Wed, 5 Sep 2012 15:09:40 +0000 (17:09 +0200)]
Merge branch 'fix-nagbar-exit'

12 years agoBugfix: Use _exit() instead of exit to avoid calling atexit functions (Thanks f8l)
Michael Stapelberg [Wed, 5 Sep 2012 15:09:23 +0000 (17:09 +0200)]
Bugfix: Use _exit() instead of exit to avoid calling atexit functions (Thanks f8l)

Basically, this is the same fix as commit 914ca6cf :-/. Once again, we
called exit() instead of _exit(), but this time it lead to a kill(0,
SIGTERM), effectively killing all processes in the i3 process group,
including i3 itself. The cause for the kill(0) is that nagbar_pid is set
to 0 by fork(), signaling we’re in the child process. The cleanup
handler only checks for nagbar_pid being -1 as a special value, however.

12 years agocon_set_layout: always use the parent container, handle workspaces properly
Michael Stapelberg [Tue, 4 Sep 2012 22:22:38 +0000 (00:22 +0200)]
con_set_layout: always use the parent container, handle workspaces properly

Previously, in case 'layout stacked' (for example) had been called
interactively, con_set_layout would be called with focused->parent,
while with for_window, it’d be called on the actual matching container.

This difference in behavior was the cause for the inability to use
'for_window [class="XTerm"] layout tabbed', which now works \o/, but
more on that below.

The change also allows us to handle the case of the user selecting a
CT_WORKSPACE container properly, that is, by using the special case and
creating a new split container on the workspace which gets all the
contents, but a new layout.

Now, before you are enthusiastic about the change and try to use
for_window magic in your config file, keep in mind: The 'layout' command
acts on the parent split container. That is, when using a line such as
this one:

    for_window [class="XTerm"] layout tabbed

…and opening an XTerm when on a workspace with one single other window,
the whole workspace will be set tabbed (just as previously when you
opened an XTerm and sent 'layout tabbed' manually).

Therefore, to open XTerm in its own tabbed split container, you need to
split before:

    for_window [class="XTerm"] split v, layout tabbed

The comma here is important! It says that the second command should not
be treated as an entirely unrelated command, but it should also relate
the matching window (while it does work with a ';', that is prone to
race-conditions and should be avoided).

fixes #358

12 years agoMerge branch 'master' into next
Michael Stapelberg [Tue, 4 Sep 2012 20:49:16 +0000 (22:49 +0200)]
Merge branch 'master' into next

12 years agoMerge branch 'fix-1px-flickering'
Michael Stapelberg [Tue, 4 Sep 2012 20:49:12 +0000 (22:49 +0200)]
Merge branch 'fix-1px-flickering'

12 years agoBugfix: fix flickering with 1pixel border tabbed layouts (Thanks julien)
Michael Stapelberg [Tue, 4 Sep 2012 20:47:12 +0000 (22:47 +0200)]
Bugfix: fix flickering with 1pixel border tabbed layouts (Thanks julien)

When you have a tabbed container which has had more than one container
but currently has precisely one container, there was a bit of flickering
when switching workspaces occasionally. This commit fixes it by properly
setting the height of the deco_rect (and thus the X11 window) to not
make the old window contents show up for a minimum period of time.

fixes #777

12 years agotests: introduce is_num_children test
Michael Stapelberg [Tue, 4 Sep 2012 20:24:13 +0000 (22:24 +0200)]
tests: introduce is_num_children test

This makes it clearer what the tests are actually doing and kills quite
a bit of useless repetitions

12 years agoMerge branch 'master' into next
Michael Stapelberg [Tue, 4 Sep 2012 18:21:31 +0000 (20:21 +0200)]
Merge branch 'master' into next