]> git.sur5r.net Git - i3/i3/log
i3/i3
10 years agoMerge branch 'master' into next
Michael Stapelberg [Mon, 13 Jan 2014 22:36:47 +0000 (23:36 +0100)]
Merge branch 'master' into next

10 years agoMerge branch 'fix-move-focus'
Michael Stapelberg [Mon, 13 Jan 2014 22:36:34 +0000 (23:36 +0100)]
Merge branch 'fix-move-focus'

10 years agoBugfix: `move <direction>` sends workspace focus
Tony Crisci [Mon, 13 Jan 2014 20:36:11 +0000 (15:36 -0500)]
Bugfix: `move <direction>` sends workspace focus

Make sure the command `move <direction>` properly sends the workspace
focus ipc event required for i3bar to be properly updated and redrawn.

Make `ipc_send_workspace_focus_event publicly available from ipc.h for
more flexible event sending.

10 years agoMerge branch 'master' into next
Michael Stapelberg [Mon, 13 Jan 2014 22:35:22 +0000 (23:35 +0100)]
Merge branch 'master' into next

10 years agoMerge branch 'fix-eof-msg'
Michael Stapelberg [Mon, 13 Jan 2014 22:35:22 +0000 (23:35 +0100)]
Merge branch 'fix-eof-msg'

10 years agoi3bar Bugfix: don't show "EOF" status line error
Tony Crisci [Tue, 7 Jan 2014 18:32:21 +0000 (13:32 -0500)]
i3bar Bugfix: don't show "EOF" status line error

When the `status_command` sends EOF, it is terminated. Terminating this
process prints an error message to the status line (hence, a race
condition). This error message is always more useful than the former
"EOF" status line error because it shows the exit code.

10 years agoAdd `input_type` enum to `Binding` typedef
Tony Crisci [Thu, 9 Jan 2014 16:59:21 +0000 (11:59 -0500)]
Add `input_type` enum to `Binding` typedef

An input type of B_KEYBOARD will indicated this binding was created with
"bindsym", "bindcode", or "bind" and should only run on key press
events.

An input type of B_MOUSE will indicate this binding was created with
"bindmouse" and should only run on button press events (not yet
implemented).

For more information see #558.

10 years agoi3bar: Amend status line error 127 message
Tony Crisci [Wed, 8 Jan 2014 07:51:27 +0000 (02:51 -0500)]
i3bar: Amend status line error 127 message

Exit 127 can be returned by the shell when the command is not found or
when the `status_command` process returns 127 because of a missing C
library dependency.

10 years agoMovement into a branch considers movement direction
Tony Crisci [Tue, 26 Nov 2013 10:46:10 +0000 (05:46 -0500)]
Movement into a branch considers movement direction

Change the behavior of movement into a branch with respect to the
position the moving con will be placed within the branch when the
movement is complete.

The correct position is determined by the direction of movement or the
position of the focused-inactive container within the branch.

If the direction of movement is the same as the orientation of the
branch container, append or prepend the container to the branch in the
obvious way.  If the movement is to the right or downward, insert the
moving container in the first position (i.e., the leftmost or top
position resp.) If the movement is to the left or upward, insert the
moving container in the last position (i.e., the rightmost or bottom
position resp.)

If the direction of movement is different from the orientation of the
branch container, insert the container into the branch after the
focused-inactive container.

fixes #1060

10 years agouse designated initializers for yajl_callbacks struct
Alexander Kedrik [Wed, 1 Jan 2014 16:19:55 +0000 (20:19 +0400)]
use designated initializers for yajl_callbacks struct

10 years agoadd testcase for #1149
Michael Stapelberg [Sun, 5 Jan 2014 19:37:42 +0000 (20:37 +0100)]
add testcase for #1149

10 years agoipc: dump new "swallows" properties
Michael Stapelberg [Sun, 5 Jan 2014 19:30:03 +0000 (20:30 +0100)]
ipc: dump new "swallows" properties

10 years agosanity check: drop swallows for split containers (Thanks xeen)
Michael Stapelberg [Sun, 5 Jan 2014 19:25:47 +0000 (20:25 +0100)]
sanity check: drop swallows for split containers (Thanks xeen)

fixes #1149

10 years agoi3-save-tree: only create "swallows" key for leaf nodes (Thanks xeen)
Michael Stapelberg [Sun, 5 Jan 2014 19:10:24 +0000 (20:10 +0100)]
i3-save-tree: only create "swallows" key for leaf nodes (Thanks xeen)

fixes #1149

10 years agoRevert "use designated initializers for yajl_callbacks struct"
Michael Stapelberg [Sun, 5 Jan 2014 12:05:31 +0000 (13:05 +0100)]
Revert "use designated initializers for yajl_callbacks struct"

This reverts commit 705b43294add2fffede086c0c072dc5a849ffc49.

This commit broke i3bar for some users.

10 years agofix killing placeholder windows
Michael Stapelberg [Sat, 4 Jan 2014 21:24:47 +0000 (22:24 +0100)]
fix killing placeholder windows

The only consequence of the previous situation was that there was a
misleading log message.

10 years agorun con_fix_percent unconditionally, not only on parsing errors
Michael Stapelberg [Sat, 4 Jan 2014 20:59:41 +0000 (21:59 +0100)]
run con_fix_percent unconditionally, not only on parsing errors

10 years agot/215-layout-restore-crash: fix test description
Michael Stapelberg [Sat, 4 Jan 2014 20:57:35 +0000 (21:57 +0100)]
t/215-layout-restore-crash: fix test description

10 years agotests: add t/215-layout-restore-crash.t for the last couple of commits
Michael Stapelberg [Sat, 4 Jan 2014 20:39:33 +0000 (21:39 +0100)]
tests: add t/215-layout-restore-crash.t for the last couple of commits

10 years agoreturn parse errors via IPC for append_layout
Michael Stapelberg [Sat, 4 Jan 2014 20:39:13 +0000 (21:39 +0100)]
return parse errors via IPC for append_layout

10 years agofix percentages when loading layouts
Michael Stapelberg [Sat, 4 Jan 2014 20:30:51 +0000 (21:30 +0100)]
fix percentages when loading layouts

This is more forgiving for users who delete containers from their layout
file and don’t update the “percent” values.

10 years agoBugfix: set all parsing_* variables to false when starting parsing
Michael Stapelberg [Sat, 4 Jan 2014 20:23:12 +0000 (21:23 +0100)]
Bugfix: set all parsing_* variables to false when starting parsing

10 years agoBugfix: fix crash when layout JSON file is partially invalid (Thanks xeen)
Michael Stapelberg [Sat, 4 Jan 2014 20:22:12 +0000 (21:22 +0100)]
Bugfix: fix crash when layout JSON file is partially invalid (Thanks xeen)

Fixes #1145

10 years agoDisable render-time pointer warps if asked
Tony Crisci [Sat, 4 Jan 2014 12:04:56 +0000 (07:04 -0500)]
Disable render-time pointer warps if asked

When `focus_follows_mouse` configuration option is disabled, do not warp
the pointer when focus changes outputs after rendering.

Rationale: this option is meant to be disabled by users who have a setup
where the mouse is usually in the way. These users tend to move the
mouse to a corner or use a utility to hide the pointer when it is not
active. When this user switches focus between outputs, the mouse is
placed in the center of the screen.

This is clearly against the spirit of disabling `focus_follows_mouse`.
Disabling this option now implies disabling "mouse follows focus".

10 years agouse designated initializers for yajl_callbacks struct
Alexander Kedrik [Wed, 1 Jan 2014 16:19:55 +0000 (20:19 +0400)]
use designated initializers for yajl_callbacks struct

10 years agoremove unnecessary forward declaration of set_statusline_error
Alexander Kedrik [Wed, 1 Jan 2014 15:23:10 +0000 (19:23 +0400)]
remove unnecessary forward declaration of set_statusline_error

Attributes can be added to function definitions.
Tested with gcc 4.8.2 and clang 3.3

10 years agoFix 'gcc -Wextra -Wno-unused-parameter'.
Peter Boström [Sat, 4 Jan 2014 12:18:38 +0000 (13:18 +0100)]
Fix 'gcc -Wextra -Wno-unused-parameter'.

10 years agoMerge branch 'docs-debugging'
Michael Stapelberg [Sat, 4 Jan 2014 11:23:06 +0000 (12:23 +0100)]
Merge branch 'docs-debugging'

10 years agoMerge branch 'master' into next
Michael Stapelberg [Sat, 4 Jan 2014 11:23:06 +0000 (12:23 +0100)]
Merge branch 'master' into next

10 years agoinstall i3-with-shmlog.xsession.desktop, overwrite symlink if it exists
Michael Stapelberg [Sat, 4 Jan 2014 11:22:53 +0000 (12:22 +0100)]
install i3-with-shmlog.xsession.desktop, overwrite symlink if it exists

10 years agoMerge branch 'master' into next
Michael Stapelberg [Sat, 4 Jan 2014 11:20:12 +0000 (12:20 +0100)]
Merge branch 'master' into next

10 years agoMerge branch 'docs-debugging'
Michael Stapelberg [Sat, 4 Jan 2014 11:19:52 +0000 (12:19 +0100)]
Merge branch 'docs-debugging'

10 years agoenable shmlog when invoked as i3-with-shmlog, install symlink + .desktop file
Michael Stapelberg [Sat, 4 Jan 2014 11:15:50 +0000 (12:15 +0100)]
enable shmlog when invoked as i3-with-shmlog, install symlink + .desktop file

10 years agodocs/debugging: use a version command that will work with i3 < 4.3
Michael Stapelberg [Sat, 4 Jan 2014 11:06:21 +0000 (12:06 +0100)]
docs/debugging: use a version command that will work with i3 < 4.3

10 years agodocs/debugging: merge the debug symbols/backtrace section
Michael Stapelberg [Sat, 4 Jan 2014 11:04:43 +0000 (12:04 +0100)]
docs/debugging: merge the debug symbols/backtrace section

We rarely have crashes, almost always we just need logs.

10 years agodocs/debugging: include supported version, recommend --moreversion
Michael Stapelberg [Sat, 4 Jan 2014 10:54:23 +0000 (11:54 +0100)]
docs/debugging: include supported version, recommend --moreversion

10 years agodocs/debugging: explain how to enable logging on the fly
Michael Stapelberg [Sat, 4 Jan 2014 10:46:26 +0000 (11:46 +0100)]
docs/debugging: explain how to enable logging on the fly

10 years agodocs/debugging: update version numbers
Michael Stapelberg [Sat, 4 Jan 2014 10:46:12 +0000 (11:46 +0100)]
docs/debugging: update version numbers

10 years agodocs/debugging: use bzip2 for consistency with the new ticket form (Thanks x33a)
Michael Stapelberg [Sat, 4 Jan 2014 10:35:06 +0000 (11:35 +0100)]
docs/debugging: use bzip2 for consistency with the new ticket form (Thanks x33a)

10 years agoFix clang -Wextra except -Wunused-parameter.
Peter Boström [Wed, 25 Dec 2013 19:01:37 +0000 (20:01 +0100)]
Fix clang -Wextra except -Wunused-parameter.

Cleared all warnings that occur when passing
CFLAGS="-Wall -Wextra -Wno-unused-parameter" to make using clang 3.3 on
Linux x86-64.

10 years agoi3bar: Don't start child unless status_command
Tony Crisci [Fri, 27 Dec 2013 03:00:06 +0000 (22:00 -0500)]
i3bar: Don't start child unless status_command

If a command is passed to `start_child` which is NULL, such as in the
case when there is no `status_command` specified in the bar config, do
not start a child process to listen on stdin.

fixes #1140

10 years agoSize resizebar according to container size.
Peter Boström [Tue, 24 Dec 2013 11:57:34 +0000 (12:57 +0100)]
Size resizebar according to container size.

10 years agoSnap pointer to resize bar on drag resize
Tony Crisci [Sat, 21 Dec 2013 19:29:22 +0000 (14:29 -0500)]
Snap pointer to resize bar on drag resize

When the user initiates a drag resize, draw the resize bar on the border
of the two involved containers and snap the pointer.

This solution produces cleaner code than the former approach where the
caller obfuscated the click coordinates of the event. This may confuse
someone expecting a true button press event.

Fixes an issue where the resize cursor is not shown when the resize bar
is clicked until the user begins to drag the mouse.

Fixes an issue where focus is not properly updated after the drag is
complete when `focus_follows_mouse' option is set, leaving the pointer
in an unfocused window in some cases.

