]> git.sur5r.net Git - i3/i3/log
i3/i3
9 years agoGlob filepath when calling append_layout
Ingo Bürk [Sat, 28 Feb 2015 23:13:37 +0000 (00:13 +0100)]
Glob filepath when calling append_layout
fixes #1500

9 years agoImprove error messages on failing commands
Ingo Bürk [Wed, 4 Mar 2015 13:01:42 +0000 (14:01 +0100)]
Improve error messages on failing commands

9 years agoMerge branch 'dont-match-placeholders'
Michael Stapelberg [Sat, 7 Mar 2015 14:40:59 +0000 (15:40 +0100)]
Merge branch 'dont-match-placeholders'

9 years agoBugfix: insert id-based match at HEAD, not TAIL.
Michael Stapelberg [Sat, 7 Mar 2015 14:38:10 +0000 (15:38 +0100)]
Bugfix: insert id-based match at HEAD, not TAIL.

Before this commit, placeholder windows had any matches that were
defined in the JSON file, _followed_ by an i3-internal match that
ensures the placeholder X11 window gets swallowed into the placeholder
i3 container.

The problem was that the first successful match was deleted, and if
users specified a criterion (title=IPython) that matched the placeholder
window itself (name=IPython), then that match is deleted and the
i3-internal match is kept. This results in the actual window the user
wants to match not being swallowed, and the placeholder window not
displaying any criteria.

fixes #1526

9 years agoMerge branch 'fix-mode-switch'
Michael Stapelberg [Sat, 7 Mar 2015 13:52:39 +0000 (14:52 +0100)]
Merge branch 'fix-mode-switch'

9 years agoFix bindings using Mode_switch
Michael Stapelberg [Sat, 7 Mar 2015 13:51:24 +0000 (14:51 +0100)]
Fix bindings using Mode_switch

fixes #1518

9 years agoMerge branch 'revert-iconic'
Michael Stapelberg [Sat, 7 Mar 2015 10:47:59 +0000 (11:47 +0100)]
Merge branch 'revert-iconic'

9 years agoRevert "Handle WM_CHANGE_STATE requests for iconic state"
Michael Stapelberg [Sat, 7 Mar 2015 10:46:43 +0000 (11:46 +0100)]
Revert "Handle WM_CHANGE_STATE requests for iconic state"

This reverts commit 136b3e345bfde637d3270eafaa2d8aa3555cc3d5.

fixes #1516

9 years agoMerge branch 'fix-keyboard-layout'
Michael Stapelberg [Tue, 3 Mar 2015 08:46:39 +0000 (09:46 +0100)]
Merge branch 'fix-keyboard-layout'

9 years agoFix keyboard layout change detection
Michael Stapelberg [Tue, 3 Mar 2015 08:46:16 +0000 (09:46 +0100)]
Fix keyboard layout change detection

…by listening to XKB_NEW_KEYBOARD events and re-allocating the keysym
map on both XKB_NEW_KEYBOARD and XKB_MAP_NOTIFY.

fixes #1302

9 years agoMerge branch 'ton-master'
Michael Stapelberg [Sun, 1 Mar 2015 15:50:45 +0000 (16:50 +0100)]
Merge branch 'ton-master'

9 years agoMerge branch 'master' of https://github.com/ton/i3 into ton-master
Michael Stapelberg [Sun, 1 Mar 2015 15:50:37 +0000 (16:50 +0100)]
Merge branch 'master' of https://github.com/ton/i3 into ton-master

9 years agoMerge branch 'stevenjm-big-endian'
Michael Stapelberg [Sun, 1 Mar 2015 15:30:28 +0000 (16:30 +0100)]
Merge branch 'stevenjm-big-endian'

9 years agoMerge branch 'big-endian' of https://github.com/stevenjm/i3 into stevenjm-big-endian
Michael Stapelberg [Sun, 1 Mar 2015 15:28:42 +0000 (16:28 +0100)]
Merge branch 'big-endian' of https://github.com/stevenjm/i3 into stevenjm-big-endian

