Yuxuan Shui
5adb09c5fc
Use a saner sanity check for floating_reposition.
...
The function contained_by_output checks whether any output contains any
parts of a give rect. Rather than relying on the central point of the rect.
2013-03-21 23:41:07 +01:00
Yuxuan Shui
5b4ff1804d
Fix restarting with 32bit depth windows (v5)
...
What I do in this patch is:
1. Split the con_new() function, so I can create a Con without actually
create a window.
2. Store the depth of Cons in the layout file when i3 is restarting.
Fix typos and mis-staged files in previous patch.
2013-03-21 23:38:09 +01:00
Baptiste Daroussin
505d87ef3e
FreeBSD expect a real path on the filesystem for shm_open
2013-03-20 17:29:06 +01:00
Baptiste Daroussin
346cba0e0f
shm_unlink the created/open shm
2013-03-20 17:26:14 +01:00
Baptiste Daroussin
f530e5452d
Do not use ELOG while logwalk is not initialized
2013-03-20 17:24:10 +01:00
Michael Stapelberg
271189444d
bump copyright years to 2013
2013-03-17 01:01:04 +01:00
Michael Stapelberg
083611e434
Bugfix: Don’t warp the pointer when dragging floating windows
...
fixes #951
2013-03-15 19:27:08 +01:00
Michael Stapelberg
2640fb2b5f
makefile: delete test.{config_parser,commands_parser} in distclean
2013-03-12 14:03:22 +01:00
oblique
8a4a719093
Add support for _NET_WM_STATE_DEMANDS_ATTENTION.
...
_NET_WM_STATE_DEMANDS_ATTENTION indicates that some action in or with
the window happened. It's a weaker hint than urgency flag of WM_HINTS,
but some applications and almost all Qt applications use it instead of
WM_HINTS' urgency flag (one example is Skype).
2013-03-09 10:55:13 +01:00
Michael Stapelberg
7ecdcb61f8
config: accept “smart” as popup_during_fullscreen parameter (Thanks supplantr)
...
This was the default, so explicitly setting it is not really necessary,
but of course it should be possible.
fixes #967
2013-02-24 17:23:37 +01:00
Mats
a38749e7e4
Bugfix: Handle nested transient popups properly
...
During smart popup fullscreen handling, display all transient popups
that belong to the respective fullscreen application. A popup window
belongs to another window if the latter is reachable via the path
induced by the WM_TRANSIENT_FOR hints.
fixes #881
2013-02-24 15:59:38 +01:00
Piotr S. Staszewski
3facbbca5c
Add a new IPC event for changes on windows.
...
Added new event id (I3_IPC_EVENT_WINDOW) so that a an IPC client can
subscribe to events on windows. Added a basic window event that gets
triggered when a window gets successfully reparented. This new event
also dumps the container data, so that IPC clients can get the initial
window name. IPC clients wishing to see window events should subscribe
to 'window'.
2013-02-18 10:55:11 +01:00
Artem Shinkarov
5f05ca6b5d
Separator color via config; separator width and on/off via ipc
...
This patch adds the following features:
1) Configure a color of the separator via config. It is done like
bar {
colors {
separator #000000
}
}
2) A block can have an integer entry "separator_block_width" which
sets the width of the gap which would follow after the current block.
3) A block can have a boolean entry "separator" and if it is set
to false, then the drawing of the separating line would be disabled.
2013-02-18 10:44:44 +01:00
Sebastian Ullrich
49979c9d15
Always auto center on 'scratchpad show' if window hasn't been repositioned by the user
...
This change ensures a scratchpad window is still centered on the screen
if it has first been shown on another screen of a different
resolution. Moving or resizing the scratchpad manually disables this
behavior.
2013-02-18 10:38:28 +01:00
Mats
fa4301e06d
Split workspace instead of changing orientation
...
Move all children of the workspace into a new container if there is more
than one otherwise simply change the orientation.
fixes #922
2013-02-15 03:16:02 +01:00
oblique
e92dd1acc6
Obey WM_SIZE_HINTS's resize increments in floating
2013-02-14 19:38:26 +01:00
oblique
b0e2be9a6b
Add render_deco_height()
2013-02-14 19:37:52 +01:00
Sebastian Rachuj
b565bfca13
Bugfix: Do not move focus if a container is moved across outputs
...
fixes #809
This makes the moving behavior more consistent. If you want to focus the
workspace you are moving to, just chain the keybinding in your config
file:
bindsym $mod+Shift+1 move workspace 1; workspace 1
2013-02-10 17:38:17 +01:00
Sascha Kruse
bbede97966
scratchpad_show focus unfocused scratchpad window
...
When there's an unfocused scratchpad window on the current workspace
scratchpad_show will focus that scratchpad window.
2013-01-30 13:33:55 +01:00
Marius Muja
b1cc4d5166
Fix decoration rect size for windows without border
2013-01-26 19:31:15 +01:00
Francesco Mazzoli
f13d8ed06f
wrap when moving things to outputs with direction
2013-01-26 19:27:58 +01:00
Michael Stapelberg
62b0df0640
Make i3-nagbar use the same font as configured for i3
2013-01-26 09:55:38 +01:00
Adrien Schildknecht
76ef3a4ab8
remove the urgency indicator when a window is closed
2013-01-25 18:53:59 +01:00
Michael Stapelberg
74558bb33d
Call scratchpad_show() when focusing scratchpad windows via criteria
...
fixes #931
2013-01-25 16:11:20 +01:00
Michael Stapelberg
2ea94420d3
Merge branch 'master' into next
2013-01-25 15:48:38 +01:00
Michael Stapelberg
7be5ece663
Bugfix: fix coordinates of scratchpad windows on output changes (Thanks badboy)
...
Previously, after reconfiguring monitors, scratchpad windows could still
be focused but might be out of bounds for you to see.
fixes #929
2013-01-25 15:47:43 +01:00
Michael Stapelberg
a32d2d5d61
scratchpad: fix crash when moving last window of an invisible workspace (+test) (Thanks bafain)
...
It looks like the code which was removed with this commit was not
necessary anyways since con_move_to_workspace() by now checks on its own
whether it moves to the scratchpad.
fixes #913
2013-01-25 15:28:58 +01:00
Michael Stapelberg
f767ac30b3
fix two more crashes when disabling an empty output
2013-01-25 14:53:15 +01:00
Michael Stapelberg
e0cfe1f8c0
Bugfix: fix crash when disabling output without any windows (Thanks xeen, knopwob)
...
fixes #919
2013-01-25 14:14:06 +01:00
Michael Stapelberg
a5c9b0dedb
Merge branch 'master' into next
2013-01-24 14:45:14 +01:00
Michael Stapelberg
2eb4ed95bc
Bugfix: fix “overlapping” --release key bindings (Thanks phlux)
...
We eagerly marked all KeyRelease bindings as eligible to match without
checking modifiers, while this should only be allowed for the key
binding which actually was pressed.
fixes #915
2013-01-24 14:44:01 +01:00
Marius Muja
bfd150872d
Fixing continuous resize bug in floating mode
...
fixes #910
2013-01-24 12:42:13 +01:00
David Edmondson
3365b52384
Allow servers which do not support the XKB extension.
...
If we can open the X display but the XKB extension is not available,
continue without it.
2013-01-23 20:27:27 +01:00
Michael Stapelberg
2478d0a2e0
ipc: use ipc_recv_message instead of duplicate code
...
This should fix the situation where i3 would read only the header and
not the payload of the message.
2013-01-23 18:59:36 +01:00
Michael Stapelberg
dcb8ac84f8
ipc_recv_message: store message_type, don’t compare. add distinct EOF retval
...
Also use ELOG, which requires i3-msg to provide logging functions.
2013-01-23 18:51:39 +01:00
Michael Stapelberg
2c249b6949
Merge branch 'master' into next
2013-01-01 16:31:27 +01:00
Michael Stapelberg
138e04fd4d
Bugfix: Fix for_window moving of assigned windows (Thanks bafain)
...
fixes #909
2013-01-01 16:31:08 +01:00
Michael Stapelberg
d8e27dd5aa
ignore MotionNotify events generated while warping the pointer
2012-12-27 17:04:13 +01:00
Michael Stapelberg
9edbcc4790
debug message for window focus: include window ID
2012-12-27 16:58:46 +01:00
Michael Stapelberg
54fd3d3480
unregister as window manager before restarting (fixes a race condition)
2012-12-27 16:54:54 +01:00
Michael Stapelberg
cde82eafa6
use xcb_aux_sync to make sure our changes reach the X server, flushing is not enough
2012-12-27 16:54:36 +01:00
Simon Elsbrock
0045cfa637
move visible scratchpad window to focused workspace
...
If there is a visible scratchpad on another (non-internal) workspace,
bring it to the focused workspace instead of doing nothing.
closes #784
2012-12-24 19:20:47 +01:00
Michael Stapelberg
b3d7531947
refactor both i3-nagbar starts into src/util.c
...
With this change, libev >= 4 is a hard dependency. It should be present
in all major linux distributions (even the latest ubuntu LTS).
2012-12-24 16:53:20 +01:00
Michael Stapelberg
c127ac3855
remove all references to the old cfgparse
2012-12-24 15:57:02 +01:00
Michael Stapelberg
b304e6ad34
remove old cfgparse.{l,y}
2012-12-24 15:46:57 +01:00
Sascha Kruse
5d4a934864
render_con: initialize int sizes[children]
...
This fixes a clang-analyzer warning
2012-12-24 15:28:17 +01:00
Michael Stapelberg
4f2922de62
Revert "initialize array to fix clang-analyze warning"
...
This reverts commit 56e0ceb44e
.
2012-12-24 15:28:08 +01:00
Michael Stapelberg
56e0ceb44e
initialize array to fix clang-analyze warning
2012-12-24 15:19:20 +01:00
Michael Stapelberg
9ae73b7a2a
fix possibly uninitialized variable (Thanks knopwob)
2012-12-24 15:13:47 +01:00
Michael Stapelberg
1a6bddad55
Merge branch 'master' into next
2012-12-24 14:50:15 +01:00
Michael Stapelberg
625401d162
Bugfix: handle MapRequests sent between i3 registering as a wm and handling events
...
This fixes the problem where i3-nagbar does not come up because its
MapRequest is ignored.
fixes #892
2012-12-24 14:49:19 +01:00
Michael Stapelberg
24aa857a89
Bugfix: Correctly close floating windows (Thanks eeemsi)
2012-12-23 18:51:17 +01:00
Michael Stapelberg
3a78d489e6
Render tree before destroying X11 containers upon unmap (Thanks Merovius)
...
When an X11 window is closed (say, urxvt), i3 gets an UnmapNotify event
and destroys (DestroyWindow) the window decorations. Before this commit,
the DestroyWindow call was sent immediately.
This lead to a situation where — due to the DestroyNotify — EnterNotify
events were generated that would cause the focus to be set to the
underlying window.
With this commit, i3 first renders the tree and pushes changes to X11
before calling DestroyWindow. Therefore, the surrounding containers will
take up any space that was freed by the window which was closed and no
EnterNotify will be generated.
fixes #660
2012-12-23 15:54:49 +01:00
Joep van Delft
79bd2aede5
Draw 1px tab separators left/right instead of 2px on the right only
...
fixes #894
2012-12-22 16:15:11 +01:00
Michael Stapelberg
a1ccca22e6
Merge branch 'master' into next
2012-12-22 14:08:14 +01:00
Michael Stapelberg
36b106a9d3
Bugfix: Ignore ConfigureRequests for scratchpad windows (Thanks MeanEYE)
...
fixes #898
2012-12-22 14:08:11 +01:00
Michael Stapelberg
bb3ae9f960
Merge branch 'master' into next
2012-12-19 21:40:53 +01:00
Michael Stapelberg
721fa7bdad
Fix scrolling on a tabbed titlebar which contains split cons (Thanks f8l)
...
fixes #708
2012-12-19 21:40:26 +01:00
Michael Stapelberg
895f8e05c8
Merge branch 'master' into next
2012-12-19 21:13:12 +01:00
Michael Stapelberg
ae605bdd39
Also draw right tab border for split containers (Thanks alex)
...
fixes #696
2012-12-19 21:12:38 +01:00
Michael Stapelberg
73ec3dd3b0
Merge branch 'master' into next
2012-12-14 21:50:15 +01:00
Michael Stapelberg
7658109309
Bugfix: remove superfluous #include <xcb/xcb_atom.h> (Thanks pnutzh4x0r)
...
This fixes the build on CentOS 6.
fixes #889
2012-12-14 21:49:31 +01:00
Michael Stapelberg
61a5b9ddd4
Revert "don't use con_is_internal"
...
This reverts commit c6948c59f5
.
Given that master and next now both contain con_is_internal, we can use
it again.
2012-12-14 21:44:20 +01:00
Michael Stapelberg
2bf7793d4d
Merge branch 'next'
2012-12-12 00:18:23 +01:00
Michael Stapelberg
18e46ffae5
install i3-dmenu-desktop
2012-12-11 22:31:44 +01:00
Michael Stapelberg
1ae08b196a
Bugfix: Don’t move floating windows when their size constraints forbid resizing (Thanks aksr)
...
fixes #883
2012-11-27 09:26:31 +01:00
Michael Stapelberg
19cbd3cbec
code style fixes for the previous commit
...
• our function names use underscores
• rewrote the function’s comment
• function comments must be in the source _and_ in the header
• no blank lines after function signatures
2012-11-25 20:55:49 +01:00
Adrien \"schischi\" Schildknecht
f41fa1baa1
The command to resize a floating window now checks the minimum and maximum size.
2012-11-25 20:52:56 +01:00
Emil Mikulic
d2b533328d
Fix memory leaks in config_parser.
...
push_token() doesn't take ownership of its str argument.
2012-11-24 17:39:52 +01:00
Michael Stapelberg
3cb909fa62
config parser: recover after invalid input
...
This is done by ignoring the rest of the current line and jumping to the
nearest <error> token.
fixes #879
2012-11-20 17:10:29 +01:00
Michael Stapelberg
305b6ddf2f
set LC_NUMERIC=C when dumping nodes in the workspace event
...
Otherwise the resulting JSON might be invalid because it uses the
locale-specific comma separator, e.g. "16,666" instead of "16.666".
2012-11-13 09:49:08 +01:00
Francesco Mazzoli
1055973f66
refactor, name changes
...
We need to send the workspace event earlier, because otherwise 'old'
might already be destroyed (if it was empty).
2012-11-13 09:40:06 +01:00
Francesco Mazzoli
464d387044
take care of non-existant old workspaces
2012-11-13 09:33:03 +01:00
Francesco Mazzoli
74d596e0fc
more informative `workspace' events
...
Add a `current' and `old' properties to the `focus' change type,
containing the current and old workspace respectively. These additions
are not necessary anywhere else because `focus' is always triggered when
changing ws.
2012-11-13 09:33:00 +01:00
Francesco Mazzoli
b67eedf71a
simplify yajl related code
...
Specifically, put the version dependent code in some macros, and put
that plus the `y' and `ystr' macros in a separate file, `yajl_utils.h'.
2012-11-13 09:32:55 +01:00
Simon Elsbrock
c6948c59f5
bugfix: don't use con_is_internal
...
fixes #872
2012-11-12 19:49:01 +01:00
Michael Stapelberg
dece12bf18
Merge branch 'master' into next
2012-11-10 09:01:24 +01:00
Michael Stapelberg
81393c93c2
bugfix: fix workspace back_and_forth after displaying a scratchpad window
...
fixes #868
2012-11-10 09:01:04 +01:00
Michael Walle
ae14fe9141
introduce new command to rename focused workspace
...
The corresponding command is 'rename workspace to <name>'. As a side-effect
this fixes the command 'rename workspace 1 to to'.
Signed-off-by: Michael Walle <michael@walle.cc>
2012-10-31 09:09:56 +01:00
Michael Stapelberg
71ccb4bef2
Merge branch 'master' into next
2012-10-29 16:42:11 +01:00
Michael Stapelberg
e7a4580c5f
Bugfix: force rendering when the parent’s orientation changed
...
Otherwise, the split indicator might not be refreshed even though it
should be.
fixes #858
2012-10-29 16:41:16 +01:00
Michael Stapelberg
9b87b2c8ec
Implement smart popup_during_fullscreen mode
...
With this commit, the default behavior is to display popups while there
is a fullscreen application only if the popup belongs to that
application (as determined by the WM_TRANSIENT_FOR hint which
applications have to set properly).
fixes #663
2012-10-24 20:54:28 +02:00
Michael Stapelberg
29b19a7468
spelling error: s/implementaiton/implementation/g
2012-10-24 07:58:03 +02:00
Deiz
aefcb0b668
Skip floating windows in the focus stack when moving through the tree
...
Includes a test for the new behaviour
2012-10-16 20:03:40 +02:00
Deiz
fdfbc53c0b
Focus windows when middle-clicking (X paste)
...
As with most click-based focusing, this only has an effect when
focus_follows_mouse is disabled.
2012-10-16 20:03:08 +02:00
Deiz
c406b4c2fe
Skip floating cons in focus (child|parent) and stop them from being split
...
Focusing child from a workspace should now skip over the floating con and
go directly to its child. Focusing parent from that grandchild should leave
the workspace focused again.
2012-10-16 20:01:36 +02:00
Michael Stapelberg
34a5bbb7e9
exit with a proper error message when there are no outputs available (Thanks flo)
...
fixes #842
2012-10-14 20:56:13 +02:00
Michael Stapelberg
39ba955919
Bugfix: Actually set border width in config_directives.c (Thanks strcat)
2012-10-09 22:06:36 +02:00
Deiz
47de7375dd
Allow 'focus $dir' to move out of non-global fullscreen containers
2012-10-09 21:26:49 +02:00
Deiz
ca77c12dde
Allow workspace contents to be moved if there are only floating children
2012-10-09 21:25:13 +02:00
Deiz
e07803999f
Fix fullscreen focus bug and corresponding test flaw
...
As the workspace might be reached via recursion (e.g. moving from the edge
of a fullscreen split container), it's necessary to check for a fullscreen
container whenever a workspace is reached.
2012-10-09 21:24:04 +02:00
Deiz
7a280f5691
Grab keys with all permutations of lock and numlock
...
This should prevent all cases of caps lock (or shift lock, on some
keyboards) from interfering with i3 key bindings.
2012-10-09 21:15:06 +02:00
Michael Stapelberg
00ac2c4c9c
accept ctrl as synonym of control (Thanks SardemFF7)
2012-10-09 14:09:12 +02:00
Michael Stapelberg
80492c8304
error out instead of accepting invalid key bindings (Thanks SardemFF7)
2012-10-09 14:09:08 +02:00
Michael Stapelberg
ee36c8507e
bugfix: config-parser: bind is a synonym for bindcode
2012-10-08 13:40:44 +02:00
Michael Stapelberg
040a441101
fix warning about printf() field length
2012-10-08 13:30:14 +02:00
Michael Stapelberg
20c0fa7cfb
use the new parser by default
...
you can force the old parser with the command line flag
--force-old-config-parser-v4.4-only (which will be present in v4.4 only,
as the name suggests)
2012-10-08 13:26:42 +02:00
Michael Stapelberg
2738f13798
move owindow definition into the command parser
2012-10-08 13:26:24 +02:00
Michael Stapelberg
68e3e58232
link the parser test binaries with -g
2012-10-08 13:25:57 +02:00
Michael Stapelberg
c2b699f3dc
change the commands_parser prefix to 'command' for consistency
2012-10-08 13:25:32 +02:00