Fixes an issue where the resize bar may jump a few pixels when the mouse
is first moved.

(Thanks to pbos for suggesting this fix and providing an example
implementation)

10 years agoUse #pragma once
Alexander Kedrik [Sun, 29 Dec 2013 02:11:50 +0000 (06:11 +0400)]
Use #pragma once

 #pragma once is safer and simpler. According to Wikipedia it's supported by all major compilers.

10 years agoMerge branch 'fix-tray-mapped'
Michael Stapelberg [Wed, 1 Jan 2014 10:10:26 +0000 (11:10 +0100)]
Merge branch 'fix-tray-mapped'

10 years agoMerge branch 'master' into next
Michael Stapelberg [Wed, 1 Jan 2014 10:10:26 +0000 (11:10 +0100)]
Merge branch 'master' into next

10 years agoi3bar: Set `mapped` flag on trayclient creation
Tony Crisci [Thu, 26 Dec 2013 05:30:21 +0000 (00:30 -0500)]
i3bar: Set `mapped` flag on trayclient creation

When a trayclient is first created as a structure in memory, explicitly
set the `mapped` flag to false. Otherwise it may initialize to `true` in
some circumstances without actually being mapped, causing a request to
be mapped from the client to be ignored.

Create the trayclient in memory before handling a request to be mapped
immediately.