9 years agoFix key bindings on big-endian platforms 1504/head
Steven McDonald [Sun, 1 Mar 2015 07:30:45 +0000 (18:30 +1100)]
Fix key bindings on big-endian platforms

input_code is a uint16_t, but xcb_keycode_t is uint8_t, meaning that
only the first byte of input_code is inspected by memmem. On
little-endian platforms, this code would have worked by accident, since
the first byte of input_code represents the 8 least significant bits.
However, on big-endian platforms the first byte is the 8 most
significant bits, which means memmem is scanning bind->translated_to
for the wrong keycode (probably 0).

In order to work correctly on big-endian and little-endian platforms,
simply typecast input_code to an xcb_keycode_t and pass that to memmem.

The observed behaviour associated with this bug is that key bindings
don't work at all. This patch has been tested on an iBook G4 running
OpenBSD -current, and key bindings work properly with this fix applied.

9 years agodebian: update changelog
Michael Stapelberg [Sat, 28 Feb 2015 14:03:53 +0000 (15:03 +0100)]
debian: update changelog

9 years agoMerge branch 'next'
Michael Stapelberg [Sat, 28 Feb 2015 14:02:31 +0000 (15:02 +0100)]
Merge branch 'next'

9 years agoMerge branch 'release-4.9' into next
Michael Stapelberg [Sat, 28 Feb 2015 14:02:21 +0000 (15:02 +0100)]
Merge branch 'release-4.9' into next

9 years agorelease i3 v4.9 4.9
Michael Stapelberg [Sat, 28 Feb 2015 13:36:22 +0000 (14:36 +0100)]
release i3 v4.9

9 years agoFix incorrect y-offset for text in i3bar 1495/head
Ton van den Heuvel [Thu, 26 Feb 2015 20:49:54 +0000 (21:49 +0100)]
Fix incorrect y-offset for text in i3bar

When using Pango to draw text in i3bar, the y-offset of the text is
incorrectly calculated in case all characters in the string to draw are
smaller than the cached font height. Fixes #1494.

9 years agoMerge pull request #1486 from acrisci/feature/docs-xvfb-tests
Michael Stapelberg [Sun, 22 Feb 2015 11:02:20 +0000 (03:02 -0800)]
Merge pull request #1486 from acrisci/feature/docs-xvfb-tests

Docs: add hint to use xvfb-run

9 years agoDocs: add hint to use xvfb-run 1486/head
Tony Crisci [Sat, 21 Feb 2015 21:36:24 +0000 (16:36 -0500)]
Docs: add hint to use xvfb-run

Document that Xvfb can be used to run tests without an X server, and be
used to significantly speed up tests on machines with slow video cards.

9 years agoMerge pull request #1471 from acrisci/feature/i3bar-use-pango-markup
Michael Stapelberg [Sat, 21 Feb 2015 20:19:26 +0000 (12:19 -0800)]
Merge pull request #1471 from acrisci/feature/i3bar-use-pango-markup

i3bar: use Pango markup

9 years agodebian: add changelog entry for 4.8-2
Michael Stapelberg [Sun, 15 Feb 2015 12:42:29 +0000 (13:42 +0100)]
debian: add changelog entry for 4.8-2

9 years agoi3bar: use Pango markup 1471/head
Tony Crisci [Thu, 12 Feb 2015 19:45:34 +0000 (14:45 -0500)]
i3bar: use Pango markup

Parse text within workspace buttons and the i3bar statusline as Pango
markup. This lets people specify things like font weight, text color,
background color, font size, and font family in the text of i3bar.

fixes #1468

9 years agoCONTRIBUTING: document people should use the `next` branch
Michael Stapelberg [Thu, 12 Feb 2015 07:59:33 +0000 (08:59 +0100)]
CONTRIBUTING: document people should use the `next` branch

