Michael Stapelberg
ce501c9de9
Some fixes/reformatting for bapt’s patch
2009-07-23 20:36:48 +02:00
bapt
40750e227d
Implements a reload command
2009-07-23 18:46:21 +02:00
Michael Stapelberg
9db8535b4c
Some little fixes (mostly formatting) for bapt’s patch
2009-07-22 00:16:16 +02:00
Bapt
3e262913e8
Implements next-previous workspace
2009-07-21 23:50:08 +02:00
Michael Stapelberg
ffcc8bbc3a
Implement putting clients into floating mode at a specific workspace
...
This changes syntax of the assign command a bit. Old configurations
will continue to work. See the userguide.
2009-07-21 16:43:20 +02:00
Michael Stapelberg
008a2665c1
Bugfix: Strip trailing whitespace when parsing assignments (Thanks bapt)
2009-07-21 16:05:43 +02:00
Michael Stapelberg
b893ec9987
Bugfix: Repeatedly try to find screens if none are available (Thanks mxf)
...
When rotating your screens (xrandr --output LVDS1 --rotate right), sometimes
the X server returned no screens which lead to an exit(1) of i3. Now, i3
tries to find screens for up to 5 seconds and only quits afterwards.
2009-07-21 15:59:11 +02:00
Michael Stapelberg
87494107b3
Bugfix: Correctly redecorate clients when changing focus (Thanks msi)
...
When moving your cursor from one tiling window to another tiling
window via a floating client, the old tiling window was not re-
decorated correctly
2009-07-21 15:49:08 +02:00
Michael Stapelberg
5b51c8c6f0
optimization: Render on pixmaps and copy the result on Stack_Wins
...
This should speed up the rendering of Stack_Wins with many window
decorations and it should considerably reduce flicker.
2009-07-17 18:32:40 +02:00
Michael Stapelberg
0434b6ea3d
Bugfix: That last push was one step too fast. Forgot to check parameter.
2009-06-29 22:23:24 +02:00
Michael Stapelberg
91aeed0442
Resolve documentation FIXMEs, remove an unnecessary struct
2009-06-29 22:20:35 +02:00
Michael Stapelberg
0305c1dc0e
Bugfix: Use ->workspace instead of ->container
2009-06-28 01:58:00 +02:00
Michael Stapelberg
acf1eb0c92
Don’t allow floating clients to reconfigure themselves when in fullscreen (Thanks Volker)
2009-06-28 01:52:06 +02:00
Michael Stapelberg
eae0b18dbd
Use better error messages for s* (Thanks Curtis)
2009-06-27 10:54:34 +02:00
Michael Stapelberg
28c4b045d6
Merge branch 'next' (3.β is stable now)
2009-06-26 13:27:06 +02:00
Michael Stapelberg
aaccc0e62c
Bugfix: Correctly check coordinates for resizing floating windows (Thanks Mirko)
2009-06-26 12:14:20 +02:00
Michael Stapelberg
dd053c254b
Bugfix: When a window is fullscreen, put new windows after that one in focus stack (Thanks Volker)
2009-06-26 04:39:59 +02:00
Michael Stapelberg
ab48d714cf
Bugfix: Don’t lose focus when putting windows into floating
2009-06-26 04:34:36 +02:00
Michael Stapelberg
8f87c212be
Bugfix: When moving, first check boundaries, then check for col-/rowspan (Thanks Mirko)
2009-06-26 04:21:30 +02:00
Michael Stapelberg
27a418f454
Bugfix: Correctly remove fullscreen floating clients when unmapping (Thanks Volker)
2009-06-26 04:15:21 +02:00
Michael Stapelberg
8659419ef6
Bugfix: Correctly handle moving fullscreen client onto another screen (Thanks dirkson)
2009-06-25 13:46:47 +02:00
Michael Stapelberg
aa2f20ce26
Bugfix: Correctly handle floating windows when unmapping, fix focus bug when moving
2009-06-25 13:31:58 +02:00
Michael Stapelberg
b16ab02cc7
Bugfix: Correctly initialize screens when Xinerama is disabled (Thanks Moredread)
2009-06-24 23:50:04 +02:00
Michael Stapelberg
777eedf0f4
Bugfix: Fix selecting col-/rowspanned containers
2009-06-24 21:10:12 +02:00
Michael Stapelberg
62c8d58d82
Implement the configuration option floating_modifier and document it
2009-06-24 20:31:00 +02:00
Michael Stapelberg
675d28dd54
Bugfix: Check screen for NULL, free client memory correctly (Thanks dirkson)
2009-06-24 19:22:09 +02:00
Michael Stapelberg
61b1279f67
Bugfix: Don’t invalidate container pointer and access it when unmapping
2009-06-24 19:05:33 +02:00
Michael Stapelberg
7773a3e5dd
Ensure a minimum size of 25px when resizing windows
2009-06-24 18:31:43 +02:00
Michael Stapelberg
607b1d071e
Use drag_pointer from floating.c for the resize handler
2009-06-24 17:40:34 +02:00
Michael Stapelberg
ee217523f1
Bugfix: resizing: boundary checking (Thanks Mirko)
2009-06-24 17:24:09 +02:00
Michael Stapelberg
07bebdf841
Correctly re-assign floating clients to the destination workspace when moving
2009-06-24 17:12:12 +02:00
Michael Stapelberg
7ed967c96f
Ensure that the focus is set correctly when moving floating clients
2009-06-24 00:35:05 +02:00
Michael Stapelberg
125faef1f4
Correctly move floating clients to other workspaces on visible screens
2009-06-24 00:34:03 +02:00
Michael Stapelberg
0aed552bae
Bugfix: Remove/add floating clients to workspace->floating_clients when moving to other workspaces
2009-06-23 23:17:06 +02:00
Michael Stapelberg
81e9d8282a
Bugfix: load current_col/current_row from workspace when setting focus (Thanks Mirko)
...
In the case of floating clients which have no container, the values
were still the ones from your old workspace, which was a problem if
your dimensions didn’t match…
2009-06-23 23:10:04 +02:00
Michael Stapelberg
4f31709b1d
floating: enforce minimum size of 50x20 when resizing (Thanks Mirko)
2009-06-23 22:42:54 +02:00
Michael Stapelberg
cba36914a8
Implement selecting the next tiling/floating window (using "focus")
...
Also update documentation (manpage, userguide).
To make the code easier to read/write when checking if a client is
floating, introduce client_is_floating().
2009-06-21 16:14:15 +02:00
Michael Stapelberg
a5489d6546
Use a nested event loop which polls and saves motion notify events for later
...
This should speed up resizing/dragging quite a bit, thus fixing ticket #51
2009-06-21 13:44:44 +02:00
Michael Stapelberg
8140619d5b
Implement reconfiguration of floating clients
2009-06-21 13:29:48 +02:00
Michael Stapelberg
0e8b3c3401
Bugfix: floating: open windows with correct width/height
2009-06-21 13:18:54 +02:00
Michael Stapelberg
2751eedae5
Bugfix: Floating: open windows at their requested position
2009-06-21 13:12:42 +02:00
Michael Stapelberg
6ca9210335
Bugfix: Properly integrate libxcb’s event loop into libev.
...
Fixes a race condition with GIMP (where it configured its window,
sent the map request and waited for the window to get mapped, but
i3 didn’t get the event until another one was sent (key binding for
example)).
The new solution is much better as it properly hands off all
the work to xcb_poll_for_event.
Inspired by awesome, which uses the same mechanism. Thanks.
2009-06-21 13:05:54 +02:00
Michael Stapelberg
ce97e23913
Remove getting colorpixels from the X server, saves code and round-trips. Requires truecolor displays.
...
If anyone has a serious (!) use for non-truecolor displays and
problems with i3’s colors after this commit, please send a mail.
2009-06-20 18:05:24 +02:00
Michael Stapelberg
83d3146b65
Bugfix: Correctly raise the currently focused client when going into stack mode
2009-06-20 00:31:57 +02:00
Michael Stapelberg
8e19f8dabf
floating: Don’t let clients become hidden under stack windows or fulscreen clients (Thanks Mirko)
2009-06-19 23:18:43 +02:00
Michael Stapelberg
5c0496a3ef
Bugfix: Make sure floating clients are alwalys above tiling clients (Thanks Mirko)
2009-06-19 22:57:19 +02:00
Michael Stapelberg
589a73c8ea
Bugfix: Correctly check for floating mode in the buttonpress handler (Thanks Mirko)
2009-06-19 22:48:18 +02:00
Michael Stapelberg
ba070fcc6c
Bugfix: Obey colspan/rowspan when checking if containers can be snapped to the right/bottom (Thanks Mirko)
...
This fixes ticket #54 .
2009-06-19 22:40:25 +02:00
Michael Stapelberg
93ff4159c1
Bugfix: Obey colspan/rowspan when checking if containers can be snapped to the right/bottom (Thanks Mirko)
...
This fixes ticket #54 .
2009-06-19 22:39:03 +02:00
Michael Stapelberg
325d1b301f
Implement the special workspace ~ for assignments, which will set clients floating automatically
2009-06-19 20:20:00 +02:00
Michael Stapelberg
bcd479ca92
floating: nested functions make the callbacks a lot more easier & beautiful
2009-06-19 19:43:01 +02:00
Michael Stapelberg
89c0caaec4
Implement a command for hiding all floating windows (and showing them again)
2009-06-19 13:59:29 +02:00
Michael Stapelberg
5c48444b4e
Implement the possibility to set a workspace open clients automatically in floating mode
...
Use "wwt" (with workspace: toggle floating) in your configuration file
2009-06-19 13:20:10 +02:00
Michael Stapelberg
4135aaad7c
Implement moving of floating clients
2009-06-19 12:57:21 +02:00
Michael Stapelberg
51402b05f5
Bugfix: Correctly initialize automatically floating clients (some rendering issues)
2009-06-19 12:34:31 +02:00
Michael Stapelberg
a6d7f5451d
Also set DIALOG, UTILITY and SPLASH windows floating automatically
2009-06-19 12:05:55 +02:00
Michael Stapelberg
a2a8cd85d6
Bugfix: Don’t crash when programs set NULL hints (xev(1) for example)
...
This only happened if you had some assignment configured
2009-06-19 11:05:00 +02:00
Michael Stapelberg
1c02ddb4a7
Bugfix: Fix assignment of clients to other workspaces (Thanks badboy)
...
The problem was that the old_focused pointer was pointing to an element
of a different list. Using CIRCLEQ_APPEND_AFTER is not a good idea on
with such an element…
2009-06-18 01:25:46 +02:00
Michael Stapelberg
00c6bdeb0b
Implement changing focus via keyboard between floating clients, fix several floating bugs
2009-06-14 01:04:59 +02:00
Michael Stapelberg
e6d9c7bb9e
Bugfix: Don’t use the minimum amount of pixels for dock clients which don’t set size hints
2009-06-13 12:30:28 +02:00
Michael Stapelberg
56af58eb0b
Bugfix: Put floating clients into the focus stack (Thanks Mirko)
2009-06-13 12:20:39 +02:00
Michael Stapelberg
02fa3c2cb8
Bugfix: Correctly initialize the new atom, don’t float dock windows
2009-06-13 12:18:16 +02:00
Michael Stapelberg
13002dc04e
Bugfix: Actually reconfigure unmapped windows when they request it
...
Before, we only sent a fake message. While this was sufficient for the
client side most of the time, it didn’t allow us to open floating
windows with the correct size.
2009-06-12 23:47:04 +02:00
Michael Stapelberg
052190ad05
Handle transient hint and window class dialog to mark clients as floating
2009-06-12 22:59:23 +02:00
Michael Stapelberg
cb12e205d9
Bugfix: When toggling floating, the copied size is the client’s size, not the total size
2009-06-12 22:55:56 +02:00
Michael Stapelberg
6e5406167c
Bugfix: Use the correct size for the modifiers (Thanks Moredread!)
2009-06-11 03:30:56 +02:00
Michael Stapelberg
70be57352c
Fix memleak in config parsing (variables weren’t freed)
2009-06-11 03:30:42 +02:00
Michael Stapelberg
55f0aa8f28
Add a proper error message if connection to the X server can’t be established
2009-06-11 03:30:26 +02:00
Michael Stapelberg
d70ea03356
Remove some dead code, add default paths to switch() to make static analyzers happy
...
Check was done with scan-build from the LLVM suite. The remaining reports are false
positives and have been reported to llvm:
http://llvm.org/bugs/show_bug.cgi?id=4358
http://llvm.org/bugs/show_bug.cgi?id=4359
2009-06-10 19:59:36 +02:00
Michael Stapelberg
2f334c3f59
Bugfix: Don’t set focus when unmapping clients if the workspace is not active (Thanks Mirko)
...
This fixes ticket #53 because current workspace was set to the
workspace which was deleted.
2009-06-07 19:09:39 +02:00
Michael Stapelberg
fb63c2ed58
Implement moving floating clients using Mod1+Left mouse button
2009-06-03 13:54:13 +02:00
Michael Stapelberg
036728c4d7
Use the size when mapping the window as size for floating (correct size for tool windows)
2009-06-02 14:24:37 +02:00
Michael Stapelberg
3f925a56d3
Fix warning about dereferencing type-punned pointers
2009-06-01 21:12:13 +02:00
Michael Stapelberg
553db28664
Switch to libev for the event loop to build a base for IPC stuff. Please test!
2009-06-01 20:59:40 +02:00
Michael Stapelberg
e689be983b
Implement variables in configfile.
...
This implements ticket #42 .
Syntax is "set $key value". All further instances of $key will be
replaced with value before parsing each line of the configfile.
2009-06-01 16:19:06 +02:00
Michael Stapelberg
170ba60191
Bugfix: Rendering of the bottom border line was still off by one
2009-06-01 15:35:59 +02:00
Michael Stapelberg
2a67630aa6
Optimization: Get the colorpixels when loading configuration, make use of the new config struct
...
Instead of building arrays of colorpixels we can simply use a pointer
to a struct Colortriple. Furthermore, by getting the colorpixels when
loading the configuration, we save a lot of function calls in the
main code.
2009-06-01 15:14:45 +02:00
Michael Stapelberg
c73bb1feaa
Draw the border lines in the window decoration correctly
2009-05-31 18:37:47 +02:00
Michael Stapelberg
517c47ca95
Don’t check twice for client.focused, change all places were colorcodes are used
2009-05-31 17:18:49 +02:00
Michael Stapelberg
0cb5d7448d
Implement clients going automatically into floating
2009-05-31 00:31:18 +02:00
Michael Stapelberg
706c44509e
retab! src/config.c
2009-05-30 22:24:05 +02:00
Michael Stapelberg
cbc3880007
Use a more efficient struct for storing colors, validate/parse them more easily
2009-05-30 22:20:32 +02:00
Atsutane
65bcf170ed
Introduced color setting.
2009-05-30 17:59:04 +02:00
Michael Stapelberg
2d5b1f0a37
Bugfix: Send fake configure notify events when moving clients (Thanks Volker)
...
This fixes ticket #47
2009-05-30 11:49:50 +02:00
Michael Stapelberg
fccbdea925
Bugfix: Correctly set focus when switching to a workspace with floating clients
...
This fixes ticket #45
2009-05-30 11:41:49 +02:00
Michael Stapelberg
b1eb93326f
Bugfix: Correctly cleanup stack_windows when setting clients to floating
...
This fixes ticket #44
2009-05-30 11:35:32 +02:00
Michael Stapelberg
ac6561019b
Don’t kill workspaces on which you currently are when changing screen configuration
2009-05-27 18:46:58 +02:00
Michael Stapelberg
d4fb34abdd
Bugfix: Don’t ignore enter_notify events for clients on different screens (Thanks Mirko)
...
This fixes ticket #41 .
2009-05-27 18:19:14 +02:00
Michael Stapelberg
2ed621aec9
Bugfix: Forgot to update client’s workspace pointer (Thanks Mirko)
2009-05-27 12:28:51 +02:00
Michael Stapelberg
94ee39d1ce
Bugfix: Forgot to update client’s workspace pointer (Thanks Mirko)
2009-05-27 12:27:29 +02:00
Michael Stapelberg
bcd68d9ca1
Bugfix: Fix crash when focusing/moving on an empty workspace (Thanks Mirko)
2009-05-27 12:15:23 +02:00
Michael Stapelberg
b0cf3ec026
Document binding on Mode_switch in userguide, be more verbose in config
2009-05-26 17:37:56 +02:00
Michael Stapelberg
9c3b37f2d1
Bugfix: Cleanup the table after putting clients into floating mode
2009-05-26 17:16:51 +02:00
Michael Stapelberg
94cead993c
Don’t process autostart when restarting (new parameter -a)
2009-05-26 17:09:34 +02:00
Michael Stapelberg
b58e2fa8ed
Move toggle_fullscreen to client.c
2009-05-26 16:49:57 +02:00
Michael Stapelberg
ac5c2fcf19
Bugfix: Fix fullscreen for floating clients, fix window name updates for floating clients
2009-05-26 16:46:50 +02:00
Michael Stapelberg
5b8e2ecb18
Implement floating (please test and find bugs)
...
Details which are missing: A command to hide/show all floating clients,
moving/resizing clients with your mouse holding Mod1 (click anywhere
in the client, not just on its borders), resize/move by keyboard, select
next/previous client by keyboard
2009-05-23 16:34:03 +02:00
Michael Stapelberg
7fde55578d
Bugfix: Correctly handle mode_switch state bit, more debugging output for states
...
We abuse (1 << 8) as mode_switch bit, which is in the range of the
filtered state bits (see previous commit). Therefore, we need to
filter first and then check for mode_switch.
Furthermore, we used 0x2 before, which was just wrong. So, use our
bitmask, not the normal one (0x2).
2009-05-19 15:24:17 +02:00
Michael Stapelberg
d98c514f82
Bugfix: Correctly handle mode_switch state bit, more debugging output for states
...
We abuse (1 << 8) as mode_switch bit, which is in the range of the
filtered state bits (see previous commit). Therefore, we need to
filter first and then check for mode_switch.
Furthermore, we used 0x2 before, which was just wrong. So, use our
bitmask, not the normal one (0x2).
2009-05-19 15:22:50 +02:00
Michael Stapelberg
5038b3c592
Bugfix: keypress: Only use the lower 8 bits of the mask so that mouse buttons are filtered out (Thanks Mirko)
...
Sometimes, when the mouse button gets stuck, state contains the bit for
BUTTON_MASK_1 (or other buttons). We filter them out to continue processing
keys correctly.
2009-05-19 13:52:23 +02:00