Michael Stapelberg
a8478efa34
Bugfix: Correctly filter out the numlock state bit (doesn’t get cleared for some reason)
...
This fixes ticket #14
2009-03-27 15:24:52 +01:00
Michael Stapelberg
9077831ed3
Bugfix: When entering a stack window with the mouse, set the focus to the active client
...
Fixes ticket #17
2009-03-26 23:00:26 +01:00
Michael Stapelberg
e0f7e253ff
Bugfix: Fix memory leak
2009-03-20 17:31:34 +01:00
Michael Stapelberg
21f7b7a724
Disable horizontal resizing for the release version, it still has bugs
2009-03-15 21:31:35 +01:00
Michael Stapelberg
74465a562a
Bugfix: Only actively change focus if this is the current container
2009-03-15 20:52:43 +01:00
Michael Stapelberg
3a994e4bf7
Implement clicking on the bar to switch workspaces
2009-03-15 17:49:25 +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
4ad1edc5eb
Remove unused variable (fixes warning)
2009-03-13 11:20:21 +01:00
Michael Stapelberg
14834c3530
Fake more configure notifies (makes xpdf work better)
2009-03-13 00:39:16 +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
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
ec290cbfa9
Bugfix: Don’t handle mouse click events inside the titlebar
2009-03-11 00:45:49 +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
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
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
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
Michael Stapelberg
65595c61a8
Bugfix: Don’t strcmp() if client->name == NULL
2009-03-09 06:41:04 +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
4f8e704017
s/atomar/atomic
2009-03-08 21:01:06 +01:00
Michael Stapelberg
cefc1dabac
Bugfix: Use a new variable called new_position and initialize it correctly when resizing
2009-03-08 20:59:49 +01:00
Michael Stapelberg
71221baca0
Fix race condition when updating client->name
2009-03-08 20:04:01 +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
6abcc5f656
Fix some bugs found by using raster’s wm_torture
2009-03-07 02:44:46 +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
017a0c0d08
Don’t set focus outside of the current container
2009-03-06 17:13:20 +01:00
Michael Stapelberg
97f23f549b
Bugfix: decorate_window() needs a flush of course
2009-03-06 17:02:43 +01:00
Michael Stapelberg
4259e58655
Bugfix: One warning was left
2009-03-06 16:36:05 +01:00
Michael Stapelberg
ee1f64a94e
Bugfix: return value was missing
2009-03-06 16:21:39 +01:00
Michael Stapelberg
fc3338d3c1
Bugfix: Missing flush after render_container()
2009-03-06 06:56:13 +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
76c201f940
Bugfix: Correctly set currently_focused when clients are destroyed
2009-03-05 17:08:57 +01:00
Michael Stapelberg
e643d34ddc
Use unchecked versions for more speed
2009-03-05 03:33:15 +01:00
Michael Stapelberg
56393c823e
Make colorpixels independent from clients
2009-03-05 02:58:12 +01:00
Michael Stapelberg
e4627bcaed
Don’t re-initialize Xinerama on every configurenotify. This needs to be fixed properly.
2009-03-05 02:17:10 +01:00
Michael Stapelberg
1343b77dbb
Bugfix: Some memory leaks / invalid accesses
2009-03-05 01:48:30 +01:00
Michael Stapelberg
17bca23a8c
Implement a focus stack, correctly free table columns/rows
2009-03-05 01:20:13 +01:00
Michael Stapelberg
8b34eb5fc2
Bugfix: Reconfigure all clients in stacking, correctly ignore events, event when for the root window
2009-03-04 22:41:04 +01:00
Michael Stapelberg
0344ca3f36
Bugfix: Border presses weren’t correctly handled
2009-03-04 21:56:27 +01:00
Michael Stapelberg
03e48b8bfe
Bugfix: Reconfigure x/y of stack_windows when necessary
2009-03-04 21:49:29 +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