9 years agoProperly invalidate rendering cache when updating orientation (Thanks hercek)
Michael Stapelberg [Wed, 11 Feb 2015 20:13:19 +0000 (21:13 +0100)]
Properly invalidate rendering cache when updating orientation (Thanks hercek)

fixes #1445

9 years agoMerge branch 'master' into next
Michael Stapelberg [Wed, 11 Feb 2015 20:08:00 +0000 (21:08 +0100)]
Merge branch 'master' into next

9 years agoMerge pull request #1465 from Airblader/bugfix-1430
Michael Stapelberg [Wed, 11 Feb 2015 19:45:12 +0000 (20:45 +0100)]
Merge pull request #1465 from Airblader/bugfix-1430

Make click events on status blocks work if 'workspace_buttons no' is set...

9 years agoMake click events on status blocks work if 'workspace_buttons no' is set. 1465/head
Ingo Bürk [Wed, 11 Feb 2015 19:34:43 +0000 (20:34 +0100)]
Make click events on status blocks work if 'workspace_buttons no' is set.

1. Always subscribe to click events for i3bar.
2. Exit the click event handler if no current workspace was found only after clicks on status blocks have been handled.

fixes #1430

9 years agoRemove one level of indentation #1465
Ingo Bürk [Wed, 11 Feb 2015 19:34:19 +0000 (20:34 +0100)]
Remove one level of indentation #1465

9 years agoMerge pull request #1462 from carrotIndustries/netwm_moveresize
Michael Stapelberg [Wed, 11 Feb 2015 19:30:05 +0000 (20:30 +0100)]
Merge pull request #1462 from carrotIndustries/netwm_moveresize

Support _NET_WM_MOVERESIZE

9 years agoMerge pull request #1460 from Airblader/bugfix-1458
Michael Stapelberg [Wed, 11 Feb 2015 19:18:53 +0000 (20:18 +0100)]
Merge pull request #1460 from Airblader/bugfix-1458

Correctly calculate clicks on i3bar status blocks

9 years agoMerge pull request #1451 from acrisci/feature/handle-button-release
Michael Stapelberg [Wed, 11 Feb 2015 19:13:00 +0000 (20:13 +0100)]
Merge pull request #1451 from acrisci/feature/handle-button-release

Handle button release events

9 years agoadd a CONTRIBUTING file
Michael Stapelberg [Wed, 11 Feb 2015 08:15:01 +0000 (09:15 +0100)]
add a CONTRIBUTING file

See https://github.com/blog/1184-contributing-guidelines

9 years agoMerge pull request #1453 from acrisci/feature/bar-update-font-reload
Michael Stapelberg [Wed, 11 Feb 2015 07:55:06 +0000 (07:55 +0000)]
Merge pull request #1453 from acrisci/feature/bar-update-font-reload

Update bar font config on reload

9 years agoSupport _NET_WM_MOVERESIZE 1462/head
Lukas K [Tue, 27 Jan 2015 21:58:48 +0000 (22:58 +0100)]
Support _NET_WM_MOVERESIZE

Add support for the _NET_WM_MOVERESIZE client message. This message
enables clients to initiate window moving or resizing. Toolkits like
Gtk3 use this message when the user drags a client-side decorated window
by its title bar. When Gtk detects that the window manager does not
support this client message, it uses a slow fallback implementation.

fixes #1432

9 years agoHandle button release events 1451/head
Tony Crisci [Tue, 10 Feb 2015 22:46:02 +0000 (17:46 -0500)]
Handle button release events

This enables the --release switch on mouse button bindings.

9 years agolibi3: free previous font on font load 1453/head
Tony Crisci [Tue, 10 Feb 2015 20:11:40 +0000 (15:11 -0500)]
libi3: free previous font on font load

When loading a new font with `load_font`, free the previously loaded
font with `free_font`.

If no font is loaded, `free_font` will simply return (instead of
crashing because of a double free).

9 years agoUpdate bar font config on reload
Tony Crisci [Tue, 10 Feb 2015 19:26:22 +0000 (14:26 -0500)]
Update bar font config on reload

