Michael Stapelberg
12970211c4
Fix misnomer (window_type_handler → handle_window_type), resolve TODO
2009-03-11 19:39:32 +01:00
Michael Stapelberg
c0aa9cac61
Implement moving containers, implement moving windows to the top if top-most, change config to use Mod3
2009-03-11 18:56:31 +01:00
Michael Stapelberg
49b56166dc
Implement moving clients to the left if they are leftmost
2009-03-11 01:55:10 +01:00
Michael Stapelberg
38c8541807
Bugfix: Change the event mask to ignore enter notifies when rendering the layout and changing workspaces
2009-03-11 00:20:56 +01:00
Michael Stapelberg
408b2bdb39
Bugfix: Eliminate race condition, fix dock windows
...
There was a race condition when mapping a window and not setting the event mask
before. Therefore, the ReparentNotify and (more important) the UnmapNotify generated
by reparenting were not received, thus leaving the awaiting_useless_unmap variable
of the client "true". To just make it work, in previous commits the DestroyNotify
handler was introduced. Fortunately, with fixing this race condition by first
setting the event mask and mapping the window afterwards, we can remove this handler.
As for the dock windows, there were quite some occurences were client->container
was used without checking if the client is inside a container at all.
Furthermore, the client’s strut containing the space to reserve at the screen edge
is now checked and the desired height is set to the window’s height if the strut
contains 0 or if no strut was specified at all.
2009-03-10 20:56:25 +01:00
Michael Stapelberg
c025678177
Major change: Redirect events instead of handle the notifies.
...
By specifying XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, the window manager
will get map request events instead of map notify events, and therefore
can act sooner (the window won’t be positioned on the screen and moved
afterwards).
Furthermore, this fixes some problems with GIMP/VLC (and probably others)
which caused endless loops.
Also, events which should be ignored are now saved in a queue rather than
saving just the last event. This should eliminate race conditions.
Note that there is a new FIXME in src/handlers.c. Some windows generate
unmap notify events when reparenting while others don’t. We need to
understand, document and implement a more correct way to handle this.
2009-03-10 00:51:15 +01:00
Michael Stapelberg
71993c9b48
Implement wrapping left/right/up/down across screens
2009-03-09 07:39:19 +01:00
Michael Stapelberg
6df039c3b5
Convert window title to UCS-2 when updating it, don’t update it if it didn’t change
2009-03-09 06:26:32 +01:00
Michael Stapelberg
4e12c9b39c
Fix the warning on SUS-compatible systems (char**) and on NetBSD (const char**)
2009-03-08 17:47:45 +01:00
Michael Stapelberg
f85990b27a
Fix warnings, update DEPENDS, update Makefile for NetBSD
2009-03-08 17:30:17 +01:00
Michael Stapelberg
6f630a3335
Implement UTF-8-clean window titles
2009-03-08 00:49:11 +01:00
Michael Stapelberg
a411ed24cb
Bugfix: Correctly check for empty containers and unmap the stack_win
2009-03-06 19:08:59 +01:00
Michael Stapelberg
891ec20755
Use __FUNCTION__ in LOG()
2009-03-06 16:48:30 +01:00
Michael Stapelberg
96ac9f9066
Implement slog() and the LOG() macro, convert printf() to LOG()
2009-03-06 06:46:43 +01:00
Michael Stapelberg
0831f3e129
Implement handling the size hints so that aspect ratio is used correctly, fix rendering on stacks
2009-03-06 06:06:19 +01:00
Michael Stapelberg
906914fe61
Bugfix: Rendering of colspan/rowspan was wrong
2009-03-05 17:17:37 +01:00
Michael Stapelberg
56393c823e
Make colorpixels independent from clients
2009-03-05 02:58:12 +01:00
Michael Stapelberg
17bca23a8c
Implement a focus stack, correctly free table columns/rows
2009-03-05 01:20:13 +01:00
Michael Stapelberg
03e48b8bfe
Bugfix: Reconfigure x/y of stack_windows when necessary
2009-03-04 21:49:29 +01:00
Michael Stapelberg
bd9b90d285
Fix datatype for cursor
2009-03-04 18:09:04 +01:00
Michael Stapelberg
a02b861826
Use "conn" for xcb_connection and "event" for xcb_event_* variables everywhere
2009-03-04 15:45:12 +01:00
Michael Stapelberg
45827607dc
Use default cursor (XC_left_ptr) for all windows
2009-03-04 15:28:50 +01:00
Michael Stapelberg
f45e706c48
Merge font.c into xcb.c
2009-03-04 14:52:04 +01:00
Michael Stapelberg
05747c4a1c
Implement an internal bar which displays the workspaces
2009-03-04 12:09:43 +01:00
Michael Stapelberg
415b5cc0e8
Load configuration file from ~/.i3/config or /etc/i3/config
2009-03-04 09:16:18 +01:00
Michael Stapelberg
3911d18982
Implement moving windows to other workspaces
2009-03-04 08:59:03 +01:00
Michael Stapelberg
3b50615a71
Implement Xinerama screen changes
2009-03-03 23:51:02 +01:00
Michael Stapelberg
16a514b9c1
Use a different color for focused windows in not focused containers, includes bugfixes for re-decoration
2009-03-03 02:28:26 +01:00
Michael Stapelberg
dd325879d1
Bugfix: Override client’s moves/resizes in configure_notify_event
2009-03-03 01:14:11 +01:00
Michael Stapelberg
3f662eaed5
Bugfix: Forgot to change the number of atoms correctly
2009-03-02 03:35:25 +01:00
Michael Stapelberg
ac6567c0a6
Documentation update: Make some comments more understandable, more docs
2009-03-01 22:00:54 +01:00
Michael Stapelberg
cb6ea9861d
Bugfix: Fix various bugs when switching workspaces
2009-02-28 22:11:48 +01:00
Michael Stapelberg
d8a6f41e39
Bugfix: Set focus when table was shrinked and CUR_CELL might have been shrinked
2009-02-28 01:12:05 +01:00
Michael Stapelberg
10c5702a78
Implement restart-command to restart i3 without having to end your session
2009-02-27 22:40:48 +01:00
Michael Stapelberg
e77ebb6c71
Implement configuration file parsing
2009-02-25 00:50:30 +01:00
Michael Stapelberg
dadace2fa3
Implement automatic cleaning of the table
2009-02-24 20:29:30 +01:00
Michael Stapelberg
aa18ca0889
More documentation, cleanups, and a cache for get_colorpixel()
2009-02-24 14:18:08 +01:00
Michael Stapelberg
36aec13860
Cleanups, documentation
2009-02-24 01:24:28 +01:00
Michael Stapelberg
0e3a378c39
Implement stacking
2009-02-24 00:30:04 +01:00
Michael Stapelberg
fe0485f9e5
Fix some movement/rendering bugs
2009-02-23 01:41:26 +01:00
Michael Stapelberg
1a0817eb39
Correctly handle _NET_WM_WINDOW_TYPE == _NET_WM_WINDOW_TYPE_DOCK (for dzen2 -dock)
2009-02-23 00:18:13 +01:00
Michael Stapelberg
6b1069cd47
Implement horizontal resizing
2009-02-16 03:28:07 +01:00
Michael Stapelberg
7216738778
Implement exit_if_null using variadic macros, fix compilation
2009-02-15 22:52:33 +01:00
Michael Stapelberg
742cef2881
Finalize font.c
2009-02-15 02:52:52 +01:00
Michael Stapelberg
0917cdda36
Cleanup load_font(), make it caching
2009-02-15 02:40:03 +01:00
Michael Stapelberg
09cd7bd2d0
Implement Xinerama (workspaces have a specific screen)
2009-02-15 01:58:09 +01:00
Michael Stapelberg
18543c6bce
Implement fullscreen mode (Mod1+f)
2009-02-14 20:12:50 +01:00
Michael Stapelberg
d06fe8bc9e
Bugfix: Correctly handle unmap, don’t apply attribute XCB_EVENT_MASK_BUTTON_PRESS
...
Those two fix problems seen with mplayer
2009-02-14 19:55:18 +01:00
Michael Stapelberg
df7621d5a5
Implement fullscreen (_NET_WM_STATE_FULLSCREEN)
2009-02-14 08:38:07 +01:00
Michael Stapelberg
fb4c851e2a
Add vim hints, copyright notice to each file, add LICENSE, retab! everything
2009-02-14 02:33:31 +01:00
Michael Stapelberg
8881068dc3
Various code improvements
2009-02-14 02:19:04 +01:00
Michael Stapelberg
4589c26558
Environment filtering is not needed. Instead, open applications through SHELL, double-fork
2009-02-14 01:36:12 +01:00
Michael Stapelberg
82dd64ff24
Move stuff to include/ and src/
2009-02-13 19:09:25 +01:00