fixes #1138

10 years agoinclude i3-save-tree in dist tarballs
Michael Stapelberg [Tue, 24 Dec 2013 17:07:07 +0000 (18:07 +0100)]
include i3-save-tree in dist tarballs

10 years agoinstall i3-save-tree(1) (Thanks Marcin)
Michael Stapelberg [Tue, 24 Dec 2013 15:15:43 +0000 (16:15 +0100)]
install i3-save-tree(1) (Thanks Marcin)

10 years agoMerge branch 'dpi-log'
Michael Stapelberg [Tue, 24 Dec 2013 09:37:14 +0000 (10:37 +0100)]
Merge branch 'dpi-log'

10 years agoMerge branch 'master' into next
Michael Stapelberg [Tue, 24 Dec 2013 09:37:14 +0000 (10:37 +0100)]
Merge branch 'master' into next

10 years agoonly LOG() the DPI when it changes, DLOG() it otherwise (Thanks lkraav)
Michael Stapelberg [Tue, 24 Dec 2013 09:35:56 +0000 (10:35 +0100)]
only LOG() the DPI when it changes, DLOG() it otherwise (Thanks lkraav)

This avoids flooding stdout every time some text (e.g. a window
decoration) is drawn, yet leaves the message in place when it’s actually
relevant (upon DPI changes).