Dynamically update the font when the `reload` command is called by
reloading the font with `xcb_init_late` and adjusting the size of the
bar by updating the output dimensions with a call to the ipc.

9 years agoCorrectly calculate clicks on i3bar status blocks 1460/head
Ingo Bürk [Mon, 9 Feb 2015 19:13:02 +0000 (20:13 +0100)]
Correctly calculate clicks on i3bar status blocks

fixes #1458

9 years agodocs/debugging: use logs.i3wm.org
Michael Stapelberg [Wed, 4 Feb 2015 18:54:07 +0000 (19:54 +0100)]
docs/debugging: use logs.i3wm.org

9 years agocking-howto: update links
Michael Stapelberg [Wed, 4 Feb 2015 18:52:40 +0000 (19:52 +0100)]
cking-howto: update links

9 years agoMerge branch 'placeholder'
Michael Stapelberg [Sat, 31 Jan 2015 21:56:08 +0000 (22:56 +0100)]
Merge branch 'placeholder'

9 years agoMerge branch 'master' into next
Michael Stapelberg [Sat, 31 Jan 2015 21:56:08 +0000 (22:56 +0100)]
Merge branch 'master' into next

9 years agoBugfix: actually parse client.placeholder (Thanks Ingo)
Michael Stapelberg [Sat, 31 Jan 2015 21:55:45 +0000 (22:55 +0100)]
Bugfix: actually parse client.placeholder (Thanks Ingo)

fixes #1400

9 years agoMerge branch 'fix-ws-con'
Michael Stapelberg [Sat, 31 Jan 2015 21:42:54 +0000 (22:42 +0100)]
Merge branch 'fix-ws-con'

9 years agoMerge branch 'master' into next
Michael Stapelberg [Sat, 31 Jan 2015 21:42:54 +0000 (22:42 +0100)]
Merge branch 'master' into next

9 years agoBugfix: correctly restore workspaces regardless of where “type” is (Thanks dsargrad)
Michael Stapelberg [Sat, 31 Jan 2015 21:40:55 +0000 (22:40 +0100)]
Bugfix: correctly restore workspaces regardless of where “type” is (Thanks dsargrad)

fixes #1395

9 years agoAdd mouse binding pointer position configuration
Tony Crisci [Fri, 30 Jan 2015 01:52:52 +0000 (20:52 -0500)]
Add mouse binding pointer position configuration

Add the `--whole-window` switch for mouse bindings. This switch controls
what part of the container the pointer must be over to trigger a mouse
binding. The default is to only trigger mouse bindings over the
titlebars. With this switch, a mouse binding will be triggered over the
main part of the window as well.

This is a breaking change to the previous behavior, which would trigger
a mouse binding with a modifier over any part of the window.

fixes #1429

9 years agoi3bar: suspend the child when bars are fully obscured
Alexander Monakov [Thu, 8 Jan 2015 22:18:23 +0000 (01:18 +0300)]
i3bar: suspend the child when bars are fully obscured

9 years agoAdd 'mark' as allowed key to i3-save-tree output
Marein Konings [Sun, 18 Jan 2015 19:48:34 +0000 (20:48 +0100)]
Add 'mark' as allowed key to i3-save-tree output

9 years agoAdd lxterminal to i3-sensible-terminal
Tony Crisci [Sun, 25 Jan 2015 02:53:10 +0000 (21:53 -0500)]
Add lxterminal to i3-sensible-terminal

fixes #1436

9 years agoRevert "don’t fix coordinates/change focus/warp when source_output was scratchpad"
Michael Stapelberg [Fri, 23 Jan 2015 16:11:05 +0000 (17:11 +0100)]
Revert "don’t fix coordinates/change focus/warp when source_output was scratchpad"

This reverts commit 94808019277991a404a0a39e2a27ca1574072f3c.

This causes focus issues.

9 years agodon’t fix coordinates/change focus/warp when source_output was scratchpad
Michael Stapelberg [Fri, 23 Jan 2015 16:07:31 +0000 (17:07 +0100)]
don’t fix coordinates/change focus/warp when source_output was scratchpad

