Commit Graph

2331 Commits

Author SHA1 Message Date
434345aa30 Ignore notify events which are not in mode XCB_NOTIFY_MODE_NORMAL 2009-03-10 11:26:52 +01:00
441f406a4b Fix warning (typecast) 2009-03-10 09:51:00 +01:00
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
d38636439c Fix warning 2009-03-09 17:50:00 +01:00
b800408a97 Bugfix: Handle all events when dragging to resize, correctly set OVERRIDE_REDIRECT 2009-03-09 08:50:33 +01:00
3a34cfc603 Bugfix: Draw bar at the correct position, handle expose events for bars 2009-03-09 08:24:05 +01:00
00f08cba75 Bugfix: Correctly free containers, the bug was not freeing when not moving 2009-03-09 08:14:00 +01:00
71993c9b48 Implement wrapping left/right/up/down across screens 2009-03-09 07:39:19 +01:00
38d903aea5 Update comment 2009-03-09 07:18:04 +01:00
cc78664f9d Bugfix: Use memcmp() instead of strcmp(), use new_len * 2 to check all bytes 2009-03-09 07:02:47 +01:00
2cf3a9dd96 Bugfix: Correctly free containers when shrinking the table 2009-03-09 06:49:11 +01:00
65595c61a8 Bugfix: Don’t strcmp() if client->name == NULL 2009-03-09 06:41:04 +01:00
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
4f8e704017 s/atomar/atomic 2009-03-08 21:01:06 +01:00
cefc1dabac Bugfix: Use a new variable called new_position and initialize it correctly when resizing 2009-03-08 20:59:49 +01:00
71221baca0 Fix race condition when updating client->name 2009-03-08 20:04:01 +01:00
9e74378dd0 Bugfix: Use _NET_WM_NAME (UTF-8) rather than WM_NAME (COMPOUND_TEXT). Only render client titles, if they are set 2009-03-08 19:07:33 +01:00
4e12c9b39c Fix the warning on SUS-compatible systems (char**) and on NetBSD (const char**) 2009-03-08 17:47:45 +01:00
f85990b27a Fix warnings, update DEPENDS, update Makefile for NetBSD 2009-03-08 17:30:17 +01:00
6f630a3335 Implement UTF-8-clean window titles 2009-03-08 00:49:11 +01:00
35c04b448a Don’t start a terminal on startup 2009-03-07 05:50:19 +01:00
1f3ce94027 Bugfix: Correctly place new windows while other windows are in fullscreen mode 2009-03-07 05:49:13 +01:00
6abcc5f656 Fix some bugs found by using raster’s wm_torture 2009-03-07 02:44:46 +01:00
a411ed24cb Bugfix: Correctly check for empty containers and unmap the stack_win 2009-03-06 19:08:59 +01:00
017a0c0d08 Don’t set focus outside of the current container 2009-03-06 17:13:20 +01:00
97f23f549b Bugfix: decorate_window() needs a flush of course 2009-03-06 17:02:43 +01:00
bf92a0c617 Don’t switch focus when in fullscreen mode 2009-03-06 16:53:47 +01:00
4259e58655 Bugfix: One warning was left 2009-03-06 16:36:05 +01:00
ee1f64a94e Bugfix: return value was missing 2009-03-06 16:21:39 +01:00
fc3338d3c1 Bugfix: Missing flush after render_container() 2009-03-06 06:56:13 +01:00
96ac9f9066 Implement slog() and the LOG() macro, convert printf() to LOG() 2009-03-06 06:46:43 +01:00
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
3684abec1a Bugfix: Fix rendering (needed a flush) 2009-03-05 20:07:57 +01:00
d2d6c0de12 Enable switching to containers when the current container has only one client 2009-03-05 19:47:16 +01:00
c5dffde101 Bugfix: Correct boundary checking for increasing col/rowspan 2009-03-05 17:24:04 +01:00
906914fe61 Bugfix: Rendering of colspan/rowspan was wrong 2009-03-05 17:17:37 +01:00
76c201f940 Bugfix: Correctly set currently_focused when clients are destroyed 2009-03-05 17:08:57 +01:00
841ad55f4a Move HAS_CHANGED into a function 2009-03-05 16:23:26 +01:00
e643d34ddc Use unchecked versions for more speed 2009-03-05 03:33:15 +01:00
56393c823e Make colorpixels independent from clients 2009-03-05 02:58:12 +01:00
e4627bcaed Don’t re-initialize Xinerama on every configurenotify. This needs to be fixed properly. 2009-03-05 02:17:10 +01:00
1343b77dbb Bugfix: Some memory leaks / invalid accesses 2009-03-05 01:48:30 +01:00
17bca23a8c Implement a focus stack, correctly free table columns/rows 2009-03-05 01:20:13 +01:00
bde67a179e Implement wrapping, selecting containers is now Mod1+Ctrl+h/j/k/l 2009-03-04 23:45:44 +01:00
91f98cc597 Implement auto-destroying of empty workspaces 2009-03-04 22:52:36 +01:00
8b34eb5fc2 Bugfix: Reconfigure all clients in stacking, correctly ignore events, event when for the root window 2009-03-04 22:41:04 +01:00
0344ca3f36 Bugfix: Border presses weren’t correctly handled 2009-03-04 21:56:27 +01:00
03e48b8bfe Bugfix: Reconfigure x/y of stack_windows when necessary 2009-03-04 21:49:29 +01:00
8fe84697f3 Bugfix: Correctly destroy and remove stack_windows when the container is cleaned up 2009-03-04 21:30:02 +01:00
0ce298250b Bugfix: Correctly initialize new containers 2009-03-04 21:00:32 +01:00