1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
|
2009-09-01 Gary Wong <gtw@gnu.org>
* menu.c, menu.h: New files.
* actions.c: Added callback parameter to all actions. All callers
changed.
(action_root_menu, action_window_menu): New functions.
* decorate-core.c (core_update_window): Draw menu items.
(core_window_size): New function.
* decorate-render.c (render_update_window): Draw menu items.
(text_width, render_window_size): New functions.
* frame.c (recalc_size): Call window_size() to obtain feedback
dimensions.
(frame_button_press): Pop up a menu on button 2 presses.
* gwm.c (show_window): Annotate menu windows.
(setup_display): Initialise window_size.
(start_managing_window): Add OwnerGrabButton to frame windows.
(setup_display): Add OwnerGrabButton to the roots.
2009-09-01 Gary Wong <gtw@gnu.org>
* gwm.c (handle_events): Replace passive_grab with pointer_demux,
which redirects events on the client side.
(start_managing_window): Set initial event mask for
the frame button window, instead of an explicit GrabButton.
* button.c (button_button_press, button_button_release): Use
pointer_demux instead of GrabButton.
(button_enter_notify, button_leave_notify): Inspect event parameters
to determine which window is entered/left.
* frame.c (frame_button_press, frame_button_release): Use
pointer_demux instead of passive_grab.
(frame_motion_notify, frame_destroy_notify): Likewise.
(frame_enter_notify): Ignore events when pointer_demux is set.
* window-table.c (forget_window): Remove pointer_demux from
forgotten windows.
2009-08-31 Gary Wong <gtw@gnu.org>
* gwm.c (show_atom): Declare predefined_names[] as const.
(show_error): Declare render_strings[] as const.
(show_event): Declare event_names[] as const.
(setup_display): Use auto storage class for wm_atom_str.
2009-08-31 Gary Wong <gtw@gnu.org>
* gwm.c (start_managing_window): Create "border region" input-only
windows, to allow setting different cursors on various border parts.
* frame.c (frame_configure_notify): Update the geometry of the
border regions.
* decorate-core.c (decorate_core_init): Cursor indices were rearranged.
* decorate-render.c (decorate_compat_init): Likewise.
* frame.c (frame_button_press): Do not recognise a passive grab
propagated from the client.
2009-08-31 Gary Wong <gtw@gnu.org>
* frame.c (frame_t, frame_xb): Make window decorations optional.
(frame_blr): New function.
(frame_b, frame_l, frame_r): Invoke frame_blr().
(deactivate_focus_frame): Moved from gwm.c.
(frame_button_press, frame_enter_notify): Make window decorations
optional.
* gwm.c (start_managing_window): Likewise.
(setup_display): Add _MOTIF_WM_HINTS property.
* managed.c (managed_property_change): Handle _MOTIF_WM_HINTS property.
(match_managed_shape): Retrieve _MOTIF_WM_HINTS when a client
window is no longer bounding shaped.
2009-08-31 Gary Wong <gtw@gnu.org>
* button.c (button_size, button_xb): New functions. All references
to former constants updated.
* frame.c (frame_t, frame_b, frame_l, frame_r, frame_xb): New
functions. All references to former constants updated.
(translate_child_to_frame, translate_frame_to_child): Moved
from gwm.c.
(apply_size_constraints): Likewise.
2009-08-30 Gary Wong <gtw@gnu.org>
* frame.c (frame_button_release): Ignore the event unless the
window was the one to establish the passive grab.
(frame_destroy_notify): New function.
2009-08-30 Gary Wong <gtw@gnu.org>
* decorate-render.c (lookup_face): New function.
(query_metrics, query_glyph, replace_glyph, render_text): Take style
into consideration.
(render_update_window): Use styles, as appropriate.
(decorate_render_init): Remember fontconfig charsets and patterns
for each face in each style.
(decorate_render_done): Clean up fontconfig charsets and patterns.
2009-08-29 Gary Wong <gtw@gnu.org>
* frame.c (build_edges): Use xmalloc() instead of malloc().
2009-08-29 Gary Wong <gtw@gnu.org>
* managed.c (managed_property_change): Use _NET_WM_NAME in preference
to WM_NAME.
(async_get_property): New function.
(managed_property_notify): Use async_get_property.
* gwm.c (start_managing_window): Initialise net_wm_name.
(setup_display): Add _NET_WM_NAME property.
2009-08-28 Gary Wong <gtw@gnu.org>
* frame.c (recalc_size): Initialise feedback->u.feedback.
2009-08-28 Gary Wong <gtw@gnu.org>
* gwm.c (unmanage_window): Put the parent of the unmanaged child
into a childless state, so that lingering events can be handled
correctly.
(handle_destroy_window): New function.
(show_window): Annotate childless windows.
* managed.c (withdrawn_map_request, withdrawn_configure_request): New
functions.
2009-08-28 Gary Wong <gtw@gnu.org>
* decorate-render.c (decorate_render_init): Cast FONT_NAME
to (FcChar8 *).
2009-08-28 Gary Wong <gtw@gnu.org>
* gwm.c (shutdown_display): Reparent the windows in strict stacking
order.
2009-08-28 Gary Wong <gtw@gnu.org>
* decorate-render.c (query_metrics, render_text, render_update_window,
decorate_render_init): Replace FONT_FAMILY, FONT_WEIGHT,
FONT_PIXEL_SIZE, FONT_LOAD_TARGET with FONT_NAME.
2009-08-28 Gary Wong <gtw@gnu.org>
* decorate-render.c (query_metrics, replace_glyph): Don't
bother comparing the first cache line with itself.
2009-08-27 Gary Wong <gtw@gnu.org>
* decorate-render.c, decorate-render.h: New files. Implement
window decoration with RENDER extension (text only, so far).
* gwm.c (setup_display, shutdown_display): Set up and clean up
RENDER extension when available.
(show_error): Show RENDER errors.
* decorate-core.c (core_update_window): Issue SetClipRectangles
request.
2009-08-27 Gary Wong <gtw@gnu.org>
* gwm.c (sync_with_callback): Perform the sequence comparison
with unsigned arithmetic, so that overflow semantics are
well-defined.
2009-08-27 Gary Wong <gtw@gnu.org>
* frame.c (recalc_size): Implement edge resistance when resizing
frames.
(edge_resist): New function.
2009-08-26 Gary Wong <gtw@gnu.org>
* frame.c (frame_motion_notify, frame_button_release): Implement
edge resistance when moving frames.
(build_edges, free_edges, h_edge_compare, v_edge_compare): New
functions.
2009-08-25 Gary Wong <gtw@gnu.org>
* frame.c (frame_motion_notify): Ignore single pixel movements, and
account for window border.
2009-08-25 Gary Wong <gtw@gnu.org>
* window-table.c (queue_window_update): Mark the update box as
uncleared if we enlarge the bounding box.
2009-08-25 Gary Wong <gtw@gnu.org>
* gwm.c, gwm.h (warning, fatal): Export warning and fatal functions.
2009-08-25 Gary Wong <gtw@gnu.org>
* window-table.c (queue_window_update): Properly compute the
update region when the old region was empty.
2009-08-24 Gary Wong <gtw@gnu.org>
* gwm.c (shutdown_display) [DEBUG]: Call muntrace() only when
[HAVE_MTRACE].
2009-08-23 Gary Wong <gtw@gnu.org>
* managed.c (managed_shape_notify): Respond to ShapeNotify events
only when they describe modifications to the bounding region.
2009-08-22 Gary Wong <gtw@gnu.org>
* gwm.c (start_managing_window): Send a synthetic ConfigureNotify
to the client, because we've almost certainly moved their window.
2009-08-22 Gary Wong <gtw@gnu.org>
* actions.c, actions.h, button.c, button.h, decorate-core.c,
decorate-core.h, frame.c, frame.h, gwm.c, gwm.h, keyboard.c,
keyboard.h, managed.c, managed.h, root.c, root.h, utf8.c, utf8.h,
window-table.c, window-table.h, Makefile.am, configure.ac: New
files, and version 1.0 release.
|