Commit Graph

4341 Commits

Author SHA1 Message Date
Michael Stapelberg
19883108a9 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
2012-09-22 16:54:59 +02:00
Quentin Glidic
89ca48be20 i3bar: Honor "urgent" protocol hint by unhiding 2012-09-22 15:15:57 +02:00
Quentin Glidic
830829922b i3bar: Allow to force unhide with draw_bars 2012-09-22 15:15:57 +02:00
Quentin Glidic
8210c6be79 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!
2012-09-22 15:13:21 +02:00
Quentin Glidic
1e114d7ab5 i3bar: Fully parse the JSON header 2012-09-22 15:13:21 +02:00
Quentin Glidic
34dc6d4d64 i3bar: Introduce i3bar_child struct 2012-09-22 15:13:21 +02:00
Quentin Glidic
310ae2d0b5 i3bar: Handle the first line with another callback 2012-09-22 15:13:21 +02:00
Quentin Glidic
f691927aa7 i3bar: Split JSON line logic to read_json_input 2012-09-22 15:13:21 +02:00
Quentin Glidic
103b1a3f3a i3bar: Split flat line logic to read_flat_input 2012-09-22 15:13:21 +02:00
Quentin Glidic
3732cef764 i3bar: Split stdin reading logic to get_buffer 2012-09-22 15:13:21 +02:00
Quentin Glidic
13ecc79fcc i3bar: Rename determine_json_version to parse_json_header 2012-09-22 15:13:21 +02:00
Quentin Glidic
f1f0de1c49 docs/i3bar-protocol: Document stop/cont_signal 2012-09-22 15:13:21 +02:00
Quentin Glidic
2e5838fb49 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
2012-09-22 15:13:21 +02:00
Michael Stapelberg
2fba607e4d tests: Bugfix: use exit_gracefully() in t/200-urgency-timer 2012-09-22 14:51:38 +02:00
Sebastian Ullrich
236f9f45e3 Make "[move] workspace number" accept a default ws name after the ws number 2012-09-22 14:34:05 +02:00
Michael Stapelberg
c69fba3662 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).
2012-09-22 14:21:35 +02:00
Michael Stapelberg
66d786762a tests: rename double t/198, add boilerplate 2012-09-22 14:20:19 +02:00
Michael Stapelberg
9dbbe400a1 tests: fix t/113-urgent.t after previous commit 2012-09-22 14:19:20 +02:00
Simon Elsbrock
28104a480c 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
2012-09-22 14:12:09 +02:00
chrysn
e15e37f922 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).
2012-09-22 13:35:31 +02:00
Michael Stapelberg
a01bac13fe don’t use reserved identifiers for include guards (left-overs)
fixes #804
2012-09-22 13:31:08 +02:00
Michael Stapelberg
7a2e105931 tests: add testcase for the 'mode' IPC event 2012-09-22 13:20:53 +02:00
Michael Stapelberg
77134c0dbf tests: add missing boilerplate 2012-09-22 12:56:01 +02:00
Pavel Löbl
7cffd79140 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.
2012-09-22 12:52:49 +02:00
Michael Stapelberg
8c8fce82e5 add proper error handling for in-place restarts (Thanks Markus)
fixes #806
2012-09-21 16:47:43 +02:00
Michael Stapelberg
514265b529 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
2012-09-21 16:35:25 +02:00
Michael Stapelberg
d638e3029a 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
2012-09-21 15:36:25 +02:00
Sascha Kruse
f9c903ba62 complete-run.pl: Check for missing executables 2012-09-20 11:37:49 +02:00
Michael Stapelberg
393a1c0851 Merge branch 'desktop-file' 2012-09-20 11:34:26 +02:00
Michael Stapelberg
d852c17468 Merge branch 'master' into next 2012-09-20 11:34:26 +02:00
Kacper Kowalik (Xarthisius)
9fa0dc657b 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
2012-09-20 11:34:11 +02:00
Michael Stapelberg
7e313b0385 Merge branch 'remove-ev' 2012-09-20 11:20:00 +02:00
Michael Stapelberg
f039a0ded4 Merge branch 'master' into next 2012-09-20 11:20:00 +02:00
Oliver Kiddle
f7d825062a remove superfluous ev.h include statements 2012-09-20 11:15:17 +02:00
Michael Stapelberg
485b49bbe3 Merge branch 'master' into next 2012-09-20 10:56:58 +02:00
Michael Stapelberg
e1e898f8e1 Merge branch 'tiny-fixes' 2012-09-20 10:56:33 +02:00
Michael Stapelberg
e4019caf7e clean old and new libi3 (Thanks SardemFF7) 2012-09-20 10:55:26 +02:00
Michael Stapelberg
7104780558 spelling fix: s/succesfully/successfully/ 2012-09-20 10:55:03 +02:00
Michael Stapelberg
1bc41edb6d update debian packaging 2012-09-19 18:44:13 +02:00
Michael Stapelberg
9c3ece56d2 Merge branch 'next' 2012-09-19 18:12:41 +02:00
Michael Stapelberg
d7215ac54d Merge branch 'release-4.3' into next 2012-09-19 18:12:35 +02:00
Michael Stapelberg
b9fde552d0 fix make clean targets 2012-09-19 18:05:51 +02:00
Michael Stapelberg
c808a39fb2 man: set version to 4.3 2012-09-19 17:53:27 +02:00
Michael Stapelberg
156bd24f23 man: update i3(1) 2012-09-19 17:53:17 +02:00
Michael Stapelberg
99e91c8049 --help: note that nVidia’s driver supports RandR from 302.17 on 2012-09-19 17:52:56 +02:00
Michael Stapelberg
672c965c56 release notes: update and final touches 2012-09-19 17:46:42 +02:00
Michael Stapelberg
9febbe119a userguide: mention the FAQ 2012-09-19 17:30:44 +02:00
Michael Stapelberg
c5db01e6f8 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.
2012-09-19 17:13:00 +02:00
Simon Elsbrock
91d6fde7f5 hacking-howto: fix wrong anchor to #_tree_reply 2012-09-16 23:28:20 +02:00
Michael Stapelberg
cd4dd365e8 Allow changing the layout of workspaces by storing it (Thanks mhcerri)
Before commit 4976fa3350, 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
2012-09-16 22:53:41 +02:00