9 years agoInset the urgent background of a status block for consistency with workspace buttons.
Ingo Bürk [Wed, 24 Dec 2014 20:45:12 +0000 (15:45 -0500)]
Inset the urgent background of a status block for consistency with workspace buttons.

fixes #1423

9 years agoMerge branch 'master' into next
Michael Stapelberg [Sat, 17 Jan 2015 17:20:43 +0000 (18:20 +0100)]
Merge branch 'master' into next

Conflicts:
src/render.c

9 years agoMerge branch 'fix-popup-during-fullscreen'
Michael Stapelberg [Sat, 17 Jan 2015 17:20:04 +0000 (18:20 +0100)]
Merge branch 'fix-popup-during-fullscreen'

9 years agoBugfix: render floating windows during global fullscreen (Thanks dmurph, Mats)
Michael Stapelberg [Sat, 17 Jan 2015 17:19:15 +0000 (18:19 +0100)]
Bugfix: render floating windows during global fullscreen (Thanks dmurph, Mats)

fixes #1393

9 years agoFix start_application() doc about which shell is used
Tony Crisci [Sun, 21 Dec 2014 00:17:14 +0000 (19:17 -0500)]
Fix start_application() doc about which shell is used

Since this commit:

f691a55923850a4d315450925fc98733d07b69c9

the shell that is used is the system's bourne shell (/bin/sh) and the
env variable SHELL is not considered.

No logic changes.

9 years agoInclude workspace con in workspace event
Tony Crisci [Sat, 20 Dec 2014 04:43:47 +0000 (23:43 -0500)]
Include workspace con in workspace event

Send the affected workspace in the "current" property for each workspace
event for any type of workspace event that affects a particular
workspace.

fixes #1411

9 years agodocs/ipc: use an actual event type (thanks Adaephon)
Michael Stapelberg [Sat, 13 Dec 2014 21:33:42 +0000 (22:33 +0100)]
docs/ipc: use an actual event type (thanks Adaephon)

9 years agoExtend the fullscreen command
Mats [Sun, 26 Oct 2014 18:33:09 +0000 (19:33 +0100)]
Extend the fullscreen command

Rather than just toggling the fullscreen modes, allow to set them
directly with:

    fullscreen enable|toggle [global]
    fullscreen disable

For compatibility, retain the previous command and its toggling behavior:

    fullscreen [global]

fixes #1120

9 years agoPrevent workspace change during global fullscreen
Mats [Sat, 29 Nov 2014 17:22:56 +0000 (18:22 +0100)]
Prevent workspace change during global fullscreen

While in global fullscreen, the workspace could be changed leaving the
fullscreen container still visible on top but losing its focus.

9 years agoi3bar: Respect the urgency flag on status blocks
Ingo Bürk [Tue, 2 Dec 2014 17:22:11 +0000 (18:22 +0100)]
i3bar: Respect the urgency flag on status blocks

…by drawing urgent blocks with the same settings as an urgent workspace.

(Also use logical_px() and bar_height.)

fixes #682

9 years agoImprove error message when a full_text property is missing
Ingo Bürk [Wed, 3 Dec 2014 19:11:05 +0000 (20:11 +0100)]
Improve error message when a full_text property is missing

9 years agoensure align = left is the default and update documentation accordingly
Ingo Bürk [Tue, 2 Dec 2014 20:38:30 +0000 (21:38 +0100)]
ensure align = left is the default and update documentation accordingly

fixes #1403

9 years agoadd deco_rect property to con in ipc response
cornerman [Sun, 16 Nov 2014 21:05:51 +0000 (22:05 +0100)]
add deco_rect property to con in ipc response

9 years agoAdded termite to default terminals
smlb [Sun, 23 Nov 2014 16:51:57 +0000 (17:51 +0100)]
Added termite to default terminals

