Michael Stapelberg
cdeb49127f
Bugfix: restore focus to the correct window when a non-focused window gets destroyed (+testcase)
2011-03-14 16:34:35 +01:00
Michael Stapelberg
f162e7efaa
refactor font caching to just save the ID instead of mainting a cache with pattern→id-mapping
2011-03-10 23:20:17 +01:00
Simon Kampe
6e4a2b0b96
Fallback fonts for when requesting a erronous font with load_font (e.g. user have specified a font which does not exist in the config file).
2011-03-10 21:46:31 +01:00
Michael Stapelberg
86637d2e07
Bugfix: Make level up a noop during fullscreen mode (+testcase) (Thanks dothebart)
...
Fixes #341
2011-03-09 18:37:05 +01:00
Michael Stapelberg
74b90cd83f
Bugfix: Send WM_DELETE / kill window the right way (Thanks dothebart)
...
Fixes #336
2011-03-09 18:08:26 +01:00
Michael Stapelberg
0a24057241
When leaving fullscreen, set focus to con which was opened during fullscreen (+testcase) (Thanks dothebart)
2011-03-07 00:06:27 +01:00
Michael Stapelberg
287d7f9527
Bugfix: Don’t focus new cons when there is a fullscreen con (Thanks dothebart)
...
Also, remove the focus_it parameter from tree_open_con, it makes more sense to
call con_focus outside of the function.
2011-03-06 23:26:02 +01:00
Michael Stapelberg
8ce5f2a21b
Bugfix: Fix crash with transient dock clients caused by 7154fecbb
2011-03-06 22:02:02 +01:00
Michael Stapelberg
c17b3b7560
remove left-over xcb_aux_sync (debugging code)
2011-03-06 21:56:15 +01:00
Michael Stapelberg
b0b195318c
rendering: bugfix: stack child windows of stacked/tabbed cons according to their focus
...
fixes focusing the wrong window after closing a con
2011-03-06 21:49:17 +01:00
Michael Stapelberg
4f26316aaa
x: disable all events while re-stacking windows, prevents unwanted EnterNotifys
2011-03-06 21:48:49 +01:00
Michael Stapelberg
0689f6d8f1
Bugfix: use tree_render() instead of x_push_changes() to re-render and update the stack
2011-03-06 20:45:03 +01:00
Michael Stapelberg
7154fecbbf
Implement the popup_during_fullscreen option, set default to leave_fullscreen
...
Fixes #333
2011-03-06 15:46:06 +01:00
Michael Stapelberg
51ff0f80a6
Obey minimum size when resizing floating windows
...
Fixes #285
2011-03-06 14:15:46 +01:00
Michael Stapelberg
1891a385ad
Bugfix: also stop searching for resize cons when reaching a floatingcon (Thanks julien)
2011-03-06 13:35:07 +01:00
Michael Stapelberg
4514146ed9
Use the combined geometry of children when setting a split container to floating (+testcase) (Thanks mseed)
...
Fixes #332
2011-03-06 02:39:15 +01:00
Michael Stapelberg
88ab66e742
Bugfix: don’t focus dock clients with new click handling code (Thanks mseed)
2011-03-06 02:06:05 +01:00
Michael Stapelberg
24463718cc
refactor the click handling completely
...
Also re-implements floating modifier on tiling cons.
Fixes : #288 and a lot of headache :)
2011-03-05 20:23:29 +01:00
Michael Stapelberg
0a2ee1d2aa
Bugfix: Focus workspace after closing one of multiple dock clients (+testcase) (Thanks mseed)
2011-03-04 15:21:18 +01:00
Michael Stapelberg
f6a21994bf
Re-implement focus follows mouse for outputs
...
That is, moving your mouse pointer to a different workspace which does not have
any windows on it yet will correctly update the focus.
2011-03-03 16:36:18 +01:00
Michael Stapelberg
caa1ac1a9f
Use the original geometry for floating windows
2011-03-03 16:22:22 +01:00
Michael Stapelberg
b484b9ab32
Don’t create floating containers from whole workspaces when they are empty (Thanks mseed)
...
This fixes #327
2011-03-03 14:55:02 +01:00
Michael Stapelberg
a038d2674b
Bugfix: 'level up' needs to stop at the workspace con + testcase (Thanks mseed)
2011-03-03 14:30:13 +01:00
Michael Stapelberg
62362a464d
fix invalid memory access in xcb_reply_contains_atom (Thanks ys)
2011-03-03 14:14:35 +01:00
Michael Stapelberg
77640da9e7
Bugfix: don’t focus the dockarea when closing a dock client
2011-03-03 14:03:06 +01:00
Michael Stapelberg
e0647b7fc2
Bugfix: don’t focus dock clients (Thanks mseed, mist)
...
Fixes #321 and #323
2011-03-03 13:59:42 +01:00
Michael Stapelberg
33c2b4e582
Bugfix: Correctly fix the percent values for resizing when making a floating con tiling (Thanks mseed) (+testcase)
2011-02-28 23:59:56 +01:00
Michael Stapelberg
b595ff05c5
Fix regression: Don’t add floating nodes twice when restoring layout (+testcase)
2011-02-28 20:44:23 +01:00
Michael Stapelberg
d80105103c
Bugfix: Re-attach floating cons to the right container (Thanks mseed)
...
This fixes #315 .
2011-02-28 17:23:50 +01:00
Fernando Tarlá Cardoso Lemos
beaa85ceb9
Don't leak this descriptor (thanks dothebart).
...
Note that fclose closes the file descriptor frees the stream.
2011-02-28 16:49:10 +01:00
Fernando Tarlá Cardoso Lemos
269d360f30
Some assertions to make the static analyzer happy.
...
Assertions give hints to the static analyzer about code paths
where we make assumptions. Used the Clang Static Analyzer.
2011-02-28 16:49:03 +01:00
Fernando Tarlá Cardoso Lemos
f4ec0bceff
Very minor issues found with statical analysis.
...
The Clang Static Analyzer uncovered those issues:
- The variable "changed" in handlers.c is written to, but it's
never read since that specific write, so the write is not
necessary.
- In util.c, "tail" may be NULL. In that case, we shouldn't pass
it to strlen because strlen's behavior is not defined when s is
NULL.
- In util.c, "write_index" is incremented twice. It's never used
anymore after being incremented once, so the second increment is
not necessary.
2011-02-28 16:48:22 +01:00
Michael Stapelberg
ffc71859a3
Implement support for top/bottom dock clients (according to _NET_WM_STRUT_PARTIAL or requested position)
2011-02-21 14:27:32 +01:00
Michael Stapelberg
b6f81fe43c
Bugfix: restore the original width/height with X11 border when restarting (Thanks Merovius)
2011-02-21 03:13:27 +01:00
Michael Stapelberg
f34b045619
Fix dock client handling for inplace restarts
2011-02-21 03:01:55 +01:00
Michael Stapelberg
3dfe5c8a9a
bugfix: fix clicking on dock clients (Thanks mseed)
2011-02-21 01:58:57 +01:00
Michael Stapelberg
9719b21243
refactor some places to use output_get_content()
2011-02-21 01:55:36 +01:00
Michael Stapelberg
a92b9dca73
Bugfix: fix disabling RandR outputs
2011-02-21 01:43:39 +01:00
Michael Stapelberg
35e79c87c8
Place dock clients on the output corresponding to their geometry request
2011-02-21 01:28:29 +01:00
Michael Stapelberg
a33d869885
Bugfix: Correctly open workspaces on additional outputs
2011-02-21 01:12:22 +01:00
Michael Stapelberg
6b272fea55
Bugfix: in get_workspaces, only consider the CT_CON, not the CT_DOCKAREAs (Thanks fernandotcl)
2011-02-21 00:54:29 +01:00
Michael Stapelberg
272ab840c7
Fix fullscreen mode with dock clients
2011-02-21 00:40:35 +01:00
Michael Stapelberg
9a0bc77baf
bugfix: dock clients cannot be floating
2011-02-21 00:23:07 +01:00
Michael Stapelberg
7f89c71689
Implement dock mode, update testsuite
...
Currently, dock clients are only possible at the top.
2011-02-20 23:43:03 +01:00
Michael Stapelberg
c5ab16c00d
same fix, but for moving (search above the current con when moving is not possible in this direction)
2011-02-19 20:11:47 +01:00
Michael Stapelberg
86500c5b88
Skip containers which got only one child when looking for the next/previous one to focus
2011-02-19 19:50:09 +01:00
Michael Stapelberg
6a6746b967
revert the replacement of a single h/v-split with its child container
...
Makes more problems than it creates. Will use a different fix suggested by
Merovius.
2011-02-19 18:30:26 +01:00
Michael Stapelberg
53d9072ca7
implement TAILQ_SWAP (only for consecutive elements, order relevant) and use it
2011-02-15 02:21:23 +01:00
Michael Stapelberg
834f4d7bc2
add missing function documentation
2011-02-14 23:17:30 +01:00
Michael Stapelberg
26a416e016
refactor tree_move() into src/move.c, change config (!), change testcase
...
Due to lots of cases which were added and added to tree_move(), the function
was not really easy to understand. For this refactoring, I wrote tree_move()
from scratch, thinking about (hopefully) all cases. The testsuite still passes.
The move command also has different parameters now. Instead of the hard to
understand 'before v' stuff, we use 'move [left|right|up|down]'.
2011-02-14 23:05:20 +01:00
Michael Stapelberg
28dd226259
refactor code for removing children from a con
...
Let’s see how this callback stuff will work out. If it doesn’t work out well,
we will remove it.
2011-02-14 18:08:36 +01:00
Michael Stapelberg
a5e075c154
Automatically close empty parent cons when making their last child floating (Thanks mseed)
...
This fixes #313
2011-02-14 16:43:41 +01:00
Michael Stapelberg
b800555161
Bugfix: check ->layout, not ->type for L_STACKED
2011-02-14 16:35:48 +01:00
Michael Stapelberg
305eac0e71
Bugfix: Correctly check asprintf() return value
2011-02-14 16:33:42 +01:00
Fernando Tarlá Cardoso Lemos
9cf48f17bb
Fix libxcursor -> xcb cursors fallback.
2011-02-06 17:47:28 +01:00
Michael Stapelberg
07381ccb7b
fix a rendering problem for split cons inside tabbed cons (Thanks julien)
...
This fixes #280 .
2011-02-02 17:56:29 +01:00
Michael Stapelberg
4d0106b00f
bugfix: don’t crash when moving windows out of a floating con (Thanks mseed)
2011-02-01 17:53:15 +01:00
Michael Stapelberg
d855bea215
Bugfix: Correctly focus con when moving to another workspace (Thanks mseed)
...
This fixes #310 .
2011-02-01 17:17:50 +01:00
Michael Stapelberg
97ab44b3d8
disable workspace-level move operations (not yet implemented) (Thanks mseed)
2011-02-01 16:59:02 +01:00
Michael Stapelberg
9b01b1a7a6
Bugfix: When the container which was just closed is focused, we *do* need to focus another one (Thanks mseed)
2011-02-01 16:42:59 +01:00
Michael Stapelberg
dad7c0da00
Don’t create a split container if no other cons are on a workspace (Thanks mseed)
...
This fixes #306 .
2011-02-01 16:08:47 +01:00
Michael Stapelberg
0238ce3c73
fix some compiler warnings
2011-02-01 15:43:59 +01:00
Fernando Tarlá Cardoso Lemos
8f4b9ddaa4
Fix the choice of the right containers for resizing.
...
Also fixes #311 , which was an assertion failure that uncovered
this problem. Thanks mseed, Merovius.
2011-01-30 18:52:32 +01:00
Fernando Tarlá Cardoso Lemos
ac8fb2399d
Don't mess with sizes when moving to other ws.
2011-01-29 15:19:41 +01:00
Fernando Tarlá Cardoso Lemos
8be40932f2
Fix assertion when moving out of a floating container.
2011-01-28 01:25:06 +01:00
Fernando Tarlá Cardoso Lemos
f465b3c11d
Don't mess with the focus if we're not killing.
...
If we're not killing the mapped window and we're not killing the
parent window either in tree_close, then there's no reason to try
to change the focus. This fixes focus issues when moving a
container around another container (move up, left, bottom, right).
2011-01-28 01:25:03 +01:00
Michael Stapelberg
5b6ef3e665
make the sighandler handle SIGABRT
2011-01-28 00:47:49 +01:00
Michael Stapelberg
f395c141c8
bugfix: initialize root variable earlier
2011-01-28 00:42:55 +01:00
Michael Stapelberg
7b01bc5eb7
Bugfix: use the global root variable, don’t get the first one (Thanks quaec)
...
The case of an X11 server having multiple displays is handled correctly by the
code in src/mainx.c. However, due to some functions not being correctly
refactored and still getting the first screen (and also the first root window)
from the XCB connection, i3 was operating on the wrong root window.
2011-01-28 00:41:53 +01:00
Michael Stapelberg
79bbde8766
add a flag to disable the signalhandler
2011-01-28 00:31:26 +01:00
Fernando Tarlá Cardoso Lemos
b29af954f6
Don't mess with the percentages in tree_flatten.
2011-01-28 00:12:26 +01:00
Fernando Tarlá Cardoso Lemos
5f4123f842
Fix some resizing issues (thanks mseed).
2011-01-27 23:42:37 +01:00
Michael Stapelberg
676afce540
bugfix: correctly move cons out of floating cons when the workspace has no other tiling cons (Thanks mseed)
2011-01-27 16:51:41 +01:00
Michael Stapelberg
334e41daa4
bugfix: don’t assume a workspace always has tiling cons when focusing (Thanks mseed)
2011-01-27 16:51:16 +01:00
Michael Stapelberg
3e08ceaff9
bugfix: resizing problem when resizing vertically on the top border (Thanks julien)
2011-01-27 16:26:19 +01:00
Michael Stapelberg
3383437705
refactor some places to use con_descend_focused instead of duplicating code
2011-01-27 16:09:14 +01:00
Michael Stapelberg
f462a9a215
re-insert floating cons next to the currently focused con of the appropriate workspace
2011-01-27 16:04:17 +01:00
Michael Stapelberg
2f5d111936
when re-inserting a floating con, start with a more fair percent value
2011-01-27 15:53:14 +01:00
Michael Stapelberg
fe851b85f0
RandR: respect primary output
2011-01-27 15:40:02 +01:00
Fernando Tarlá Cardoso Lemos
432563d6e7
Fix the percentages when moving containers.
2011-01-27 13:00:14 +01:00
Fernando Tarlá Cardoso Lemos
07eb20851f
Fix floating mode according to the new requirements.
...
At all times any given non-leaf container should have the sum of
the percentages of its children == 1.0, otherwise we'll crash on
an assertion failure.
2011-01-27 13:00:14 +01:00
Fernando Tarlá Cardoso Lemos
568cafd4ec
Fix the resize algorithm I broke earlier.
...
The reason it was broken was that it was ok for the sum of the
percentages to be something other than 1.0. Now this is no longer
the case, the sum of the percentages must always be 1.0 or an
assertion will fail when we render the containers.
2011-01-27 13:00:14 +01:00
Fernando Tarlá Cardoso Lemos
bc82fc7e9f
This parameter is no longer needed.
...
The algorithm is now always the same, doesn't matter if we're
adding or removing a container to/from its parent.
2011-01-27 13:00:14 +01:00
Fernando Tarlá Cardoso Lemos
45227fba54
A new logic to calculate the percentages.
...
It's slower, but this way we make sure that the resulting
percentages *ALWAYS* sum up to 1.0 (or as close to that as we get
with double math).
2011-01-27 13:00:14 +01:00
Fernando Tarlá Cardoso Lemos
a93f4643ec
Only fix the percentages after we insert the container.
...
This is what floating.c does and it allows us to unify the logic that
calculates those percentages.
2011-01-27 13:00:14 +01:00
Fernando Tarlá Cardoso Lemos
89917976c7
Crash when we get the percentages wrong.
...
Better to crash with an assertion than to get into an infinite loop.
We cold work around this, but there's a bug here and it's not a
rounding bug, so it's better not to conceal it.
2011-01-27 13:00:14 +01:00
Fernando Tarlá Cardoso Lemos
485555ef72
Round up as well if needed (thanks Merovius).
2011-01-23 13:21:33 +01:00
Michael Stapelberg
d9bfd8843f
Bugfix: fix restoring the orientation (Thanks Merovius/fernandotcl)
2011-01-21 22:58:22 +01:00
Michael Stapelberg
ad95d5bb1f
bugfix: you can’t unfullscreen workspaces (Thanks Merovius)
2011-01-21 22:09:04 +01:00
Michael Stapelberg
cbf4fcb9b5
Bugfix: Fix focus problems when switching workspaces by pushing the window stack before mapping
2011-01-21 21:49:56 +01:00
Michael Stapelberg
81ff1f976d
Bugfix: Don’t send fake configure notify with not yet rendered rect for floating windows
...
This fixes a bug where opening the Xpdf find dialog when Xpdf is in fullscreen
mode would crash Xpdf due to a zero-width and zero-height ConfigureNotify rect.
2011-01-21 21:01:02 +01:00
Michael Stapelberg
1fecbb3e5a
Bugfix: also close empty split containers when the clients are moved away (Thanks mseed)
...
Also update the testcase (which used only 'kill' before).
2011-01-20 10:09:43 +01:00
Michael Stapelberg
3fe4146e24
Bugfix: fix crash in tree_flatten (Thanks mseed)
2011-01-19 09:31:31 +01:00
Michael Stapelberg
0eb5eb34cd
When in stacking mode with only one child, respect border styles 1pixel and none (Thanks Merovius)
2011-01-17 14:38:16 +01:00
Michael Stapelberg
ae4331113e
re-implement xkb support for detecting keyboard layout changes
2011-01-17 14:27:49 +01:00
Michael Stapelberg
d6d4c962f4
Bugfix: Call mark_unmapped() on floating nodes aswell (Thanks mseed)
...
This fixes #292 .
2011-01-17 14:11:56 +01:00
Axel Wagner
92a038dd25
Save environment-variable AFTER reading the configfile
2011-01-12 10:16:11 +01:00
Axel Wagner
4caf85aa0b
Use I3SOCK-environment-variable
2011-01-12 10:15:48 +01:00
Michael Stapelberg
cd2ee61ee8
fix some memory leaks when user passes command line arguments twice (Thanks Tiago)
2011-01-12 10:12:24 +01:00
Michael Stapelberg
a6f0dcd250
Fix switching to a workspace on a different output
2011-01-08 12:03:03 +01:00