Michael Stapelberg
9260cd7e12
Merge branch 'master' into next
2011-08-07 17:56:37 +02:00
Michael Stapelberg
d39261a1f0
rewrite con_descend_orientation
...
It now uses the container orientation (if it is appropriate, the last focused
one otherwise) to recurse. This works better if the target workspace is in
vertical orientation when you use right/left or if it is in horizontal
orientation but you use up/down.
2011-08-07 15:57:36 +02:00
Michael Stapelberg
99ba193ce7
Bugfix: the up/down directions were swapped
...
Also compare 'output' and 'current' in the same order in both parts of the
condition to make the comparison more clear.
2011-08-07 15:46:24 +02:00
Michael Stapelberg
692d65b0fd
little style fixes
2011-08-07 15:24:51 +02:00
Peter Bui
a547365a88
Implement switching focus across screens.
...
Modify _tree_next() so that when we reach the workspace container:
1. Find the next corresponding output (screen) using the added
get_output_next().
2. If there is another output, find the visible workspace.
3. Call workspace_show on found workspace.
4. Find the appropriate window to focus (leftmost/rightmost, etc.) using
con_descend_direction, and then focus it.
I've only tested on horizontal monitors (left/right).
2011-08-07 14:33:07 +02:00
Michael Stapelberg
94ba655794
Merge branch 'master' into next
2011-08-06 18:54:50 +02:00
Michael Stapelberg
cd5e74bd8e
Bugfix: Call tree_render() before starting the dragging when dragging a floating window (Thanks eeemsi)
...
Fixes #462
2011-08-06 18:53:39 +02:00
Michael Stapelberg
2631ad4c07
Merge branch 'master' into next
2011-08-05 01:04:28 +02:00
Michael Stapelberg
ec0d67410a
Fix border rendering (Thanks Paride Legovini)
2011-08-05 01:03:56 +02:00
Michael Stapelberg
6e95004d6c
Merge branch 'master' into next
2011-08-04 23:37:40 +02:00
Michael Stapelberg
f2e1e220a4
Bugfix: Use the right format string (Thanks pnutzh4x0r)
2011-08-04 23:34:23 +02:00
Michael Stapelberg
7e0cbf18f9
Bugfix: Correctly parse the 'focused' (it’s a bool, no longer int) when restoring layout (Thanks andi)
2011-08-04 22:58:19 +02:00
Michael Stapelberg
93c3596619
Merge branch 'master' into next
2011-08-04 22:21:42 +02:00
Michael Stapelberg
1d50cff7ca
Bugfix: Fix stacking order
...
The commit 192dbdabd6
introduced a regression
here (open three floating windows and try to raise them with clicking to see
what i mean)
2011-08-04 22:19:30 +02:00
Michael Stapelberg
ecc2cae3f7
Bugfix: use ELOG to actually get the error message into the logfile shown by i3-nagbar
2011-08-04 21:43:55 +02:00
Michael Stapelberg
4e350664ae
Bugfix: Check that ->symbol != NULL before using strcasecmp()
2011-08-04 21:38:13 +02:00
Michael Stapelberg
787dd4059f
little style fixes for the previous patch
2011-08-04 21:25:47 +02:00
Radek Tříška
9d101d8473
check_for_duplicate_bindings
2011-08-04 20:37:01 +02:00
Michael Stapelberg
e9395149b9
Merge branch 'master' into next
2011-08-04 20:11:44 +02:00
Mateusz Poszwa
1913bf0e5c
Add "instance" to matching criteria
2011-08-04 20:10:31 +02:00
Simon Kampe
837bb50826
Parsing workspace name so if the first part is a number, the workspace will get this number. If no number is found it will default to -1.
2011-08-04 00:30:07 +02:00
Peter Bui
1750192f63
Modify workspace next/prev to account for workspaces on all outputs.
...
Generally, the traversal goes: numbered workspaces in order, and then
named workspaces in the order in which they appear in the tree.
Example:
Output 1: Output 2:
1 3 D C 2 4 B A
Traversal: 1, 2, 3, 4, D, C, B, A, 1, ...
Note, after the numbered workspaces, we traverse the named workspaces
from output 1, and then output 2, etc.
2011-08-04 00:12:09 +02:00
Michael Stapelberg
d0741975f1
Bugfix: Use the appropriate number when assigning numbered workspaces in randr.c
2011-08-04 00:10:23 +02:00
Michael Stapelberg
c883e7050a
Include <limits.h> in all.h
2011-08-04 00:10:04 +02:00
Michael Stapelberg
92481b133c
docs/userguide: the correct command is 'floating enable', not 'mode floating' (Thanks Sander)
...
Fixes : #453
2011-08-03 20:48:28 +02:00
Michael Stapelberg
e616b45c83
Bugfix: realloc() with size == 0 works like free() and returns NULL, so don’t die()
2011-08-03 20:43:08 +02:00
Michael Stapelberg
192dbdabd6
Bugfix: Correctly set the _NET_CLIENT_LIST_STACKING hint (fixes chromium tabbar)
...
Fixes #287
2011-08-03 20:07:03 +02:00
Michael Stapelberg
cc5f3ce95a
Bugfix: Fix 'resize' with direction != 'up' for floating windows
...
Fixes #447
2011-08-03 14:48:52 +02:00
Michael Stapelberg
9800d5286f
Bugfix: Correctly check if the workspace already exists
2011-08-03 12:18:30 +02:00
Michael Stapelberg
dcba8024de
also handle quoted workspace names, extend t/72 for that
2011-08-03 03:33:12 +02:00
Michael Stapelberg
0092b245a1
Bugfix: When looking for an unused workspace, try the named workspaces first
...
Fixes : #449
2011-08-03 03:08:59 +02:00
Michael Stapelberg
719022d80a
Bugfix: Ensure that the percentage is > 0.05 when using the 'resize' cmd (Thanks rogutes)
...
Fixes #437
2011-08-02 22:31:45 +02:00
Michael Stapelberg
554a43ca4a
Bugfix: Make the criteria rules recursive in src/cfgparse.y, too (Thanks f8l)
2011-08-02 19:46:14 +02:00
Michael Stapelberg
c9194b4297
Bugfix: Correctly bind on multiple keycodes if a symbol has more than one (Thanks ubitux)
2011-08-02 10:47:03 +02:00
Michael Stapelberg
3204caa98d
i3-migrate-config-to-v4: drop the .pl suffix
...
As lintian (a Debian package checker) mentions, it is more clever to install it
without the extension, since the implementation language might change.
2011-07-31 23:11:05 +02:00
Michael Stapelberg
bc98185f85
Bugfix: Handle (and free) the last_motion_notify
2011-07-31 21:21:45 +02:00
Michael Stapelberg
7180dca3b2
Bugfix: Correctly free the xcb_get_geometry reply when not managing a window
2011-07-31 20:39:33 +02:00
Michael Stapelberg
22de7593c5
Bugfix: free() the grab_pointer reply
2011-07-31 19:52:58 +02:00
Michael Stapelberg
6c35a0b93b
handle the xcb_grab_pointer reply
2011-07-31 19:48:39 +02:00
Michael Stapelberg
ffbcfa2c97
Bugfix: also free() X11 errors in the main loop
2011-07-31 19:41:57 +02:00
Michael Stapelberg
fdfa88586d
Forgot free(event)
2011-07-31 19:34:55 +02:00
Michael Stapelberg
fa1fe3cfed
Bugfix: Same xcb_send_event fix as 1e0033bce4
2011-07-31 19:33:56 +02:00
Michael Stapelberg
5bfc89f733
Bugfix: Correctly pass the pointer to xcb_send_event
2011-07-31 19:26:38 +02:00
Michael Stapelberg
52b3646ecc
xcb: don’t use the _unchecked variant for requests which have a reply
2011-07-31 18:19:41 +02:00
Michael Stapelberg
7f3f7c26b6
Bugfix: free replies after using them
2011-07-31 18:17:56 +02:00
Michael Stapelberg
d9ff172d36
Bugfix: load_font: free reply after using it
2011-07-31 17:57:11 +02:00
Michael Stapelberg
cbfcf5bd8b
Bugfix: free font string after using it
2011-07-31 17:54:53 +02:00
Michael Stapelberg
ee83df9684
Bugfix: cfgparse: correctly free parser/lexer
2011-07-31 17:50:54 +02:00
Michael Stapelberg
088681c781
Bugfix: property handlers: correctly free replies in all cases
2011-07-31 17:46:41 +02:00
Michael Stapelberg
1e0033bce4
Bugfix: Allocate 32 bytes for xcb_send_event, it always copies 32 bytes
...
Fixes an 'uninitialized memory' error in valgrind
2011-07-31 17:46:01 +02:00
Michael Stapelberg
4875868689
Bugfix: Free property replies in their handlers
2011-07-31 17:12:37 +02:00
Michael Stapelberg
d3e3339a05
Bugfix: Fix small memory leak when initializing output Cons
2011-07-31 17:11:51 +02:00
Michael Stapelberg
f2fc523de7
Bugfix: fix memory leak in src/cmdparse.y
2011-07-31 17:11:28 +02:00
Michael Stapelberg
3721c598bd
Bugfix: Set the cursor via the Xlib connection if XCursor is supported
...
This fixes a race where we created cursors on the Xlib connection, flushed,
then used the cursor on the XCB connection. Even though we flushed, the X
server did not process the requests yet and therefore returned a BadCursor
error.
This bugfix uses the Xlib connection for setting the root window cursor which
will ensure that the requests are properly serialized.
An easy test for this (on my machine) is the following ~/.xsession:
xsetroot -cursor_name cross
exec i3
If you see a cross cursor instead of the pointer, the race happens. You’ll see
a error_code=6 error in your ~/.xsession-errors.
2011-07-29 13:13:51 +02:00
Michael Stapelberg
bc7dec6a4c
X11 errors: also log the error_code (see X Protocol, Appendix B, Errors)
2011-07-29 13:11:02 +02:00
Fernando Tarlá Cardoso Lemos
ae9c90ba19
Don't leak the cursor_id.
...
Fixes a server-side leak. The cursor_id is not needed when we're
using themed cursors (we never freed it either).
2011-07-29 12:38:44 +02:00
Fernando Tarlá Cardoso Lemos
7a18dcc89e
Set the root window cursor. Fixes #442 .
2011-07-29 12:38:24 +02:00
Michael Stapelberg
ed30043950
Bugfix: Also abort drag_pointer after XCB_KEY_PRESS / XCB_KEY_RELEASE (Thanks eeemsi)
2011-07-28 21:01:34 +02:00
Michael Stapelberg
f84264ae41
remove _NET_WM_WORKAREA from _NET_SUPPORTED for now
...
See ticket #301 , this is a problem with Qt apps on your second monitor.
We should implement better EWMH support, but not before the release :).
2011-07-27 12:51:38 +02:00
Michael Stapelberg
18513e1638
x.c: fix warning by removing unused variable
2011-07-25 00:32:14 +02:00
Michael Stapelberg
7a7764a0d9
handlers.c: fix warnings
2011-07-25 00:32:03 +02:00
Michael Stapelberg
797ba5f7c8
remove unnecessary close, because fclose already closes the file descriptor
2011-07-24 18:42:46 +02:00
Michael Stapelberg
34eb9b2664
ipc: make 'focused' a bool
2011-07-24 15:00:09 +02:00
Michael Stapelberg
b09bb0fc2a
ipc: make 'urgent' a bool
2011-07-24 14:54:30 +02:00
Michael Stapelberg
36fde6dbe1
ipc: send 'percent': null when percent is not relevant for the container
2011-07-24 14:47:28 +02:00
Michael Stapelberg
a05a9f8dae
Set some more atoms for _NET_SUPPORTED (Thanks lexszero)
2011-07-23 22:40:47 +02:00
Michael Stapelberg
3f7c7c2e38
remove left-over wordexp.h include
2011-07-23 22:37:41 +02:00
Michael Stapelberg
ffe297f5e5
Bugfix: use the global root variable, don’t get the first one (Thanks quaec)
2011-07-23 22:29:01 +02:00
Michael Stapelberg
fdd098b010
secure strscpy by replacing with strncpy
2011-07-23 22:22:36 +02:00
Michael Stapelberg
370715d1a8
Bugfix: Don’t leak file descriptor
2011-07-23 22:11:01 +02:00
Michael Stapelberg
062ce3ef03
Bugfix: Correctly resize when clicking on the border of a stacked con
...
Runs the same code as for non-stacked / non-tabbed containers, but on the
parent of the container (which is the stacked / tabbed con, since route_click
gets called with the child).
2011-07-23 21:48:14 +02:00
Michael Stapelberg
02dfb8e891
use memmem and strndup from FreeBSD on Darwin (Thanks Marcus)
2011-07-17 15:18:45 +02:00
Michael Stapelberg
2d71102796
Bugfix: Switch to appropriate workspace when using 'focus' (+test) (Thanks rogutes)
...
Fixes #432
2011-07-14 23:45:36 +02:00
Michael Stapelberg
8c1a242f5f
reload the config after editing it through i3-nagbar
2011-07-13 18:47:08 +02:00
Claudio Marforio
cc24a96e96
patch to allow exec_always in configure file
...
fixed indentation, updated docs
2011-07-12 18:23:14 +02:00
Michael Stapelberg
5555c0fd3b
Bugfix: Don’t raise the stacked/tabbed decoration when border != BS_NONE and children == 1 (Thanks smartass)
...
Otherwise a black area would cover the top of the child window.
2011-07-11 23:17:56 +02:00
Michael Stapelberg
06054642fe
debug.c: remove handle_event
2011-07-11 18:21:25 +02:00
Michael Stapelberg
897b53f1c2
Bugfix: run nagbar commands through sh(1) (Thanks Tucos)
2011-07-11 16:51:57 +02:00
Michael Stapelberg
429d310011
nagbar: use less / vi as fallbacks for PAGER / EDITOR
2011-07-11 16:40:10 +02:00
Michael Stapelberg
05e39c1c48
Ignore X11 errors caused by ReparentWindow / ChangeProperty on already destroyed windows
...
These errors can happen because a DestroyWindow request by a client will
trigger an UnmapNotify, then a DestroyNotify. We cannot distinguish this
UnmapNotify from an UnmapNotify not followed by a DestroyNotify, so we just try
to send the ReparentWindow / ChangeProperty and ignore the errors, if any.
2011-07-10 23:44:13 +02:00
Michael Stapelberg
48f5166daf
log: display time in microseconds when DEBUG_TIMING is set
2011-07-10 23:11:21 +02:00
Michael Stapelberg
937a80511a
x: only configure window coordinates when height > 0
...
Fixes some X11 errors
2011-07-10 22:59:04 +02:00
Michael Stapelberg
d9038cdb80
x: Only render / copy pixmap when the pixmap was actually created
...
Fixes some X11 errors
2011-07-10 22:58:49 +02:00
Michael Stapelberg
85d851de5f
x: disable GraphicsExposure events on our pixmap graphics contexts
...
Gets rid of GraphicsExposure and NoExpose events, which we don’t use anyways.
2011-07-10 22:27:51 +02:00
Michael Stapelberg
78d25c4cd9
expose event handler: use x_deco_recurse
2011-07-10 22:06:16 +02:00
Michael Stapelberg
7d9ba707b3
x: Don’t pre-render the decoration for windows inside a stack which are not visible
...
Saves n-1 decoration renderings for n windows in a stack whenever a new window
gets added or removed.
2011-07-10 21:55:29 +02:00
Michael Stapelberg
d7f9700ba4
x: use PolySegment instead of two PolyLine requests
2011-07-10 21:19:31 +02:00
Michael Stapelberg
8f4b95dccd
x: change EnterNotify event mask only for mapped windows
...
Saves a few ChangeWindowAttributes requests.
2011-07-10 20:18:06 +02:00
Michael Stapelberg
37e0cf8346
x: copy the pre-rendered pixmap contents to a decoration window immediately after mapping
...
Reduces flickering.
2011-07-10 20:15:22 +02:00
Michael Stapelberg
afef42a4ac
x: set the contents of a decoration window immediately after changing its size
...
Reduces flickering. A window loses its contents when being resized, so we have
to restore them as fast as possible.
2011-07-10 20:08:40 +02:00
Michael Stapelberg
517833569d
x: raise the stack decoration above the stack windows (reduces flickering)
...
This reduces flickering when opening new windows in a stack, see the comment.
2011-07-10 20:05:49 +02:00
Michael Stapelberg
0d8dd571f8
x: when rendering stacked/tabbed cons, only update decoration once, saves some CopyAreas
2011-07-10 20:01:29 +02:00
Michael Stapelberg
8be26c9a22
x: Don’t set background color on frame windows, reduces flickering
2011-07-10 19:58:46 +02:00
Michael Stapelberg
64cfb2dbb1
Revert "x: Set pixmap as background window, saves a lot of CopyAreas"
...
This reverts commit 84b804cda6
.
Turns out that it triggered graphic corruptions on ATI graphics cards (Thanks
aniou) with certain drivers.
2011-07-10 16:22:09 +02:00
Michael Stapelberg
c55abca115
add i3-nagbar. tells you about config file errors (for example)
2011-07-10 14:33:19 +02:00
Michael Stapelberg
0add563448
Bugfix: multiple criteria should use a logical AND (+test) (Thanks f8l)
2011-07-08 00:21:29 +02:00
Michael Stapelberg
0ca229ceb3
migrate-config: also make force_focus_wrapping a v4-only statement
2011-07-08 00:17:48 +02:00
Michael Stapelberg
ac335fcffa
Automatically call the migration script when the config does not look like v4
2011-07-06 20:43:00 +02:00
Michael Stapelberg
c408fef021
Implement 'focus floating', 'focus tiling' and 'focus mode_toggle' (+test +docs)
2011-07-04 17:09:52 +02:00
Michael Stapelberg
71741d7620
Bugfix: Only set ENTER_WINDOW event mask for mapped windows (fixes focus problems)
...
Fixes focus problems when switching to empty workspaces or when going in/out of
fullscreen.
2011-07-04 13:41:02 +02:00