10 years agoRevert "Bugfix: Set input focus with last timestamp"
Michael Stapelberg [Sat, 22 Nov 2014 23:35:57 +0000 (00:35 +0100)]
Revert "Bugfix: Set input focus with last timestamp"

This reverts commit 9cee8dac5e9057bf2cb72edc3cf398fdc08b8d73.

fixes #1383

10 years agoBugfix: check if values are non-NULL before copying (Thanks xeen)
Michael Stapelberg [Tue, 18 Nov 2014 07:27:53 +0000 (08:27 +0100)]
Bugfix: check if values are non-NULL before copying (Thanks xeen)

fixes #1397

10 years agoHandle _NET_CLOSE_WINDOW client message requests
Tony Crisci [Mon, 17 Nov 2014 02:10:48 +0000 (21:10 -0500)]
Handle _NET_CLOSE_WINDOW client message requests

> Pagers wanting to close a window MUST send a _NET_CLOSE_WINDOW client
> message request to the root window.

We interpret this message as a request to close the con for the given
window.

See: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472668896

fixes #1396

10 years agobugfix: copy binding before run
Tony Crisci [Mon, 10 Nov 2014 05:04:47 +0000 (00:04 -0500)]
bugfix: copy binding before run

Copy the binding struct before running it and use this copy to emit the
binding event.

This fixes a crash when the command `reload` is used in a binding when
the binding event is emitted.

10 years agomerge the formerly debian-specific x-terminal-emulator patch
Michael Stapelberg [Thu, 6 Nov 2014 18:56:32 +0000 (19:56 +0100)]
merge the formerly debian-specific x-terminal-emulator patch

I think instead of maintaining distribution-specific patches forever,
it’s a bit easier to have them applied upstream, especially since they
don’t break anything.

fixes #876

10 years agoset DesktopNames (which gdm uses) (Thanks Yves-Alexis)
Michael Stapelberg [Thu, 23 Oct 2014 21:18:15 +0000 (23:18 +0200)]
set DesktopNames (which gdm uses) (Thanks Yves-Alexis)

10 years agoUse command -v (built-in) instead of which(1) (Thanks val)
Michael Stapelberg [Thu, 23 Oct 2014 21:05:01 +0000 (23:05 +0200)]
Use command -v (built-in) instead of which(1) (Thanks val)

fixes #1380

10 years agot/234-layout-restore-output: Remove unused import
Mats [Wed, 22 Oct 2014 12:08:30 +0000 (14:08 +0200)]
t/234-layout-restore-output: Remove unused import

List::MoreUtils is imported but not used.

10 years agoMakefile.PL: Add Inline::C dependency
Mats [Wed, 22 Oct 2014 12:13:08 +0000 (14:13 +0200)]
Makefile.PL: Add Inline::C dependency

Inline::C is no longer shipped with Inline.

10 years agoTestcases: rename StartXDummy to StartXServer
Tony Crisci [Sat, 4 Oct 2014 19:01:22 +0000 (15:01 -0400)]
Testcases: rename StartXDummy to StartXServer

Rename the package StartXDummy to StartXServer in the testcases library
because XDummy is no longer used.

No logic changes.

10 years agoBugfix: check symbol for NULL in binding json dump
Tony Crisci [Sun, 5 Oct 2014 18:50:30 +0000 (14:50 -0400)]
Bugfix: check symbol for NULL in binding json dump

When dumping a binding, as is done during the binding event, check
symbol for NULL. If it is, dump json null. This prevents a crash when
running a binding that was configured with bindcode.

fixes #1379

10 years agocheck for AnyEvent::I3 ≥ 0.16 in the binding event test
Michael Stapelberg [Fri, 3 Oct 2014 07:40:22 +0000 (09:40 +0200)]
check for AnyEvent::I3 ≥ 0.16 in the binding event test

10 years agoImplement the ipc 'binding' event
Tony Crisci [Thu, 2 Oct 2014 23:04:53 +0000 (19:04 -0400)]
Implement the ipc 'binding' event

