]> git.sur5r.net Git - i3/i3/log
i3/i3
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 'master' into next
Michael Stapelberg [Sat, 4 Jan 2014 11:23:06 +0000 (12:23 +0100)]
Merge branch 'master' into next

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 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

11 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.

11 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.

11 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.

11 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.

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

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

11 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

11 years agomake i3bar use libi3’s root_atom_contents()
Michael Stapelberg [Fri, 22 Nov 2013 14:48:45 +0000 (15:48 +0100)]
make i3bar use libi3’s root_atom_contents()

This removes code duplication, which will be useful for a subsequent
commit.

Furthermore, we now don’t open X11 connections unnecessarily in some
corner cases.

11 years agot/516-move: use window id, fix typo
Michael Stapelberg [Tue, 19 Nov 2013 19:28:32 +0000 (20:28 +0100)]
t/516-move: use window id, fix typo

11 years agoCommand 'move <direction>' moves across outputs
Tony Crisci [Wed, 13 Nov 2013 08:39:32 +0000 (03:39 -0500)]
Command 'move <direction>' moves across outputs

When 'move <direction>' is issued in the context of a container that
borders a workspace, and there is no suitable place within this
workspace for which this container can move, move the container to the
closest output in this direction instead.

11 years agorefactor previous commit’s new code into a function, add log message
Michael Stapelberg [Mon, 18 Nov 2013 22:17:44 +0000 (23:17 +0100)]
refactor previous commit’s new code into a function, add log message

11 years agolibi3/font: Set DPI for the pango context
Bas Pape [Wed, 13 Nov 2013 19:23:35 +0000 (20:23 +0100)]
libi3/font: Set DPI for the pango context

The pango font specification accepts a font size in points, but pango
defaults to a DPI of 96. Create a default PangoContext (which
internally creates a default PangoCairoFontMap as usual) and set the
DPI to the value of the root Screen manually.

Fixes #1115

11 years agoUpdate userguide on multiple criteria
Trung Ngo [Sun, 10 Nov 2013 09:10:17 +0000 (16:10 +0700)]
Update userguide on multiple criteria

Change wording, add an example for multiple criteria and move
the sentence explaining the Firefox example into the code listing
block.

11 years agoAdd sensible discretion to UnmapNotify drag abort
Tony Crisci [Sat, 9 Nov 2013 17:51:44 +0000 (12:51 -0500)]
Add sensible discretion to UnmapNotify drag abort

Only abort a drag action on UnmapNotify when the unmapping window is
managed on the current workspace.

fixes #1108

11 years agoi3bar: Simplify hide mode logic
Tony Crisci [Wed, 30 Oct 2013 04:16:13 +0000 (00:16 -0400)]
i3bar: Simplify hide mode logic

When determining whether to hide or unhide the bar on redraw in hide
mode, use simpler rules. When the config specifies the 'show' state or a
workspace is urgent, or if the caller requests it, or the modifier is
pressed, show the bar. Otherwise, hide the bar.

11 years agoReturn DRAG_ABORT on UnmapNotify from drag_pointer
Tony Crisci [Fri, 1 Nov 2013 00:36:31 +0000 (20:36 -0400)]
Return DRAG_ABORT on UnmapNotify from drag_pointer

Add DRAG_ABORT to enum drag_result_t. DRAG_ABORT will indicate the drag
operation cannot be completed.

Return DRAG_ABORT on UnmapNotify, or when the keyboard or pointer cannot
be grabbed.

Add DRAGGING to return value for drag_result_t. DRAGGING is used
internally by drag_pointer to indicate the drag is in progress.

Change DRAG_CANCEL to DRAG_REVERT to clarify the distinction between
"abort" and "revert/cancel" actions.

Fixes an issue that caused i3 to crash when a user is dragging or
resizing a floating window that becomes destroyed.

11 years agoUse _PATH_BSHELL to ensure using a bourne shell
Baptiste Daroussin [Fri, 8 Nov 2013 20:13:35 +0000 (21:13 +0100)]
Use _PATH_BSHELL to ensure using a bourne shell

[Michael]
This commit should fix problems with people using a non-bourne shell as
login shell, e.g. fish or rc. AFAICT, $SHELL should only be used for
interactive shells, but we just want a bourne shell, not an interactive
shell.