fixes #1115

10 years agodebian/: add perl recommends to i3-wm for i3-save-tree(1)
Michael Stapelberg [Sun, 22 Dec 2013 20:54:13 +0000 (21:54 +0100)]
debian/: add perl recommends to i3-wm for i3-save-tree(1)

10 years agoupdate DEPENDS
Michael Stapelberg [Sun, 15 Dec 2013 20:31:18 +0000 (21:31 +0100)]
update DEPENDS

10 years agoadd i3-save-tree(1) which dumps the layout of a workspace or an output
Michael Stapelberg [Sun, 15 Dec 2013 20:29:21 +0000 (21:29 +0100)]
add i3-save-tree(1) which dumps the layout of a workspace or an output

10 years agoipc: dump window properties when not restarting inplace
Michael Stapelberg [Sun, 15 Dec 2013 20:29:05 +0000 (21:29 +0100)]
ipc: dump window properties when not restarting inplace

10 years agodragging: instead of using a custom event loop, use libev
Michael Stapelberg [Sun, 15 Dec 2013 16:30:06 +0000 (17:30 +0100)]
dragging: instead of using a custom event loop, use libev

This is done by installing a new check watcher that replaces the main
X11 event handler and calling ev_run with EVRUN_ONCE until the dragging
loop left state DRAGGING.

With this commit, other handlers, most notably the redraw handler for
placeholder windows, get a chance to run when dragging (placeholder!)
windows around.

10 years agoreconnect when the restore X11 connection dies
Michael Stapelberg [Sun, 15 Dec 2013 14:17:37 +0000 (15:17 +0100)]
reconnect when the restore X11 connection dies

This could happen if a user uses xkill(1) on a placeholder window.

10 years agokill placeholder windows when the actual window appears
Michael Stapelberg [Sun, 15 Dec 2013 14:00:26 +0000 (15:00 +0100)]
kill placeholder windows when the actual window appears

10 years agoreplace never-true condition with a working one
Michael Stapelberg [Sun, 15 Dec 2013 13:57:04 +0000 (14:57 +0100)]
replace never-true condition with a working one

