Commit Graph

233 Commits

Author SHA1 Message Date
Michael Stapelberg 3a994e4bf7 Implement clicking on the bar to switch workspaces 2009-03-15 17:49:25 +01:00
Michael Stapelberg 76effaf29a Bugfix: Fix rounding problems when positioning proportional windows 2009-03-15 17:35:16 +01:00
Michael Stapelberg c02dd93bcc Bugfix: Query WM_NORMAL_HINTS when managing a window to handle proportional hints which were set before mapping 2009-03-15 12:24:49 +01:00
Michael Stapelberg cb9c7078be Implement kill-command to kill the current window, document it 2009-03-14 22:09:36 +01:00
Michael Stapelberg cc0b060628 Implement exit command, document it in manpage, add it to defaultconfig (Mod1+Shift+e) 2009-03-14 21:31:22 +01:00
Michael Stapelberg 21e62ae9b7 Add docbook-xml as build dependency, revert last commit 2009-03-14 18:55:47 +01:00
Michael Stapelberg a6f00488d6 Add -L to not invoke xmllint which fails on some systems because it can’t download the DTD 2009-03-14 18:45:55 +01:00
Michael Stapelberg 80e2bf708d Send configure notify after putting a client into fullscreen mode, log at a central place 2009-03-14 17:37:11 +01:00
Michael Stapelberg 29112655dc Update „Building i3 on Ubuntu 9.04” howto 2009-03-14 17:12:11 +01:00
Michael Stapelberg df5ba408dc Add imprint to the website for compliance with german law. 2009-03-14 01:51:01 +01:00
Michael Stapelberg 26e05604f6 Add file PACKAGE-MAINTAINERS with hints for package maintainers 2009-03-14 01:30:37 +01:00
Michael Stapelberg 70644c6379 Update the overview of default bindings 2009-03-14 01:26:09 +01:00
Michael Stapelberg 95cd4334a9 Fix errors in i3.config, update manpage 2009-03-14 01:21:51 +01:00
Michael Stapelberg 2816f75140 Update website (menu, links to the documentation, manpage online) 2009-03-14 01:15:54 +01:00
Michael Stapelberg 4ad1edc5eb Remove unused variable (fixes warning) 2009-03-13 11:20:21 +01:00
Michael Stapelberg 1a377d2af0 Update build-dependencies for debian 2009-03-13 05:08:42 +01:00
Michael Stapelberg e3085b4f75 Fix fullscreen for xpdf (at least on debian, with proper _NET_WM_STATE hints)
xpdf sets the _NET_WM_STATE before actually mapping the window. i3 only checked
for changes of this hint, but not if it is already set when intially managing
the window.

Note that you need to patch your xpdf to support _NET_WM_STATE, because, while
only being reported at 2004, upstream still did not merge the patch *grrr*
See this debian bug report:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=247602
Or directly download the patch from:
http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=61;filename=31_fullscreen.dpatch;att=1;bug=247602
2009-03-13 04:51:17 +01:00
Michael Stapelberg 9c755dcb0d Fix compilation 2009-03-13 04:51:09 +01:00
Michael Stapelberg 14834c3530 Fake more configure notifies (makes xpdf work better) 2009-03-13 00:39:16 +01:00
Michael Stapelberg 89db5f7217 More example code 2009-03-12 17:56:03 +01:00
Michael Stapelberg 1b2e180718 Add some code to the presentation 2009-03-12 17:19:19 +01:00
Michael Stapelberg 755709c86d Bugfix: Completely ignore legacy hints as soon as the client uses _NET_WM_NAME 2009-03-12 16:44:44 +01:00
Michael Stapelberg 0ef49807ba Add slides for presentation at NoName e.V. 2009-03-12 04:37:05 +01:00
Michael Stapelberg 349aff59d1 Add website for i3lock 2009-03-12 00:25:28 +01:00
Michael Stapelberg 6bcb53e5ea Update debian/ to build a meta-package for i3 2009-03-11 22:49:41 +01:00
Michael Stapelberg e1252b51da Move i3lock in its own repository 2009-03-11 22:21:50 +01:00
Michael Stapelberg cc2c63b860 Handle legacy window titles by rendering them not unicode-compatible. 2009-03-11 21:31:54 +01:00
Michael Stapelberg 17bcdd8b0f Implement cleaning up the list of ignored events 2009-03-11 20:06:30 +01:00
Michael Stapelberg 12970211c4 Fix misnomer (window_type_handler → handle_window_type), resolve TODO 2009-03-11 19:39:32 +01:00
Michael Stapelberg d8ac364749 Update config to use i3menu on Mod1+p, update Makefile to compile/install i3lock and i3menu 2009-03-11 19:09:17 +01:00
Michael Stapelberg 969d6f202e Move i3lock to src/i3lock, import dmenu-3.9 as i3menu 2009-03-11 19:03:24 +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 9c0d5b6e5e Bugfix: Redecorate the last focused window of the container we are switching into 2009-03-11 00:56:39 +01:00
Michael Stapelberg ec290cbfa9 Bugfix: Don’t handle mouse click events inside the titlebar 2009-03-11 00:45:49 +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 434345aa30 Ignore notify events which are not in mode XCB_NOTIFY_MODE_NORMAL 2009-03-10 11:26:52 +01:00
Michael Stapelberg 441f406a4b Fix warning (typecast) 2009-03-10 09:51:00 +01:00
Michael Stapelberg ae5814550c Remove that stupid XBell() which gets triggered falsely when resuming suspend to RAM 2009-03-10 09:46:17 +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 3f482bd3b3 Make i3lock fork(), use white color and disable DPMS
The idea of fork()ing is to allow for aliases which first lock the screen,
then suspend.

White color and no DPMS is better than black color because you can tell the
difference between your notebook failed to suspend and it being locked.
2009-03-09 18:20:15 +01:00
Michael Stapelberg 2a1e9a6ea4 Import slock-0.9 as i3lock 2009-03-09 18:15:38 +01:00
Michael Stapelberg d38636439c Fix warning 2009-03-09 17:50:00 +01:00
Michael Stapelberg b800408a97 Bugfix: Handle all events when dragging to resize, correctly set OVERRIDE_REDIRECT 2009-03-09 08:50:33 +01:00
Michael Stapelberg 3a34cfc603 Bugfix: Draw bar at the correct position, handle expose events for bars 2009-03-09 08:24:05 +01:00
Michael Stapelberg 00f08cba75 Bugfix: Correctly free containers, the bug was not freeing when not moving 2009-03-09 08:14:00 +01:00
Michael Stapelberg 71993c9b48 Implement wrapping left/right/up/down across screens 2009-03-09 07:39:19 +01:00
Michael Stapelberg 38d903aea5 Update comment 2009-03-09 07:18:04 +01:00
Michael Stapelberg cc78664f9d Bugfix: Use memcmp() instead of strcmp(), use new_len * 2 to check all bytes 2009-03-09 07:02:47 +01:00