Commit Graph

1028 Commits

Author SHA1 Message Date
Michael Stapelberg
f900fab453 cmdparse: don’t allow empty operations 2011-03-14 23:03:25 +01:00
Michael Stapelberg
627683c053 cmdparse: don’t allow empty commands 2011-03-14 23:03:13 +01:00
Michael Stapelberg
8928823e07 remove usless 'operation' token, already handled by 'operation optwhitespace' 2011-03-14 22:29:07 +01:00
Michael Stapelberg
18215445f8 remove unused current_bindings (left-over from cfgparse.y) 2011-03-14 22:28:55 +01:00
Michael Stapelberg
89ef41dadf re-implement support for MappingNotifys 2011-03-14 17:20:04 +01:00
Michael Stapelberg
01365edb30 ewmh: bump copyright 2011-03-14 17:15:18 +01:00
Michael Stapelberg
fb9978b975 ewmh: add comment to describe why we count 2011-03-14 17:15:04 +01:00
Fernando Tarlá Cardoso Lemos
c0563af3e2 Bring back some more EWMH support. 2011-03-14 17:11:33 +01:00
Fernando Tarlá Cardoso Lemos
b4e3dfd76b Add the "created" parameter to workspace_get.
If created is not NULL, *created is set to whether or not the
workspace has been just created.
2011-03-14 17:07:53 +01:00
Fernando Tarlá Cardoso Lemos
b8a716c370 Reload the same config file specified in the command line.
Fixes: #346
2011-03-14 16:48:45 +01:00
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