state->initial is set to false before calling x_push_node() since we
began pushing the window stack before pushing changes. Therefore, the
condition could never be true.

10 years agofix test after renaming role to window_role
Michael Stapelberg [Sun, 15 Dec 2013 13:56:34 +0000 (14:56 +0100)]
fix test after renaming role to window_role

10 years agointroduce client.placeholder color
Michael Stapelberg [Sun, 15 Dec 2013 10:42:40 +0000 (11:42 +0100)]
introduce client.placeholder color

10 years agoset original window title on placeholder windows
Michael Stapelberg [Sun, 15 Dec 2013 10:32:36 +0000 (11:32 +0100)]
set original window title on placeholder windows

10 years agouse root window color depth instead of hard-coded 24
Michael Stapelberg [Sun, 15 Dec 2013 10:28:50 +0000 (11:28 +0100)]
use root window color depth instead of hard-coded 24

10 years agodisplay swallows criteria in placeholder windows
Michael Stapelberg [Sun, 15 Dec 2013 10:25:58 +0000 (11:25 +0100)]
display swallows criteria in placeholder windows

10 years agolayout restore: create and render placeholder windows
Michael Stapelberg [Sat, 14 Dec 2013 21:49:33 +0000 (22:49 +0100)]
layout restore: create and render placeholder windows

This is not entirely done yet, but TODO entries are placed in the code
where appropriate.

10 years agoadd debug message to trace match deletions
Michael Stapelberg [Sat, 14 Dec 2013 17:33:18 +0000 (18:33 +0100)]
add debug message to trace match deletions

10 years agoload_layout.c: use *LOG instead of (f)printf
Michael Stapelberg [Sat, 14 Dec 2013 15:28:54 +0000 (16:28 +0100)]
load_layout.c: use *LOG instead of (f)printf

10 years agoallow parsing multiple nodes from a json layout
Michael Stapelberg [Sat, 14 Dec 2013 15:25:54 +0000 (16:25 +0100)]
allow parsing multiple nodes from a json layout

10 years agoGET_TREE: serialize container type into a string
Michael Stapelberg [Sat, 14 Dec 2013 13:50:44 +0000 (14:50 +0100)]
GET_TREE: serialize container type into a string

So far, this was blessed for internal use only (by virtue of not being
in the documentation), but we want to expose it for the stored layouts.

10 years agolayout restore: support more criteria, match only once (+test)
Michael Stapelberg [Sat, 14 Dec 2013 10:44:06 +0000 (11:44 +0100)]
layout restore: support more criteria, match only once (+test)

10 years agolayout loading: allow comments in JSON files
Michael Stapelberg [Sat, 14 Dec 2013 09:43:49 +0000 (10:43 +0100)]
layout loading: allow comments in JSON files

10 years agotests: add simple layout restore test
Michael Stapelberg [Sat, 14 Dec 2013 09:42:01 +0000 (10:42 +0100)]
tests: add simple layout restore test

10 years agoswallows: value needs to be loaded as regular expression
Michael Stapelberg [Sat, 14 Dec 2013 09:41:44 +0000 (10:41 +0100)]
swallows: value needs to be loaded as regular expression

10 years agouse splith as default when restoring a layout
Michael Stapelberg [Sat, 14 Dec 2013 09:41:03 +0000 (10:41 +0100)]
use splith as default when restoring a layout

This frees users from specifying layouts even when they don’t make any
difference, e.g. leaf nodes.

10 years agodebian/: add placeholder commit
Michael Stapelberg [Sun, 22 Dec 2013 20:39:15 +0000 (21:39 +0100)]
debian/: add placeholder commit

10 years agoMerge branch 'next'
Michael Stapelberg [Sun, 22 Dec 2013 20:14:21 +0000 (21:14 +0100)]
Merge branch 'next'

10 years agoMerge branch 'release-4.7' into next
Michael Stapelberg [Sun, 22 Dec 2013 20:14:15 +0000 (21:14 +0100)]
Merge branch 'release-4.7' into next

10 years agoadd release notes for v4.7 4.7
Michael Stapelberg [Sun, 22 Dec 2013 20:12:10 +0000 (21:12 +0100)]
add release notes for v4.7

10 years agoMerge branch 'fix-active'
Michael Stapelberg [Sat, 21 Dec 2013 20:32:55 +0000 (21:32 +0100)]
Merge branch 'fix-active'