The binding event will be triggered when a binding is run as a result of
some a user action. The binding event has the following properties:

change: (str) Currently this will only be "run" but may be expanded in
the future. Included for consistency with other events.

binding: (map) the serialized binding

The "binding" member will have these properties:

input_type: (str) either "keyboard" or "mouse"

input_code: (int) the xcb keycode of the keyboard binding if it was
provided or the mouse button if it is a mouse binding.

symbol: (str) the string representation of the input code

command: (str) the bound command

mods: (list of str) a list of the modifiers that were pressed as string
symbols

fixes #1210

10 years agot/114-client-leader: fix race by waiting until the window is mapped
Michael Stapelberg [Thu, 2 Oct 2014 21:07:50 +0000 (23:07 +0200)]
t/114-client-leader: fix race by waiting until the window is mapped

10 years agoTestcases: Use Xephyr instead of XDummy
Tony Crisci [Wed, 1 Oct 2014 23:26:52 +0000 (19:26 -0400)]
Testcases: Use Xephyr instead of XDummy

Replace the XDummy script with Xephyr. This is done because of some
changes in the Xorg server that make XDummy difficult to use.

Rename library internal variables and function names to replace "xdummy"
with "xserver" to show this change (except for renaming the package and
lib file for better git history).

Rename the switch `--keep-xdummy-output` to `--keep-xserver-output`.
This switch should now be rarely used because Xephyr requires less set
up.

Replace "xdummy" with "xephyr" in comments and utility help
information. Update docs to show the new dependency.

fixes #1367

10 years agoBugfix: use the command parser to properly extract workspace names
Michael Stapelberg [Wed, 1 Oct 2014 20:50:48 +0000 (22:50 +0200)]
Bugfix: use the command parser to properly extract workspace names

fixes #1377

10 years agoDon't draw borders wider than actual width
Mats [Thu, 25 Sep 2014 17:45:15 +0000 (19:45 +0200)]
Don't draw borders wider than actual width

Rectangles passed to function xcb_poly_fill_rectangle are of type
xcb_rectangle_t and defined as:

    struct xcb_rectangle_t {
        int16_t  x;
        int16_t  y;
        uint16_t width;
        uint16_t height;
    }

The rectangles for the right and lower border had a width and height,
respectively, greater than the actual border width.

Furthermore, offset the bottom border to not overlap with the right one
and, for the top border, use r->width instead of con->rect.width as with
the other borders.

10 years agoIPC: set ws reply "num" member to -1 when named
Tony Crisci [Mon, 22 Sep 2014 05:09:25 +0000 (01:09 -0400)]
IPC: set ws reply "num" member to -1 when named

When a named workspace (i.e., a workspace that has a name that does not
begin with text that can be parsed as an integer greater than or equal
to zero) is represented by the ipc as a workspace json object such as
can be queried with `i3-msg -t get_workspaces`, set the num property to
-1 instead of json null.

This is for convenience of ipc consumers using type-constrained
languages such as C which have difficulty cleanly expressing nullable
integers.

fixes #1368

10 years agoDo not resend focus on click
Tony Crisci [Sat, 20 Sep 2014 21:21:08 +0000 (17:21 -0400)]
Do not resend focus on click

Do not set focused_id to XCB_NONE in route click to force resend focus,
in some cases to an already focused window.

Sending focus again on click is not necessary and may cause problems
with certain wine or mono apps. Resending focus makes combo boxes not
work in Office 2010.

This effectively reverts commit 250577da, so in case this commit causes
any problems with Eclipse to resurface, we’ll revert this commit in
favor of 250577da (the Eclipse-related bug fix).

10 years agoProperly handle windows unsetting WM_TRANSIENT_FOR (Thanks Janus)
Michael Stapelberg [Tue, 26 Aug 2014 08:00:14 +0000 (10:00 +0200)]
Properly handle windows unsetting WM_TRANSIENT_FOR (Thanks Janus)

fixes #1351

