i3test: get rid of the smartmatch operator, it’s experimental since perl 5.18
tests: fix setting the urgency hint

X11::XCB < 0.08 had a bug which caused this code to work even though it
shouldn’t.
Fix handling of new windows with WM_STATE_FULLSCREEN

If the currently focused window is in fullscreen mode, and a new window
is opened with WM_STATE_FULLSCREEN set, the new window now becomes the
new fullscreen window and gains focus.
tests: also get rid of smartmatch in complete-run.pl
Close all children when closing a workspace

fixes #591
Add new bar.binding_mode_indicator configuration.

i3 current behavior hides the binding mode indicator when
workspace buttons are disabled.
This patch adds a new configuration for i3bar called
'binding_mode_indicator' which acts like the workspace_buttons.
It is now possible to configure i3bar to hide the
workspace buttons and keep showing the binding mode indicator.
This should make the hide workspace buttons configuration
more convenient for those who are heavily using binding
modes.
Default value for binding_mode_indicator is true.
Bugfix: correctly recognize assigned windows as urgent (Thanks jookia)

fixes #1086
Merge branch 'master' into next
Merge branch 'fix-urgency-assign'
tests: move set_wm_class to X11::XCB::Window

This code was duplicated way too often for a long time :)
Improve error message when $XDG_RUNTIME_DIR is not writable
reduce some yajl boilerplate

This patch introduces a yerror() macro in src/commands.c and also
removes some unused yajl helper macros from src/config_directives.c.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Fix keyboard and mouse resize in nested containers

fixes #1084
fixes #1085
libi3/font: Draw the text at the expected place

When drawing a text with Pango, shift it to the top according to the top
if the glyph if taller than expected
We always shift of (height - savedHeight) which is a no-op for normal glyphs

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Add ability to escape out of a mouse-resize operation

Implement #1074. drag_cancel grabs the keyboard and returns DRAG_CANCEL
when the user presses any key during the grab.
Do not resize/reposition floating containers when moving them to scratchpad
Only abort resizing on KeyPress, not KeyRelease (Thanks vandannen)

Otherwise, releasing a key that was used to trigger the resizing (e.g.
the modifier key) needs to be pressed all the time.
Reply to _NET_REQUEST_FRAME_EXTENTS correctly

Reply to _NET_REQUEST_FRAME_EXTENTS by settings _NET_FRAME_EXTENTS
property of the window to widths of the respective borders added by i3.

fixes #1093
fixes #1069
Merge branch 'master' into next
Merge branch 'fix-extents'