10 years agoMerge branch 'master' into next
Michael Stapelberg [Sat, 21 Dec 2013 20:32:55 +0000 (21:32 +0100)]
Merge branch 'master' into next

10 years agoBugfix: ignore _NET_ACTIVE_WINDOW for scratchpad windows (Thanks mistnim)
Michael Stapelberg [Sat, 21 Dec 2013 20:32:23 +0000 (21:32 +0100)]
Bugfix: ignore _NET_ACTIVE_WINDOW for scratchpad windows (Thanks mistnim)

fixes: #1136

10 years agoi3bar: Print error message when status_command fails
Tony Crisci [Sun, 15 Dec 2013 09:21:18 +0000 (04:21 -0500)]
i3bar: Print error message when status_command fails

Add a function to i3bar to print an error message in the status line
when the child process invoked by status_command fails to provide
input that can be displayed as a statusline.

When the child provides JSON that cannot be parsed, alert the user and
convey a short message provided by yajl communicating the specific
problem.

When the child (or the shell executing the status command) exits
unexpectedly, alert the user and display the exit code. The cases where
the status command is not executable or not found in the user's PATH are
treated specially.

fixes #1130

10 years agouserguide: explain the difference between comma and semicolon for command chaining
Michael Stapelberg [Wed, 11 Dec 2013 18:46:41 +0000 (19:46 +0100)]
userguide: explain the difference between comma and semicolon for command chaining

10 years agoRemove pointer warp from test boilerplate
Tony Crisci [Fri, 6 Dec 2013 06:36:29 +0000 (01:36 -0500)]
Remove pointer warp from test boilerplate

Remove the line to warp the pointer to (0, 0) in `new-test` helper
script, which is used to create new tests.

Since 4.6-g0634766, testcases may assume at the start of the test that
the pointer begins at position (0, 0).

10 years agoTestcases: init pointer in a predictable position
Tony Crisci [Mon, 2 Dec 2013 23:06:19 +0000 (18:06 -0500)]
Testcases: init pointer in a predictable position

Tests may disturb the pointer in their normal operation that may lead to
unexpected results in later tests using that display. Reset the pointer
before a test begins to (0, 0) to save test developers from related
"gotchas" and reduce multi-monitor test boilerplate.

10 years agoRefactor and improve test 514
Tony Crisci [Mon, 2 Dec 2013 16:23:52 +0000 (11:23 -0500)]
Refactor and improve test 514

Split test 514's assertion into three assertions to make it more
explicit what is being tested, and why a run might fail.

Move critical test code out of the event handler to clarify flow and
allow a query of the actual current workspace to use in assertions.

Works around an issue which caused this test to fail spurriously because
of pointer-related quirks in the i3 test suite which would sometimes
cause i3 to open on workspace 2 (However, the test is now agnostic to
the initial workspace or output).

10 years agoi3bar: Group child processes for signalling
Tony Crisci [Sun, 1 Dec 2013 06:37:43 +0000 (01:37 -0500)]
i3bar: Group child processes for signalling

Set the process group id of the child process by calling `setpgid` after
forking and before calling `exec`.

The process group ID will be set to the process ID of the forked
process. Processes spawned by this child process will also have this
group ID.

Send signals to the process group with `killpg`. This will send the
signal to all of the process group.

fixes #1128

10 years agoRemove flex/bison from common.mk since they aren't used anymore
Jean-Philippe Ouellet [Wed, 27 Nov 2013 04:13:30 +0000 (23:13 -0500)]
Remove flex/bison from common.mk since they aren't used anymore

10 years agoi3bar: Realign tray clients on map/unmap notify
Tony Crisci [Sun, 24 Nov 2013 04:09:01 +0000 (23:09 -0500)]
i3bar: Realign tray clients on map/unmap notify

UnmapNotify events are interpreted by i3bar as an action taken by an
application to hide its tray window. Likewise, MapNotify events are
interpreted as an action taken by by an application to show its tray
window.

The actual cause of these events may be the application itself, or the
result of some action taken by i3bar itself at the request of the
application in the course of the XEmbed protocol.

We respond by adjusting the size of the tray window and realigning any
tray clients that remain. This will make room for the mapping window or
close the gap left by the unmapping window when the bar is redrawn.

fixes #1110