10 years agoAllow to validate the config file without X.
aszlig [Sat, 2 Aug 2014 05:01:15 +0000 (07:01 +0200)]
Allow to validate the config file without X.

We're going to call parse_configuration() very early if -C is given on
the command line. Instead of the previous "only_check_config", which has
been a global variable, we now simply pass use_nagbar as false if we're
just validating.

This causes the whole parsing to run without X and of course without
starting nagbar and displaying the errors to standard out/error instead.

The return code of parse_configuration() is now a boolean which
represents whether an error occured during parsing and the programs exit
code is returned accordingly.

Although the config parser still has a lot of side-effects, we now can
parse without the need to have an XCB connection. A nicer implementation
would be to just set the new font and load it just after we're done
parsing, but to ensure we don't break functionality we just load a dummy
FONT_TYPE_NONE if XCB isn't available. The main reason for going this
route is that it's a bit difficult to test fonts in a distribution
agnostic way without bundling fonts with i3 (or Xdummy to be more
exact).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
10 years agoParse tray_output as a word, not string (Thanks Peter)
Michael Stapelberg [Mon, 25 Aug 2014 15:55:59 +0000 (17:55 +0200)]
Parse tray_output as a word, not string (Thanks Peter)

This makes it robust against trailing whitespace.

fixes #1352

10 years agoTreat everything up to 120 dpi as 96 dpi (Thanks jefvel)
Michael Stapelberg [Sat, 23 Aug 2014 14:02:30 +0000 (16:02 +0200)]
Treat everything up to 120 dpi as 96 dpi (Thanks jefvel)

See the comment in the source for rationale.

10 years agoAlign lower line of bar decoration to border width
Mats [Fri, 1 Aug 2014 18:07:04 +0000 (20:07 +0200)]
Align lower line of bar decoration to border width

In normal border style, two horizontal lines are drawn to outline the
bar decoration. The lower line leaves a gap to the left and right to
align with the border. This gap was hardcoded to 2 pixels. Now it
matches the current border width, if any.

In stacked layout, only the bottommost bar is aligned. In tabbed layout,
no gaps are left in order to close the outline and make the notion of a
tab more clear.

10 years agoretina support: convert logical to physical pixels for default_border_width
Michael Stapelberg [Mon, 11 Aug 2014 07:45:35 +0000 (09:45 +0200)]
retina support: convert logical to physical pixels for default_border_width

10 years agoMerge branch 'fix-layout-focus'
Michael Stapelberg [Fri, 8 Aug 2014 18:16:40 +0000 (20:16 +0200)]
Merge branch 'fix-layout-focus'

10 years agoMerge branch 'master' into next
Michael Stapelberg [Fri, 8 Aug 2014 18:16:40 +0000 (20:16 +0200)]
Merge branch 'master' into next

10 years agoBugfix: don’t set focus in con_set_layout() on invisible workspaces
Michael Stapelberg [Fri, 8 Aug 2014 18:15:59 +0000 (20:15 +0200)]
Bugfix: don’t set focus in con_set_layout() on invisible workspaces

fixes #1338

10 years agot/*ewmh*: fix flakiness by syncing
Michael Stapelberg [Fri, 8 Aug 2014 10:22:41 +0000 (12:22 +0200)]
t/*ewmh*: fix flakiness by syncing

10 years agoRaise floating windows on `focus [direction]`
Tony Crisci [Mon, 28 Jul 2014 02:32:50 +0000 (22:32 -0400)]
Raise floating windows on `focus [direction]`

Raise a window when cycling focus between floating windows with `focus
[direction]` command so that newly focused windows are rendered on top
of other windows.

This is done by placing the window last in the floating nodes of the
parent and reordering the stack so the relative order is preserved.

fixes #1322

10 years agomake AnyEvent::I3 dependency versioned (Thanks sur5r)
Michael Stapelberg [Tue, 5 Aug 2014 09:49:16 +0000 (11:49 +0200)]
make AnyEvent::I3 dependency versioned (Thanks sur5r)