11 years agoUpdate comment for the con_toggle_fullscreen method
jj [Tue, 22 Oct 2013 12:12:24 +0000 (14:12 +0200)]
Update comment for the con_toggle_fullscreen method

11 years agoFix output retrieval for floating cons
jj [Tue, 22 Oct 2013 11:17:23 +0000 (13:17 +0200)]
Fix output retrieval for floating cons

When focusing/moving to outputs, the method of getting the correct
output for a given container fails if the container in question is
floating and only partially mapped on an output screen. This patch
introduces a fail-safe retrieval of the output for any container.

11 years agoAdd `.clang_complete` and `Xdummy.so` to gitignore
Tony Crisci [Wed, 23 Oct 2013 16:57:32 +0000 (12:57 -0400)]
Add `.clang_complete` and `Xdummy.so` to gitignore

Adds two files to gitignore.

`.clang_complete` is created by the clang_complete vim plugin
[https://github.com/Rip-Rip/clang_complete]

`Xdummy.so` is created by compiling the Xdummy module.

11 years agoi3bar: Only configure tray on own outputs
Tony Crisci [Sun, 20 Oct 2013 11:51:50 +0000 (07:51 -0400)]
i3bar: Only configure tray on own outputs

If the config specifies a `tray_output` not in the list of outputs over
which this bar will span, do not initialize a tray for the bar.

Fixes former behavior, which was to initialize the tray without showing
the icons, causing disapearing tray icons in multi-monitor environments
when `tray_output` isnt `output`.

11 years agoAssigned windows open urgent when not visible
Tony Crisci [Thu, 17 Oct 2013 02:44:56 +0000 (22:44 -0400)]
Assigned windows open urgent when not visible

When i3 begins to manage a window, if the window opens on a workspace
that is not visible, the urgency hint on the newly managed window will
be set.

fixes #1088

11 years agoTestcases: Use AnyEvent::I3 version 0.15
Tony Crisci [Sat, 19 Oct 2013 00:02:17 +0000 (20:02 -0400)]
Testcases: Use AnyEvent::I3 version 0.15

Use the latest version of AnyEvent::I3, version 0.15, which includes
support for the `window` event tag.

11 years agoTestcases: new-test prints usage without input
Tony Crisci [Thu, 17 Oct 2013 11:20:35 +0000 (07:20 -0400)]
Testcases: new-test prints usage without input

Prevent the accidental creation of new tests with empty names by
printing usage information for new-test when the test name would be
empty.

11 years agoTestcases: remove "latest" if it is a symbolic link
Tony Crisci [Tue, 15 Oct 2013 07:36:12 +0000 (03:36 -0400)]
Testcases: remove "latest" if it is a symbolic link

Test for the existence of the symlink to "latest" with the -l flag,
which tests if the target is a symbolic link. Testing with the -e flag
will fail in case the link points to a file that does not exist, which
will occur if the test result directories are deleted by hand.

11 years agoCorrect typos in user guide
Alexander Neumann [Sun, 13 Oct 2013 20:52:01 +0000 (22:52 +0200)]
Correct typos in user guide

11 years agoFix command parser: resizing tiling windows
jj [Wed, 9 Oct 2013 20:30:41 +0000 (22:30 +0200)]
Fix command parser: resizing tiling windows

i3 would accept an invalid resize command like 'resize shrink width 10
px or' without specifying the ppt value, and then crash. This patch
fixes the parser specification.

11 years agoi3-nagbar: Set button inner-width to the width of the label
Tony Crisci [Mon, 7 Oct 2013 16:06:28 +0000 (12:06 -0400)]
i3-nagbar: Set button inner-width to the width of the label

Use predict_text_width to find the width of the label and then account
for right padding when calculating the width of the button.

11 years agoprevious commit: extend test and code to also work with floating windows
Michael Stapelberg [Sun, 13 Oct 2013 15:57:50 +0000 (17:57 +0200)]
previous commit: extend test and code to also work with floating windows

11 years agoFix endless loop when trying to kill a visible workspace
jj [Fri, 11 Oct 2013 18:12:05 +0000 (20:12 +0200)]
Fix endless loop when trying to kill a visible workspace

This regression was introduced with commit
97b086efd9833d2a787e54417789b279143e43a6

fixes #1103