10 years agolibi3/root_atom_contents: handle data of arbitrary length
Lancelot SIX [Sat, 23 Nov 2013 11:03:55 +0000 (12:03 +0100)]
libi3/root_atom_contents: handle data of arbitrary length

Handle data fetched from xcb_get_property_unchecked with arbitrary
length. This avoids having to rely on PATH_MAX macro where it is not
necessary.

10 years agoignore symbol files on OS X (only for debugging, breaks git-add -A)
Jean-Philippe Ouellet [Tue, 26 Nov 2013 10:50:35 +0000 (05:50 -0500)]
ignore symbol files on OS X (only for debugging, breaks git-add -A)

10 years agofix the build on OS X
Jean-Philippe Ouellet [Tue, 26 Nov 2013 10:41:56 +0000 (05:41 -0500)]
fix the build on OS X

OS X doesn't have posix_fallocate() yet, so put
bf760d0241f0f078735e230b4bf6da4fc83368fe in
    #if defined(__APPLE__)

the cd fails with:
    /bin/sh: line 0: cd: include: No such file or directory
so give it a path relative to the top directory

10 years agolibi3/root_atom_contents: Free xcb reply structures
Lancelot SIX [Sat, 23 Nov 2013 10:56:28 +0000 (11:56 +0100)]
libi3/root_atom_contents: Free xcb reply structures

Free memory allocated during xcb calls.

10 years agoRemove references to PATH_MAX macro
Lancelot SIX [Thu, 21 Nov 2013 21:03:49 +0000 (22:03 +0100)]
Remove references to PATH_MAX macro

Since the macro PATH_MAX is not defined on every system (GNU/Hurd being
one of those who do not define it), we remove all references to this
macro. Instead, we use a buffer of arbitraty size and grow it when
needed to contain paths.

10 years agopersist root window’s background contents to a pixmap
Michael Stapelberg [Sun, 24 Nov 2013 12:44:30 +0000 (13:44 +0100)]
persist root window’s background contents to a pixmap

The commit title is fairly technical, so I’ll try to explain.

Recently, users of GDM3 (I’m sure) and LightDM (I think) have reported
that when switching to a new workspace, the contents of the previous
workspace are still visible. i3bar updates, though, so it is the X11
root window which is not being updated here.

When using GDM3, X11 will be started with -background none, and no
background pixmap or pixel is set. Then, apparently,
gnome-settings-daemon will display a fade animation from whatever is
currently on the window to the destination contents. I think this is to
avoid flickering when logging in, which would occur when just setting a
specific background pixmap or pixel.

So, this commit will, when i3 starts first (not on restarts), copy the
contents of the X11 root window (typicall a grey background, at least on
my machine with GDM3) into a pixmap and set that pixmap as background
pixmap. That way, the content will be preserved and one has a
background, instead of what is perceived as a bug :).

This commit has some chance of breakage, so I’m prepared to revert it
unless we can figure out the issues and roll forward.

10 years agoi3bar: Handle DestroyNotify events
Tony Crisci [Sat, 23 Nov 2013 02:22:56 +0000 (21:22 -0500)]
i3bar: Handle DestroyNotify events

Handle DestroyNotify events by removing the tray client from the tray
client list held in memory.

This change is intended to be part of the i3bar's implementation of the
XEmbed protocol. For more information, see:

<http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html>

According to the XEmbed protocol specification, this is one way for a
tray client to finish the protocol. After this event is received, i3bar
should have no more interaction with the tray client.

10 years agoMerge branch 'fix-urgent-crash'
Michael Stapelberg [Fri, 22 Nov 2013 16:09:28 +0000 (17:09 +0100)]
Merge branch 'fix-urgent-crash'

10 years agoMerge branch 'master' into next
Michael Stapelberg [Fri, 22 Nov 2013 16:09:28 +0000 (17:09 +0100)]
Merge branch 'master' into next

10 years agoRemove-child callback skips output content cons
Tony Crisci [Fri, 22 Nov 2013 15:00:49 +0000 (10:00 -0500)]
Remove-child callback skips output content cons

Every container 'above' (in the hierarchy) the workspace content should
not be closed when the last child was removed.

Add a check for output content containers and do not handle them. These
cons are at the root of the output container with dockarea siblings.
They may be run through this callback when an output is killed with
RandR.

Fixes an issue that caused content cons to become urgent when the output
is killed with RandR.

fixes: #1121