recent changes
[mikachu/openbox.git] / ChangeLog
1 2003-08-23  Ben Jansens  <xor@zed.orodu.net>
2
3         * ChangeLog: recent changes
4
5         * kernel/keyboard.c:
6         end the other action when starting a new interactive action while one was in place
7
8         * render/render.c: formatting
9
10         * render/render.c: 80 cols
11
12         * render/render.c: stupid function name die
13
14 2003-08-23  Ben Jansens  <xor@zed.orodu.net>
15
16         * keyboard.c:
17         end the other action when starting a new interactive action while one was in place
18
19 2003-08-22  Ben Jansens  <xor@zed.orodu.net>
20
21         * action.c: only use visible windows when calcing for raiselower
22
23         * action.c: maybe smarter
24
25         * action.c: make the raiselower action smarter
26
27 2003-08-20  Ben Jansens  <xor@zed.orodu.net>
28
29         * keyboard.c:
30         better handling of starting a new interactive grab while one is in progress
31
32         * frame.c, frame.h, mouse.c: rename the 'root' context to 'desktop'
33
34         * action.c, action.h:
35         add the 'raiselower' action for raising obscured windows and lowering fully visible ones
36
37         * event.c, frame.c, frame.h:
38         add an obscured flag that tracks if the frame is at all obscured
39
40         * mouse.c: use the result from XGetGeometry correctly
41
42         * mouse.c: handle the XGetGeomtry failing for button releases
43
44         * mouse.c:
45         dont grab client context stuff on desktop windows. check that clint is non-null
46
47         * frame.c, mouse.c:
48         grab root mouse bindings on desktop windows also, since they are conceptually the desktop.
49
50         * screen.c: reset first to TRUE properly when the desktop popup is off
51
52         * moveresize.c: move the pointer while doing a keyboard move/resize
53
54 2003-08-20  Ben Jansens  <xor@zed.orodu.net>
55
56         * keyboard.c:
57         better handling of starting a new interactive grab while one is in progress
58
59         * frame.c, frame.h, mouse.c: rename the 'root' context to 'desktop'
60
61         * action.c, action.h:
62         add the 'raiselower' action for raising obscured windows and lowering fully visible ones
63
64         * event.c, frame.c, frame.h:
65         add an obscured flag that tracks if the frame is at all obscured
66
67         * mouse.c: use the result from XGetGeometry correctly
68
69         * mouse.c: handle the XGetGeomtry failing for button releases
70
71         * mouse.c:
72         dont grab client context stuff on desktop windows. check that clint is non-null
73
74         * frame.c, mouse.c:
75         grab root mouse bindings on desktop windows also, since they are conceptually the desktop.
76
77         * screen.c: reset first to TRUE properly when the desktop popup is off
78
79         * moveresize.c: move the pointer while doing a keyboard move/resize
80
81 2003-08-16  Ben Jansens  <xor@zed.orodu.net>
82
83         * keyboard.c: fix whitespace
84
85 2003-08-14  Ben Jansens  <xor@zed.orodu.net>
86
87         * focus.c:
88         skip windows in the alt-tabbing which have the SKIP_TASKBAR hint set on them
89
90         * menu.c: fix the offsets used to keep the menus on screen
91
92         * menu_render.c:
93         dont show titles on submenus. kill the extra 1px at the top of titleless menus
94
95         * menu.c: make putting plugin menus in a menu closer to working..
96
97         * plugin.c: add the client_list_menu plugin
98
99         * menu.c, menu.h: add a menu destructor callback.
100         fix a possible crasher where a callback was called with a different menu.
101
102         * stacking.c: 80 cols
103
104         * openbox.c: shutdown the menus before the plugins are unloaded
105
106         * focus.c, event.c, client.c, client.h:
107         make activate take a here parameter
108
109         * action.c: parse <here>true</here> for the activate action
110
111         * action.c, action.h: make the activate action have a 'here' parameter
112
113         * action.c, action.h: add an 'activate' action
114
115 2003-08-14  xor@zed.orodu.net  <xor@zed>
116
117         * kernel/menu.c: fix the offsets used to keep the menus on screen
118
119         * kernel/menu_render.c:
120         dont show titles on submenus. kill the extra 1px at the top of titleless menus
121
122         * kernel/menu.c:
123         make putting plugin menus in a menu closer to working..
124
125         * data/menu: rename root to root-menu
126
127         * data/rc3: add the client-list-menu
128
129         * Makefile.am, kernel/plugin.c, plugins/menu/.cvsignore, plugins/menu/client_list_menu.c:
130         add the client_list_menu plugin
131
132         * plugins/menu/client_menu.c: add the destructor for menus
133
134         * kernel/menu.c, kernel/menu.h: add a menu destructor callback.
135         fix a possible crasher where a callback was called with a different menu.
136
137         * kernel/stacking.c: 80 cols
138
139         * kernel/openbox.c: shutdown the menus before the plugins are unloaded
140
141         * kernel/focus.c, kernel/event.c, kernel/client.c, kernel/client.h:
142         make activate take a here parameter
143
144         * kernel/action.c: parse <here>true</here> for the activate action
145
146         * kernel/action.c, kernel/action.h:
147         make the activate action have a 'here' parameter
148
149         * kernel/action.c, kernel/action.h: add an 'activate' action
150
151 2003-08-12  xor@zed.orodu.net  <xor@zed>
152
153         * Makefile.am, kernel/config.c, kernel/config.h, kernel/moveresize.c, kernel/plugin.c, kernel/resist.c, kernel/resist.h:
154         move the resistance plugin into the kernel. dont resist when move/resizing with the keyboard, only when doing it with the mouse.
155
156         * kernel/client.c: oops i fucked up tore's patch. better.
157
158         * kernel/action.c, kernel/client.c:
159         bug fixes for growtoedge from tore. props to tore for all the growtoedge and movetoedge code, and directional focus code also since i dont think i mentioned his name before in the changelogs woot.
160
161         * Makefile.am, data/menu, data/rc3, kernel/config.c, kernel/config.h, kernel/menu.c, kernel/menu.h, kernel/mouse.c, kernel/openbox.c, kernel/plugin.c, kernel/plugin.h, plugins/interface.h, plugins/menu/fifo_menu.c, plugins/menu/include_menu.c, plugins/menu/timed_menu.c, plugins/placement/placement.c:
162         adjust for changes to the parsing api.
163         split the menu into its own file.
164
165         * parser/parse.c, parser/parse.h:
166         create ObParseInst structuer which can be then used to parse more than one file/memory thing at a time.
167         add function to parse memory block.
168
169         * kernel/config.c, kernel/mouse.c, kernel/mouse.h:
170         prefix/capitalize the mouse actions enum
171
172         * kernel/config.c: oops read the mouse cnofig vars into the right place
173
174         * data/rc3, kernel/config.c, kernel/config.h, kernel/keyboard.c:
175         add the chainQuitKey option to teh <keyboard> section of the rc3
176
177         * render/font.h, render/render.h, render/test.c:
178         add Xutil includes for these badboys on older X versions/solaris
179
180         * render/theme.c:
181         make all the masks unsigned chars for consistancy woot
182
183         * render/theme.c: kill some warnings
184
185         * kernel/extensions.h: include Xutil for shape.h on old X versions
186
187         * kernel/menu_render.c, render/theme.c:
188         rendering fixups for submenu bullets
189
190         * data/rc3: add the cyclingDialog option
191
192         * data/rc3:
193         remove the scrolling on root without alt since that fucks up with the dialog since there are no modifiers
194
195         * kernel/config.c, kernel/config.h, kernel/mouse.c, kernel/screen.c:
196         add an option for if the popup is used for desktop cycling. defaults on.
197
198         * kernel/client.c: dont move windows when starting
199
200         * ChangeLog: recent changes
201
202         * configure.ac: alpha5
203
204         * kernel/screen.c: when cancelling return the first desktop
205
206         * kernel/action.c, kernel/action.h:
207         use the new client_directional_edge_search for the movetoedge actions.
208         add new growtoedge actions.
209
210         * kernel/client.c, kernel/client.h:
211         small bugfix to the directional focus code.
212         add the client_directional_edge_search function.
213
214         * kernel/keyboard.c:
215         only do shit with the grabbed_* when a grab is in place
216
217         * kernel/action.c, kernel/mouse.c, kernel/screen.c:
218         remove debug printings
219
220         * ChangeLog, Makefile.am, kernel/.cvsignore, kernel/action.c, kernel/action.h, kernel/client.c, kernel/config.c, kernel/config.h, kernel/event.c, kernel/focus.c, kernel/keyboard.c, kernel/keyboard.h, kernel/keytree.c, kernel/keytree.h, kernel/menu.c, kernel/menu.h, kernel/mouse.c, kernel/mouse.h, kernel/openbox.c, kernel/plugin.c, kernel/screen.c, kernel/screen.h, kernel/translate.c, kernel/translate.h, plugins/menu/client_menu.c:
221         move the keyboard and mouse plugins into the kernel for mucho sexiness.
222         make workspace changing a grabbed/interactive process like focus cycling is, with the popup and all.
223         this is some hot shit.
224
225         * kernel/event.c:
226         keep event_lasttime at the last time an event has come in so far, don't regress when events come out of order. props to shrimpx for this patch.
227
228 2003-08-12  xor@zed.orodu.net  <xor@zed>
229
230         * configure.ac: alpha5
231
232         * kernel/screen.c: when cancelling return the first desktop
233
234         * kernel/action.c, kernel/action.h:
235         use the new client_directional_edge_search for the movetoedge actions.
236         add new growtoedge actions.
237
238         * kernel/client.c, kernel/client.h:
239         small bugfix to the directional focus code.
240         add the client_directional_edge_search function.
241
242         * kernel/keyboard.c:
243         only do shit with the grabbed_* when a grab is in place
244
245         * kernel/action.c, kernel/mouse.c, kernel/screen.c:
246         remove debug printings
247
248         * plugins/keyboard/.cvsignore, plugins/keyboard/Makefile, plugins/keyboard/keyboard.c, plugins/keyboard/keyboard.h, plugins/keyboard/translate.c, plugins/keyboard/translate.h, plugins/keyboard/tree.c, plugins/keyboard/tree.h:
249         remove the keyboard plugin shit
250
251         * ChangeLog, Makefile.am, kernel/.cvsignore, kernel/action.c, kernel/action.h, kernel/client.c, kernel/config.c, kernel/config.h, kernel/event.c, kernel/focus.c, kernel/keyboard.c, kernel/keyboard.h, kernel/keytree.c, kernel/keytree.h, kernel/menu.c, kernel/menu.h, kernel/mouse.c, kernel/mouse.h, kernel/openbox.c, kernel/plugin.c, kernel/screen.c, kernel/screen.h, kernel/translate.c, kernel/translate.h, plugins/menu/client_menu.c:
252         move the keyboard and mouse plugins into the kernel for mucho sexiness.
253         make workspace changing a grabbed/interactive process like focus cycling is, with the popup and all.
254         this is some hot shit.
255
256         * kernel/event.c:
257         keep event_lasttime at the last time an event has come in so far, don't regress when events come out of order. props to shrimpx for this patch.
258
259 2003-08-12  xor@zed.orodu.net  <xor@zed>
260
261         * kernel/event.c:
262         keep event_lasttime at the last time an event has come in so far, don't regress when events come out of order. props to shrimpx for this patch.
263
264 2003-08-11  woodblock  <woodblock@zed>
265
266         * kernel/menu.c, kernel/menu.h, kernel/menu_render.c, plugins/menu/fifo_menu.c, plugins/menu/timed_menu.c, render/theme.c, render/theme.h:
267         Some fixes and new bugs. Someone else can do the menus because it is
268         clear no one gives a fuck what I think and no one else wants a window
269         manager that doesn't suck the same balls as every other window manager.
270
271 2003-08-10  xor@zed.orodu.net  <xor@zed>
272
273         * kernel/client.c:
274         save the frame decorations in client_configure_full before causing the fake frame adjust, since that loses its old value.
275
276 2003-08-10  xor@zed.orodu.net  <xor@zed>
277
278         * framerender.c:
279         clear the window after setting the background color, this isnt implicit
280
281 2003-08-09  xor@zed.orodu.net  <xor@zed>
282
283         * focus.c, popup.c, popup.h, screen.c, timer.c, timer.h:
284         changes to the timer api, pass the timer to the callback function.
285         add a desktop-switch popup with the desktop's name
286
287 2003-08-07  woodblock  <woodblock@zed>
288
289         * event.c:
290         Fix lock up when not using a session manager and doing fd management.
291
292 2003-08-05  xor@zed.orodu.net  <xor@zed>
293
294         * screen.c: dont ignore topleft layouts
295
296         * frame.c:
297         dont map the tl/tr invisible grips when the grip decors are turned off
298
299         * client.c, frame.c, frame.h, framerender.c:
300         a couple frame layout bugfixes hidden inside all this.. wee
301         fixes for maximizing windows:
302          - when you toggledecor, it will reconfigure once, but the new constraints from the decor changes would not be in effect when the window was resized to the contranits. fixed by calling frame_adjust_area first thing ni client_configure_fulll with fake=TRUE which will recalc all the frame geometry without resizing/redrawing anything in the frame. this way the decor can take effect in the geometries.
303          - when maxed horizontally, make the client fill the screen, but dont do this by just making it wider than the screen, fit it to the screen and adjust the titlebar/handle as appropriate to keep it all on the screen.
304          - when maxed horizontally and vertically, remove the handle from the decorations
305
306         * client.c:
307         when setting up decor on a window, it needs to reconfigure twice if the decor changes, cuz the constraints need the new frame sizes to work right
308
309         * moveresize.c:
310         make the position dislpayed in the moving popup offset by the top/left struts so that 0,0 is inside teh struts not neccessarily at the screen edge
311
312 2003-08-03  xor@zed.orodu.net  <xor@zed>
313
314         * client.c, config.c, config.h, moveresize.c:
315         kill non-opaque move/resize
316         add an option for redrawing/resizing the client window while resizing, when disabled the client is not touched until the resize is complete.
317
318         * framerender.c: give the plate the same background color as its border
319
320 2003-08-03  xor@zed.orodu.net  <xor@zed>
321
322         * data/rc3, kernel/client.c, kernel/config.c, kernel/config.h, kernel/moveresize.c:
323         kill non-opaque move/resize
324         add an option for redrawing/resizing the client window while resizing, when disabled the client is not touched until the resize is complete.
325
326         * kernel/framerender.c:
327         give the plate the same background color as its border
328
329 2003-08-02  xor@zed.orodu.net  <xor@zed>
330
331         * tools/obconf/main.c: has a pane and list and workarea
332
333         * tools/obconf/main.c: has a menu and a treeview
334
335         * kernel/client.c, kernel/event.c:
336         use the frame size not the client size when figuring out if stuff fits on the screen
337
338         * plugins/placement/placement.c:
339         let transients go where they requested :( fuck xmms
340
341         * themes/om4ob/themerc: add disabled button styles (from miklos)
342
343         * tools/kdetrayproxy/kdetrayproxy.c: missing sys/time.h
344
345         * configure.ac: alpha4
346
347         * ChangeLog: recent changes
348
349         * Makefile.am, themes/om4ob/close.xbm, themes/om4ob/close_hover.xbm, themes/om4ob/desk.xbm, themes/om4ob/desk_hover.xbm, themes/om4ob/desk_toggled.xbm, themes/om4ob/iconify.xbm, themes/om4ob/iconify_hover.xbm, themes/om4ob/iconify_pressed.xbm, themes/om4ob/max.xbm, themes/om4ob/max_disabled.xbm, themes/om4ob/max_hover.xbm, themes/om4ob/max_pressed.xbm, themes/om4ob/max_toggled.xbm, themes/om4ob/shade.xbm, themes/om4ob/shade_disabled.xbm, themes/om4ob/shade_hover.xbm, themes/om4ob/shade_toggled.xbm, themes/om4ob/themerc:
350         add the om4ob theme
351
352         * ChangeLog: recent changes
353
354         * render/theme.c: oops indenting
355
356         * render/theme.c:
357         look in theme dirs first, use the theme as the path as a last attempt only!
358
359         * kernel/frame.c: the grips go below the titlebar buttons
360
361         * plugins/placement/placement.c: place transients better
362
363         * kernel/client.h, kernel/dock.c, kernel/dock.h, kernel/geom.h, kernel/prop.c, kernel/prop.h:
364         add partial struts tho they arent useful eyt
365
366         * data/rc3, kernel/frame.c, kernel/frame.h, kernel/framerender.c, render/theme.h:
367         invisible resizing areas/grips in the top corners of the window
368
369         * plugins/mouse/mouse.c:
370         omg i found the bug that would make the mouse cursor end up way far from where you started the drag.
371
372         * render/theme.c: use the toggled mask for shade and desk buttons
373
374         * kernel/client.c: that line ended up in teh if somehow...
375
376 2003-08-02  xor@zed.orodu.net  <xor@zed>
377
378         * configure.ac: alpha4
379
380         * ChangeLog: recent changes
381
382         * Makefile.am, themes/om4ob/close.xbm, themes/om4ob/close_hover.xbm, themes/om4ob/desk.xbm, themes/om4ob/desk_hover.xbm, themes/om4ob/desk_toggled.xbm, themes/om4ob/iconify.xbm, themes/om4ob/iconify_hover.xbm, themes/om4ob/iconify_pressed.xbm, themes/om4ob/max.xbm, themes/om4ob/max_disabled.xbm, themes/om4ob/max_hover.xbm, themes/om4ob/max_pressed.xbm, themes/om4ob/max_toggled.xbm, themes/om4ob/shade.xbm, themes/om4ob/shade_disabled.xbm, themes/om4ob/shade_hover.xbm, themes/om4ob/shade_toggled.xbm, themes/om4ob/themerc:
383         add the om4ob theme
384
385         * ChangeLog: recent changes
386
387         * render/theme.c: oops indenting
388
389         * render/theme.c:
390         look in theme dirs first, use the theme as the path as a last attempt only!
391
392         * kernel/frame.c: the grips go below the titlebar buttons
393
394         * plugins/placement/placement.c: place transients better
395
396         * kernel/client.h, kernel/dock.c, kernel/dock.h, kernel/geom.h, kernel/prop.c, kernel/prop.h:
397         add partial struts tho they arent useful eyt
398
399         * data/rc3, kernel/frame.c, kernel/frame.h, kernel/framerender.c, render/theme.h:
400         invisible resizing areas/grips in the top corners of the window
401
402         * plugins/mouse/mouse.c:
403         omg i found the bug that would make the mouse cursor end up way far from where you started the drag.
404
405         * render/theme.c: use the toggled mask for shade and desk buttons
406
407         * kernel/client.c: that line ended up in teh if somehow...
408
409 2003-08-02  xor@zed.orodu.net  <xor@zed>
410
411         * Makefile.am, themes/om4ob/close.xbm, themes/om4ob/close_hover.xbm, themes/om4ob/desk.xbm, themes/om4ob/desk_hover.xbm, themes/om4ob/desk_toggled.xbm, themes/om4ob/iconify.xbm, themes/om4ob/iconify_hover.xbm, themes/om4ob/iconify_pressed.xbm, themes/om4ob/max.xbm, themes/om4ob/max_disabled.xbm, themes/om4ob/max_hover.xbm, themes/om4ob/max_pressed.xbm, themes/om4ob/max_toggled.xbm, themes/om4ob/shade.xbm, themes/om4ob/shade_disabled.xbm, themes/om4ob/shade_hover.xbm, themes/om4ob/shade_toggled.xbm, themes/om4ob/themerc:
412         add the om4ob theme
413
414         * ChangeLog: recent changes
415
416         * render/theme.c: oops indenting
417
418         * render/theme.c:
419         look in theme dirs first, use the theme as the path as a last attempt only!
420
421         * kernel/frame.c: the grips go below the titlebar buttons
422
423         * plugins/placement/placement.c: place transients better
424
425         * kernel/client.h, kernel/dock.c, kernel/dock.h, kernel/geom.h, kernel/prop.c, kernel/prop.h:
426         add partial struts tho they arent useful eyt
427
428         * data/rc3, kernel/frame.c, kernel/frame.h, kernel/framerender.c, render/theme.h:
429         invisible resizing areas/grips in the top corners of the window
430
431         * plugins/mouse/mouse.c:
432         omg i found the bug that would make the mouse cursor end up way far from where you started the drag.
433
434         * render/theme.c: use the toggled mask for shade and desk buttons
435
436         * kernel/client.c: that line ended up in teh if somehow...
437
438 2003-08-02  xor@zed.orodu.net  <xor@zed>
439
440         * theme.c: oops indenting
441
442         * theme.c:
443         look in theme dirs first, use the theme as the path as a last attempt only!
444
445         * theme.h:
446         invisible resizing areas/grips in the top corners of the window
447
448         * theme.c: use the toggled mask for shade and desk buttons
449
450 2003-08-01  xor@zed.orodu.net  <xor@zed>
451
452         * theme.c: look for masks only where the themerc was read from
453
454         * theme.c, theme.h: add pressed bitmaps. rename stick bitmaps to desk
455
456         * theme.c, theme.h: add toggled textuers for titlebar buttons
457
458         * gradient.c, render.c, render.h: move the dekstop file to data/
459
460         * theme.c, theme.h:
461         renamed the _t bitmaps, and added disabled and hover bitmaps
462
463         * theme.c: make themes inside a directory
464
465         * theme.c: add missing includes
466
467 2003-07-31  xor@zed.orodu.net  <xor@zed>
468
469         * font.c: missing a header
470
471 2003-07-31  xor@zed.orodu.net  <xor@zed>
472
473         * configure.ac: alpha3
474
475         * kernel/frame.c: fix a long-lurknig gravity bug
476
477         * tools/obconf/main.c: dont inlcude these headers they arent needed yet
478
479         * ChangeLog: recent changes
480
481         * kernel/openbox.c: oops missed one
482
483         * kernel/openbox.c, kernel/openbox.h: expose exit_with_error
484
485         * plugins/placement/history.c: kill warnings
486
487         * kernel/session.c: kill some output
488
489         * kernel/openbox.c:
490         only load the session from file if a file was provided
491
492         * render/font.c: missing a header
493
494         * README.CVS: remove shit i no longer use
495
496         * parser/parse.c: always return a string from parse_string
497
498         * kernel/client.c:
499         set the desktop hint if the desktop is changed by the session code
500
501         * kernel/client.c:
502         set the desktop hint after everything is read/setup even session stuff
503
504         * kernel/client.c:
505         add the window to the lists before setting the client list hint
506
507         * kernel/session.c:
508         declare functions that are needed when built without session support
509
510         * kernel/session.c:
511         use the new sm_client_id function so all windows who should save state do. session save/load seems to be working with gnome-session rather well.
512
513         * kernel/client.c, kernel/client.h:
514         add a function to retrieve the sm_client_id value
515
516         * plugins/placement/history.c:
517         dont save/load history. its slow and its stupid.
518
519 2003-07-31  xor@zed.orodu.net  <xor@zed>
520
521         * kernel/openbox.c: oops missed one
522
523         * kernel/openbox.c, kernel/openbox.h: expose exit_with_error
524
525         * plugins/placement/history.c: kill warnings
526
527         * kernel/session.c: kill some output
528
529         * kernel/openbox.c:
530         only load the session from file if a file was provided
531
532         * render/font.c: missing a header
533
534         * README.CVS: remove shit i no longer use
535
536         * parser/parse.c: always return a string from parse_string
537
538         * kernel/client.c:
539         set the desktop hint if the desktop is changed by the session code
540
541         * kernel/client.c:
542         set the desktop hint after everything is read/setup even session stuff
543
544         * kernel/client.c:
545         add the window to the lists before setting the client list hint
546
547         * kernel/session.c:
548         declare functions that are needed when built without session support
549
550         * kernel/session.c:
551         use the new sm_client_id function so all windows who should save state do. session save/load seems to be working with gnome-session rather well.
552
553         * kernel/client.c, kernel/client.h:
554         add a function to retrieve the sm_client_id value
555
556         * plugins/placement/history.c:
557         dont save/load history. its slow and its stupid.
558
559 2003-07-30  xor@zed.orodu.net  <xor@zed>
560
561         * kernel/client.c, kernel/prop.c, kernel/prop.h, kernel/session.c, kernel/session.h:
562         restore saved session data for applications
563
564         * plugins/placement/placement.c: center transients
565
566         * data/rc3, kernel/config.c, kernel/config.h, kernel/frame.c, render/theme.c, render/theme.h:
567         move the titlebar layout from the theme to the rc file
568
569         * kernel/client.c: attemp #3
570
571         * kernel/client.c: attempt #2 at better logical size values
572
573         * kernel/client.c: include the base size in the logical size
574
575         * ChangeLog: recent changes
576
577         * kernel/client.c: the size can be 0 when there is a base size
578
579         * kernel/client.c, kernel/client.h, kernel/event.c:
580         improved ICCCM compliance!
581           a) send ConfigureNotify back to the client as required by the ICCCM in all sitatuations.
582           b) send the corrent coords in the ConfigureNotify, including the border width
583           c) remove the WM_STATE property when unmanaging a window
584
585         * kernel/frame.c: code cleaning
586
587         * kernel/menu.c: only ignore wheel buttons
588
589 2003-07-30  xor@zed.orodu.net  <xor@zed>
590
591         * client.c: the size can be 0 when there is a base size
592
593         * client.c, client.h, event.c: improved ICCCM compliance!
594           a) send ConfigureNotify back to the client as required by the ICCCM in all sitatuations.
595           b) send the corrent coords in the ConfigureNotify, including the border width
596           c) remove the WM_STATE property when unmanaging a window
597
598         * frame.c: code cleaning
599
600         * menu.c: only ignore wheel buttons
601
602 2003-07-29  xor@zed.orodu.net  <xor@zed>
603
604         * event.c: i am the king of copy/paste errors
605
606 2003-07-29  woodblock  <woodblock@zed>
607
608         * event.c: more menu fixes.
609         I hate menus.
610
611         * menu.c: Clear current_menu when hiding menus.
612
613         * event.c, menu.c: Close menu properly on unbound keys.
614
615         * menu.c: Fix some keyboard control issues.
616
617 2003-07-28  xor@zed.orodu.net  <xor@zed>
618
619         * client.c, event.c:
620         base rudeness on if they have a strut even smarter!
621
622         * client.c, event.c: base rudeness on if they have a strut or not
623
624         * client.c, event.c, screen.c:
625         make the new placement restrictions not affect !normal windows like panels
626
627         * menu.c: use plugin_open_reopen not plugin_open_full
628
629         * event.c, frame.c, frame.h, framerender.c:
630         hover theme elements for window titlebar buttons
631
632         * client.c, client.h, event.c, screen.c:
633         make those apps stay/map on screen!! fuck stupid apps. thats right im talking to you mozilla and you too java.
634
635         * event.c: make things compile again. hover does not work yet.
636
637         * client.c: use the macro
638
639         * client.c, event.c:
640         keep apps from moving/maping their titlebar underneath left/top panels
641
642         * session.c: set teh clone comamnd
643
644         * session.c:
645         use char not a long, since we're telling the SM that its 1 byte lone
646
647         * session.c: save the commands on startup
648
649         * session.c: use the path properly for the session file
650
651         * session.c: use teh save file not the session id
652
653 2003-07-28  woodblock  <woodblock@zed>
654
655         * menu.c: demand load plugins from the menu
656
657         * event.c, menu.c: Menu stuff.
658         Testing may begin.
659
660 2003-07-26  woodblock  <woodblock@zed>
661
662         * event.c: Close menu on click if outside the menu.
663         I think, haven't tested.
664
665         * menu.c: more fixes
666
667 2003-07-26  xor@zed.orodu.net  <xor@zed>
668
669         * stacking.c: dont stack groups together
670
671 2003-07-26  woodblock  <woodblock@zed>
672
673         * event.c, menu.c, menu.h: Some menu updates.
674         Don't talk to me about menus.
675
676 2003-07-26  xor@zed.orodu.net  <xor@zed>
677
678         * stacking.c: dont stack groups together
679
680 2003-07-26  woodblock  <woodblock@zed>
681
682         * event.c, menu.c, menu.h: Some menu updates.
683         Don't talk to me about menus.
684
685 2003-07-25  xor@zed.orodu.net  <xor@zed>
686
687         * client.c, client.h:
688         add client_search_transient which searches the tree from a client down for a client
689
690         * stacking.c: stacking fixes
691
692 2003-07-24  xor@zed.orodu.net  <xor@zed>
693
694         * openbox.c, openbox.h, session.c, session.h:
695         save and load the session save file, though its data is not used yet!
696
697 2003-07-24  woodblock  <woodblock@zed>
698
699         * event.c, menu.c, menu.h, menu_render.c:
700         I had a commit message but my commit got stepped on so fuck it.
701         No one cares what I think anyway.
702         If the menu navigation isn't EXACTLY FUCKING RIGHT I WILL REMOVE IT
703         AND SOME OTHER POOR FUCK CAN PUT UP WITH ALL THE FUCKING BULLSHIT.
704
705 2003-07-24  xor@zed.orodu.net  <xor@zed>
706
707         * action.c, client.c, debug.h, dock.c, event.c, focus.c, menu.c, menu_render.c, openbox.c, screen.c:
708         use ob_debug for any debug printing and only display the output when its a debug build or when --debug is passed to it
709
710 2003-07-24  xor@zed.orodu.net  <xor@zed>
711
712         * configure.ac:
713         dont display the build type at the end its already in the output
714
715         * configure.ac, kernel/action.c, kernel/client.c, kernel/debug.h, kernel/dock.c, kernel/event.c, kernel/focus.c, kernel/menu.c, kernel/menu_render.c, kernel/openbox.c, kernel/screen.c, parser/parse.c, plugins/keyboard/keyboard.c, plugins/keyboard/translate.c, plugins/menu/client_menu.c, plugins/placement/history.c, render/color.c, render/gradient.c, render/instance.c, render/theme.c, tools/obconf/main.c:
716         use ob_debug for any debug printing and only display the output when its a debug build or when --debug is passed to it
717
718         * render/gradient.c:
719         draw the bevel stuff in the pixel data buffer so parent-relative stuff can use it.
720
721         * render/render.c: space
722
723 2003-07-23  xor@zed.orodu.net  <xor@zed>
724
725         * render/render.c:
726         init the parent shit in the surface when making a copy
727
728         * Makefile.am: use rm -f
729
730         * plugins/menu/include_menu.c: declare vars at top
731
732         * plugins/menu/timed_menu.c:
733         i already fixed this once :) var declarations go first
734
735         * Makefile.am: include obconf_interface.h in the dist
736
737         * Makefile.am: remove headers that dont exist
738
739         * plugins/menu/.cvsignore: add the include menu plugin
740
741         * m4/Makefile.am: add the new m4s
742
743 2003-07-23  woodblock  <woodblock@zed>
744
745         * plugins/menu/timed_menu.c: Timed menu updates. Still needs work.
746
747         * plugins/menu/client_menu.c:
748         Better placement of the client window. Might need some tweaking.
749
750 2003-07-23  xor@zed.orodu.net  <xor@zed>
751
752         * kernel/menu.c: unhilite the entry for the submenu when it is closed
753
754         * configure.ac: alpha2
755
756         * DESIGN/themes.txt: add hover
757
758 2003-07-23  woodblock  <woodblock@zed>
759
760         * Makefile.am, plugins/menu/include_menu.c:
761         Added include_menu.c as an example of how one could write a plugin.
762
763         * kernel/config.c, kernel/menu.c, parser/parse.c, plugins/keyboard/keyboard.c, plugins/menu/fifo_menu.c, plugins/mouse/mouse.c, plugins/placement/history.c:
764         * Change xml parsing to pass the parent node, rather than the first
765         child.
766         * Add x,y co-ordinates on showmenu action so we can place menus on keypress.
767
768 2003-07-22  xor@zed.orodu.net  <xor@zed>
769
770         * kernel/event.c, kernel/openbox.c, kernel/openbox.h, kernel/screen.c:
771         add the --replace command line option, and support for the WM_Sn selection
772
773         * kernel/prop.c, kernel/prop.h: add the MANAGER atom.
774         allow prop_message to be used with a user-defined mask instead of only with the NetWM mask
775
776         * plugins/keyboard/keyboard.c:
777         set the x/y values in the moveresize struct for moveresize key actions
778
779         * kernel/client.c: stop shownig the desktop when a new window maps
780
781         * kernel/menu.c: add a func to find a menu entry from a submenu.
782         keep menu entries highlighted while they have their submenu open
783
784         * kernel/menu.h: add a func to find a menu entry from a submenu
785
786         * plugins/menu/fifo_menu.c: declare vars at the top of the block
787
788         * kernel/menu.c, render/theme.c, render/theme.h:
789         add a menuOverlap property to themes, and use it in the submenu placement
790
791         * configure.ac: update to new version of gettext
792
793         * m4/.cvsignore, po/.cvsignore: more stuff to ignore
794
795 2003-07-21  woodblock  <woodblock@zed>
796
797         * kernel/event.c, kernel/menu.c, kernel/menu.h:
798         Keyboard navigatable menus
799
800 2003-07-19  woodblock  <woodblock@zed>
801
802         * kernel/action.c, kernel/menu.c: Fix a couple memory leaks.
803
804         * plugins/menu/fifo_menu.c:
805         If there is a pid="true" attribute in the <menu plugin="fifo_menu">
806         tag, append .pid to the fifo files. This allows for more than one
807         openbox to be run by the same user and use fifo menus.
808
809 2003-07-17  woodblock  <woodblock@zed>
810
811         * kernel/menu.c, kernel/menu.h, kernel/plugin.c, kernel/plugin.h, plugins/menu/fifo_menu.c:
812         Menu parsing updates for plugins.
813
814         FIFO menus are the only plugin that takes advantage of this.
815         Example:
816         <menu id="root" label="Openbox 3">
817           <menu id="fonk" label="fonk" plugin="fifo_menu">
818           </menu>
819         </menu>
820
821         This creates a FIFO ~/.openbox/fifo_menu/fonk to which you can send
822         menus to. The menus sent to it must be like
823         <fifo>
824           <item>
825            etc...
826         </fifo>
827
828         I think. If my memory serves me right.
829
830         It is all hideous, but I just wanted to experiment and see if it was
831         possible.
832
833 2003-07-12  xor@zed.orodu.net  <xor@zed>
834
835         * render/theme.c: useless code move
836
837         * kernel/client.c: simple code cleanup
838
839 2003-07-11  xor@zed.orodu.net  <xor@zed>
840
841         * render/color.c, render/render.c:
842         removed the RrEndian so using LSBFirst always now. hopefully this works!
843
844         * kernel/client.c:
845         when a transient maps on another desktop, give it focus when it deserves it
846
847         * render/render.h: same default offsets for all endian machines
848
849         * DESIGN/themes.txt: some input from woobie and changed the menu stuff
850
851         * DESIGN/themes.txt: extra menu tag
852
853         * kernel/openbox.c: add --g-fatal-warnings
854
855         * kernel/dock.c:
856         fix a seggie i introduced, going too far in the dockapps list
857
858         * DESIGN/themes.txt: attempt #2
859
860         * DESIGN/themes.txt: oops extra menu_layout
861
862         * DESIGN/themes.txt: a full style defn..
863
864         * kernel/client.c: move to the desktop of the activated window
865
866 2003-07-10  xor@zed.orodu.net  <xor@zed>
867
868         * kernel/action.c, kernel/client.c, kernel/client.h, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/openbox.c, render/theme.c, render/theme.h, tests/.cvsignore, tests/noresize.c:
869         add disabled buttons, instead of now showing buttons at all when they wont do anything, now show a disabled button instead. this severely breaks compatibility with blackbox themes since there is no good way to automiatically create a disabled button that i can think of, so if they dont exist in the theme you get black and white for the button.
870
871         when a window cant be resized, its handle is not removed but its grips are.
872
873         change allowing the user to disable individual decorations as that is overkill,
874         instead allow a toggle through the client.decorate boolean.
875
876         * tests/Makefile: readd the Makefile
877
878         * kernel/focus.c: simply startup/shutdown
879
880         * AUTHORS: add some more contributors
881
882         * kernel/openbox.c: sync is in unistd.h
883
884         * kernel/client.c, kernel/event.c, kernel/menu.c, kernel/menu.h, kernel/menu_render.c, kernel/window.c, kernel/window.h, plugins/menu/client_menu.c, plugins/menu/fifo_menu.c, plugins/menu/timed_menu.c:
885         prefix and capitalize ObMenu ObMenuEntry and ObMenuEntryRenderType
886         make the ObMenuEntryRenderType a standard enum instead bitflags
887
888         * kernel/focus.c, kernel/openbox.c, kernel/openbox.h, kernel/screen.c, kernel/screen.h:
889         move ob_pointer_pos to screen_pointer_pos
890
891         * kernel/client.c, kernel/dock.c, kernel/event.c, kernel/focus.c, kernel/frame.c, kernel/openbox.c, kernel/openbox.h, kernel/screen.c, kernel/stacking.c, plugins/placement/history.c, plugins/placement/placement.c:
892         make ob_state a function so it cant be changed outside of openbox.c
893
894         * kernel/client.c, kernel/dock.c, kernel/event.c, kernel/focus.c, kernel/frame.c, kernel/grab.c, kernel/menu.c, kernel/moveresize.c, kernel/openbox.c, kernel/openbox.h, kernel/popup.c, kernel/prop.c, kernel/screen.c, kernel/stacking.c, kernel/startup.c:
895         remove the ob_root var, its redundant of what Xlib already provides
896
897         * kernel/openbox.c, kernel/openbox.h: use gint
898
899         * kernel/openbox.c, kernel/openbox.h:
900         ob_remote has been killed, remove ob_sync from the public header, its only used internally
901
902         * kernel/openbox.c, kernel/openbox.h:
903         the --rc arg and rc_path var wasnt even being used so just rm it
904
905         * kernel/action.c, kernel/event.c, kernel/openbox.c, kernel/openbox.h:
906         make the ob_restart/shutdown stuff static vars and expose them only through functions ob_restart_other(), ob_restart() and ob_exit()
907
908         * kernel/stacking.c: remove useless include
909
910         * kernel/focus.c, kernel/focus.h, kernel/screen.c, kernel/screen.h, kernel/stacking.c, plugins/keyboard/keyboard.c:
911         replace the focus_backup with the screen_support_win, we dont need 2 offscreen windows.
912
913         * kernel/screen.c:
914         use the xerror stuff to trap errors instead of dupliacted the effort here
915
916         * kernel/dock.c, kernel/dock.h, kernel/screen.c, kernel/timer.c, kernel/timer.h, plugins/keyboard/keyboard.c, plugins/menu/timed_menu.c:
917         prefix the Timer->ObTimer and TimeoutHandler->ObTimeoutHandler shitz
918
919         * kernel/action.h, kernel/client.c, kernel/client.h, kernel/config.c, kernel/config.h, kernel/dispatch.c, kernel/dispatch.h, kernel/dock.c, kernel/event.c, kernel/extensions.h, kernel/framerender.c, kernel/framerender.h, kernel/menu.c, kernel/menu.h, kernel/menu_render.c, kernel/moveresize.c, kernel/popup.h, kernel/screen.h, kernel/stacking.c, kernel/stacking.h, kernel/window.c, kernel/window.h, plugins/keyboard/keyboard.c:
920         prefixing and capitalizing the StackLayer -> ObStackingLayer enum.
921         less includes in headers for less rebuilding on changes
922
923         * kernel/client.c, kernel/event.c, kernel/focus.c, kernel/focus.h, kernel/screen.c:
924         prefix and capitalize the ObFocusFallbackType enum
925
926         * kernel/config.c, kernel/config.h, kernel/dock.c:
927         use the ObOrientation enum instead of a horz bool for configuring the dock's orientation
928
929         * kernel/config.c, kernel/config.h, kernel/dock.c, kernel/dock.h, kernel/event.c, kernel/window.c, kernel/window.h:
930         prefixing for the dock. use ObDirection instead of dupliacting it in another enum for the dock's placement
931
932         * kernel/popup.c, kernel/popup.h:
933         prefixing for the Popup->ObPopup struct
934
935         * kernel/moveresize.h: dont need client.h in this header
936
937         * kernel/client.h, kernel/event.c, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/framerender.h, kernel/popup.c, plugins/mouse/mouse.c:
938         prefixing and capitalization for the Frame->ObFrame struct and the Context->ObFrameContext enum and its constants.
939
940         * kernel/client.h, kernel/group.c, kernel/group.h:
941         prefix Group to ObGroup
942
943         * kernel/client.c, kernel/client.h, kernel/focus.c, kernel/stacking.c:
944         prefix TRAN_GROUP to OB_TRAN_GROUP
945
946         * kernel/action.c, kernel/client.c, kernel/client.h, kernel/frame.h, kernel/screen.c:
947         prefix and capitalize some more constants/enums in client.h (Function -> ObFunctions and WindowType -> ObClientType)
948
949         * plugins/menu/client_menu.c, plugins/menu/fifo_menu.c, plugins/menu/timed_menu.c:
950         kill warnings
951
952         * kernel/action.c, kernel/action.h, kernel/client.c, kernel/client.h, kernel/dispatch.c, kernel/dispatch.h, kernel/event.c, kernel/focus.c, kernel/focus.h, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/group.c, kernel/group.h, kernel/menu.c, kernel/menu.h, kernel/moveresize.c, kernel/moveresize.h, kernel/popup.c, kernel/popup.h, kernel/screen.c, kernel/screen.h, kernel/stacking.c, kernel/window.c, kernel/window.h, plugins/keyboard/keyboard.c, plugins/mouse/mouse.c, plugins/placement/history.c, plugins/placement/history.h, plugins/placement/placement.c, plugins/resistance/resistance.c:
953         rename the Client struct to ObClient
954
955         * Makefile.am: add the new misc.h and mwm.h to the kernel sources
956
957         * kernel/client.c, kernel/client.h, kernel/mwm.h:
958         add a mwm.h for the mwm hint structure and flags.
959         use proper prefixing and capitalization for the new mwm stuff.
960
961         * kernel/action.c, kernel/action.h, kernel/client.c, kernel/client.h, kernel/dispatch.c, kernel/dispatch.h, kernel/dock.c, kernel/event.c, kernel/focus.c, kernel/frame.c, kernel/grab.c, kernel/grab.h, kernel/misc.h, kernel/moveresize.c, kernel/openbox.c, kernel/openbox.h, kernel/screen.c, kernel/screen.h, kernel/stacking.c, plugins/keyboard/keyboard.c, plugins/placement/history.c, plugins/placement/placement.c, plugins/resistance/resistance.c:
962         add misc.h with some standard enumerations with proper prefixing and capitalizations.
963
964         use the new enums throughout.
965
966         provide keycodes and cursors through ob_cursor and ob_keycode functions, which use the new misc.h enums for picking the cursor and keycode.
967
968         * kernel/client.c, kernel/client.h, kernel/event.c, kernel/extensions.c, kernel/focus.c, kernel/menu.c, kernel/moveresize.c, kernel/screen.c, kernel/screen.h, plugins/menu/client_menu.c, plugins/placement/placement.c, plugins/resistance/resistance.c:
969         rename 'xinerama' stuff to 'monitors' to be more generic and descriptive.
970
971         * kernel/stacking.c: speed up pick_group_windows too
972
973         * kernel/stacking.c: make pick_windows waaaay faster
974
975         * kernel/openbox.c:
976         remove the use of the BINARY define. kill a compiler warning.
977
978         * kernel/stacking.c: allow restacking of transients above one another
979
980         * kernel/focus.c:
981         put the transient's title before the parent's in the focus popup
982
983         * kernel/extensions.c, kernel/extensions.h:
984         remove the xinerama active boolean, just count the extension as not present if it is not active
985
986         * kernel/client.c, kernel/client.h: add client_search_top_transient.
987         keep transients all on the same desktop together. use client_search_top_transient where possible in client.c
988
989         * kernel/debug.c, kernel/debug.h:
990         add ob_debug for printing stuff only when debug is enabled
991
992         * plugins/mouse/mouseparse.c, plugins/mouse/mouseparse.h:
993         these havent been used for a long time.. ;) old parsing shit be gone
994
995         * render/color.c, render/font.c, render/font.h, render/geom.h, render/image.c, render/image.h, render/mask.c, render/mask.h, render/render.c, render/render.h:
996         remove rependancy on geom.h from the kernel, provide what is used in its own geom.h
997
998         * Makefile.am, configure.ac, data/.cvsignore, data/Makefile, data/Makefile.am, kernel/.cvsignore, kernel/Makefile, kernel/Makefile.am, parser/.cvsignore, parser/Makefile, parser/Makefile.am, plugins/.cvsignore, plugins/Makefile.am, plugins/keyboard/.cvsignore, plugins/keyboard/Makefile, plugins/keyboard/Makefile.am, plugins/menu/.cvsignore, plugins/menu/Makefile, plugins/menu/Makefile.am, plugins/mouse/.cvsignore, plugins/mouse/Makefile, plugins/mouse/Makefile.am, plugins/placement/.cvsignore, plugins/placement/Makefile, plugins/placement/Makefile.am, plugins/resistance/.cvsignore, plugins/resistance/Makefile, plugins/resistance/Makefile.am, render/.cvsignore, render/Makefile, render/Makefile.am, themes/.cvsignore, themes/Makefile, themes/Makefile.am, themes/ebox_data/.cvsignore, themes/ebox_data/Makefile.am, themes/fieron2_data/.cvsignore, themes/fieron2_data/Makefile.am, themes/fieron_data/.cvsignore, themes/fieron_data/Makefile.am, tools/Makefile.am, tools/obconf/Makefile.am:
999         update the build system, using a single Makefile.am for a sexyass non-recursive make. booyah!
1000
1001         * gettext.h, kernel/gettext.h:
1002         move the gettext header out to the root source dir
1003
1004 2003-07-07  xor@zed.orodu.net  <xor@zed>
1005
1006         * render/font.c: include stdlib for exit()
1007
1008 2003-07-06  xor@zed.orodu.net  <xor@zed>
1009
1010         * bootstrap: add ACLOCAL_FLAGS to the aclocal call.
1011
1012 2003-07-05  xor@zed.orodu.net  <xor@zed>
1013
1014         * kernel/openbox.c: use --foo instead of -foo for cmd line arguments
1015
1016         * render/color.c, render/render.h:
1017         try some better default offsets for big endian machines.
1018         print what the conversion is so i can see what it should be if im wrong though
1019
1020         * render/color.c:
1021         used RrColorShift when RrColorOffset was what we wanted
1022
1023         * configure.ac, kernel/Makefile.am, render/Makefile.am, render/color.c, render/color.h, render/gradient.c, render/instance.c, render/instance.h, render/render.c, render/render.h:
1024         use the gdk-pixbuf-xlib library to render with
1025
1026         * configure.ac: coment the USE_LIBSN defined variable
1027
1028 2003-07-02  xor@zed.orodu.net  <xor@zed>
1029
1030         * kernel/stacking.c:
1031         rename the raise and lower functions. raise is claimed by signal.h already
1032
1033 2003-06-30  xor@zed.orodu.net  <xor@zed>
1034
1035         * kernel/dock.c: set te strut smaller when autohide is on
1036
1037 2003-06-30  woodblock  <woodblock@zed>
1038
1039         * kernel/event.c:
1040         Makes a simple click not so accidently annoying by making it not
1041         execute a menu action if nothing is highlighted.
1042
1043 2003-06-30  xor@zed.orodu.net  <xor@zed>
1044
1045         * kernel/extensions.c:
1046         messed up the indexes while finding the combined size of all xineerama heads
1047
1048         * kernel/extensions.c: oops, i want the max edges to find the full area
1049
1050         * CHANGELOG, ChangeLog: using a changelog generated off of CVS
1051
1052 2003-06-30  woodblock  <woodblock@zed>
1053
1054         * plugins/menu/Makefile.am:
1055         Remove menu plugins because they are stupid and don't work.
1056
1057 2003-06-29  xor@zed.orodu.net  <xor@zed>
1058
1059         * kernel/prop.c:
1060         the prop_get_strings_locale function looked for a utf8 typed property
1061
1062         * kernel/focus.c, kernel/openbox.c, kernel/stacking.c:
1063         add some comments and asserts to make sure I don't ever add this bug again
1064
1065         * kernel/popup.c:
1066         create the popup's window before adding it to the stacking list, so that it is stacked properly and doesnt wreck everything
1067
1068         * Makefile.am, configure.ac, data/Makefile.am, kernel/Makefile.am, parser/Makefile.am, plugins/Makefile.am, plugins/keyboard/Makefile.am, plugins/menu/Makefile.am, plugins/mouse/Makefile.am, plugins/placement/Makefile.am, plugins/resistance/Makefile.am, render/Makefile.am, themes/Makefile.am, themes/ebox_data/Makefile.am, themes/fieron2_data/Makefile.am, themes/fieron_data/Makefile.am, tools/obconf/Makefile.am:
1069         prepare for alpha1 release.
1070         make 'make dist' work.
1071
1072         * m4/.cvsignore, m4/Makefile.am:
1073         add a makefile so i can put stuff into the make dist
1074
1075         * m4/python.m4: python support is gone
1076
1077         * po/POTFILES.in:
1078         we dont really have any translatable stuff yet but this was pointing at old cpp shit
1079
1080         * plugins/placement/history.c:
1081         use strcmp instead of collate, since collate is slower and we're only doing an == check
1082
1083         * plugins/keyboard/keyparse.c, plugins/keyboard/keyparse.h:
1084         these are old and not used anymore
1085
1086         * render/gradient.c:
1087         missed setting 'current' at the end of the pyramid gradient
1088
1089         * kernel/stacking.c:
1090         waste of energy in stacking_add, and it even caused bugs. woops.
1091
1092 2003-06-29  xor@zed  <xor@zed>
1093
1094         * kernel/stacking.c:
1095         waste of energy in stacking_add, and it even caused bugs. woops.
1096
1097 2003-06-29  woodblock  <woodblock@zed>
1098
1099         * plugins/menu/client_menu.c:
1100         Update the send-to window only if the workspaces have changed.
1101
1102         * kernel/menu.c, kernel/menu_render.c:
1103         Handle menu events a little better: don't bother updating a submenu on
1104         mouseover if it is already open, and call update on menus, even if
1105         they aren't marked as invalid.
1106
1107 2003-06-28  xor@zed  <xor@zed>
1108
1109         * kernel/openbox.c:
1110         use fprintf not g_message in the signal handler. no mallocing allowed.
1111
1112         * render/font.c: remove debug print
1113
1114         * kernel/prop.c: set the values of the array at teh right indexes
1115
1116         * kernel/prop.c: fix memory bugs
1117
1118         * data/rc3: remove the switch to... menu
1119
1120         * render/font.c:
1121         don't destroy font patterns, i think this is a double free
1122
1123         * kernel/stacking.c:
1124         put group members above the window when lowering it
1125
1126         * kernel/stacking.c: set the stacking list when stacking changes
1127
1128         * themes/ebox_data/.cvsignore, themes/fieron2_data/.cvsignore, themes/fieron_data/.cvsignore:
1129         ignore the generated makefiles
1130
1131         * themes/ebox_data/Makefile.am, themes/fieron2_data/Makefile.am, themes/fieron_data/Makefile.am:
1132         add the makefiles for the themes' data dirs
1133
1134         * render/theme.h:
1135         add the themes path to the struct. make the name never include a path
1136
1137         * configure.ac, themes/Makefile.am, themes/ebox_data/close.xbm, themes/ebox_data/iconify.xbm, themes/ebox_data/max.xbm, themes/fieron2_data/close.xbm, themes/fieron2_data/iconify.xbm, themes/fieron2_data/max.xbm, themes/fieron2_data/stick.xbm, themes/fieron_data/close.xbm, themes/fieron_data/iconify.xbm, themes/fieron_data/max.xbm, themes/fieron_data/stick.xbm:
1138         adjust the themes with buttons to match how they are read now
1139
1140         * AUTHORS: simplify this shit
1141
1142         * render/theme.c: hardcode the button names for themes
1143
1144         * kernel/popup.c: dont need to raise after adding
1145
1146         * render/theme.c: rename the button_dir var to data_dir.. pointless :>
1147
1148         * plugins/resistance/resistance.c:
1149         snap to all heads the window is present on
1150
1151 2003-06-27  xor@zed  <xor@zed>
1152
1153         * kernel/Makefile.am: build 'openbox' instead of 'openbox3'.
1154         add the openbox.desktop file for gnome compat.
1155
1156         * kernel/screen.c: set "Openbox" as the name no "Openbox3"
1157
1158         * kernel/openbox.desktop:
1159         add a .desktop file which gets installed for gnome
1160
1161         * kernel/.cvsignore: add the openbox binary
1162
1163         * kernel/openbox.c: add a call to g_set_prgname
1164
1165         * kernel/stacking.c:
1166         stacking changes, its more like the old code without being shitty and with support for raising groups at a time.
1167
1168         * kernel/stacking.c: core when the list gets out of order
1169
1170         * kernel/client.c, kernel/client.h, kernel/dock.c, kernel/extensions.c, kernel/extensions.h, kernel/focus.c, kernel/geom.h, kernel/menu.c, kernel/menu.h, kernel/moveresize.c, kernel/screen.c, kernel/screen.h, plugins/menu/client_menu.c, plugins/placement/placement.c, plugins/resistance/resistance.c:
1171         xinerama support
1172
1173         * data/rc3: root menu on right click
1174
1175         * kernel/event.c: 4 space indents
1176
1177 2003-06-26  xor@zed  <xor@zed>
1178
1179         * kernel/grab.c:
1180         return true when ungrabbing so that it can ungrab them all on shutdown
1181
1182         * kernel/grab.c:
1183         set ret to true when grabbing and we alerady have it grabbed
1184
1185         * render/font.c:
1186         dont destroy the match pattern, it seems that Xft holds onto the pointer
1187
1188         * kernel/client.c:
1189         check that extensions_vidmode is set before trying to use the vidmode functions
1190
1191         * plugins/keyboard/keyboard.c: if grab fails dont set grabbed_key
1192
1193         * kernel/grab.c, kernel/grab.h: return FALSE if a grab fails
1194
1195         * kernel/client.c:
1196         set the desktop hint when the window already has a hint but its out of range
1197
1198         * kernel/event.c: clear the over item in the menu when executing shit
1199
1200         * kernel/stacking.h:
1201         add NUM_STACKLAYER, fix some comments that dont apply
1202
1203         * kernel/menu.c: remove unused variable
1204
1205         * kernel/client.c:
1206         remove/add instead of raising to put a window into a new layer
1207
1208         * kernel/stacking.c:
1209         new stacking code that doesnt suck ass to look at, woot
1210
1211         * kernel/dock.c:
1212         use the minsize to keep the stuff ni the dock off of the bevel edges etc
1213
1214         * render/theme.c: add comment
1215
1216         * render/font.c, render/font.h, render/render.c, render/render.h, render/theme.c, render/theme.h:
1217         read fonts and titlebar layout from theme files
1218
1219 2003-06-25  xor@zed  <xor@zed>
1220
1221         * data/rc3: add right click on icon to open the client menu
1222
1223         * render/font.c: set teh X so it gets used right
1224
1225         * render/font.c:
1226         keep a small space on the sides of windows between the edge and the text
1227
1228         * kernel/event.c: only render if there was an over existing
1229
1230         * kernel/event.c, kernel/menu.c, kernel/menu.h, kernel/menu_render.c:
1231         menus grab the keyboard and pointer, thus making only one menu visible at a time, and making them act like gtk menus and * menus do, where you can click and drag and release to select something as well as click-release to elave it open while you search around the menu
1232
1233         * data/rc3: show the client meun on "press" on the icon
1234
1235         * plugins/menu/client_menu.c:
1236         use the stock shownig method for the client menu for now, makes it pop up under the cursor so a click-release works like expected
1237
1238         * plugins/mouse/mouse.c:
1239         use the alst button press for clicks instead of teh fisrt. it make sno diff to me really and this makes it work when you grab the pointer on the click, without leaving the mouse plugin in a weird state.
1240
1241         * kernel/grab.c: grab all motion events for pointer grabs
1242
1243 2003-06-24  xor@zed  <xor@zed>
1244
1245         * kernel/menu.c: position submenus correctly horizontally
1246
1247         * kernel/menu_render.c: menus were too short by a border width
1248
1249         * kernel/client.c:
1250         check to make sure the window is on screen *after* positioning it
1251
1252         * render/gradient.c: do horz grads without any multipliaction
1253
1254         * render/gradient.c, render/render.h, render/test.c, render/theme.c:
1255         made all the gradients work with integer math. removed the pipecross and rectangle gradietns tho cuz they are ugly and i dont want to code that bullshit cuz they are ugly.
1256
1257         * render/gradient.c, render/test.c:
1258         integer math for gradients. horz vert and diags and pipecross work so far.
1259
1260 2003-06-22  xor@zed  <xor@zed>
1261
1262         * kernel/menu.c, kernel/menu_render.c: add a simple menu parser.
1263         while menu parsing, the theme does not exist so we can't do any theme stuff while creating menu stuff, so put that off for later, i.e when the menu is shown.
1264
1265         * kernel/openbox.c: reorder startup so menu goes before config parsing
1266
1267         * data/rc3: add a root menu
1268
1269 2003-06-21  xor@zed  <xor@zed>
1270
1271         * kernel/client.c, kernel/frame.c, kernel/frame.h:
1272         add decoration state to the frame struct. make client_configure adjust the frame if the decorations do not match between the client and the frame, so that when they change it can send a configurenotify to the client.
1273
1274         * kernel/client.c:
1275         make client_reconfigure a non-user-type client_configure
1276
1277         * kernel/action.c:
1278         strdup the exec path cuz it gets freed by the time we restart otherwise
1279
1280         * kernel/event.c: moveresize messages are not user-requests
1281
1282         * kernel/client.c: remove debug print
1283
1284         * kernel/client.c:
1285         send teh configure event to client on user-requested final configures even if not moved, cuz usualy the final isnt sent with a change, but just to end the move process.
1286
1287         * render/render.c:
1288         always create the bg pixmap, X seems to not like it if i dont?
1289
1290         * kernel/openbox.c:
1291         always use the session id from the session manager when setting the restart property
1292
1293         * kernel/openbox.c: add -sm-disable option
1294
1295         * kernel/openbox.c:
1296         only show -sm-client-id in the help when session management is build in
1297
1298         * kernel/openbox.c:
1299         session management works, and it can resume with its old ID, so it works with gnome-session
1300
1301         * configure.ac, kernel/Makefile.am, kernel/event.c, kernel/openbox.c, m4/x11.m4:
1302         make session management optional
1303
1304         * kernel/openbox.c:
1305         set the required properties so that session managers see openbox
1306
1307         * render/font.c, render/theme.c:
1308         don't exit in the render lib, rather return a NULL font/theme on failure
1309
1310         * kernel/event.c, kernel/openbox.c:
1311         add libSM *client* support, so we should work with gnome-session now!
1312
1313         * render/instance.c, render/render.c: more namespacing with Rr*
1314
1315         * render/color.c: use the pseudo shit in the instance now
1316
1317         * render/gradient.c, render/gradient.h, render/render.c, render/color.c, render/color.h:
1318         more namespacing with Rr*
1319
1320         * plugins/keyboard/translate.c, plugins/mouse/translate.c:
1321         dont use .. in include paths
1322
1323         * render/image.c, render/image.h, render/render.c, kernel/client.c, kernel/screen.c, render/color.c, render/color.h, render/font.c, render/gradient.c, render/render.h, render/theme.h:
1324         more namespacing with Rr*
1325
1326         * kernel/menu.h, kernel/menu.c: kill a warning
1327
1328         * kernel/openbox.c, render/font.c, render/font.h, render/render.c, render/render.h, render/theme.c, render/theme.h:
1329         more namespacing to Rr*
1330
1331         * kernel/menu.c: fix a warning
1332
1333         * kernel/client.c, kernel/client.h, render/color.c, render/color.h, render/gradient.c, render/gradient.h, render/image.c, render/image.h, render/render.c, render/render.h:
1334         rename pixel32/16 to RrPixel32/16
1335
1336         * render/color.c, render/color.h, render/render.h, render/theme.c, render/theme.h:
1337         rename color_rgb to RrColor
1338
1339         * kernel/dock.c, kernel/frame.c, kernel/framerender.c, kernel/menu.c, kernel/menu_render.c, kernel/moveresize.c, kernel/openbox.c, kernel/openbox.h, kernel/popup.c, plugins/menu/client_menu.c, render/font.c, render/font.h, render/theme.c, render/theme.h:
1340         put the render theme into a struct
1341
1342         * kernel/client.c, kernel/dock.c, kernel/dock.h, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/menu.c, kernel/menu.h, kernel/menu_render.c, kernel/moveresize.c, kernel/openbox.c, kernel/openbox.h, kernel/popup.c, kernel/screen.c:
1343         fixed to accomodate the changes to the render/ API.
1344
1345 2003-06-20  xor@zed  <xor@zed>
1346
1347         * render/.cvsignore, render/Makefile.am, render/color.c, render/color.h, render/font.c, render/font.h, render/gradient.c, render/gradient.h, render/image.c, render/image.h, render/instance.c, render/instance.h, render/mask.c, render/mask.h, render/render.c, render/render.h, render/test.c, render/theme.c, render/theme.h:
1348         this is going to break the kernel/ building.
1349
1350         lots of modifications to the render API, prefixing everything, making proper
1351         names for everything. the structures are not hidden/opaque yet, but the naming scheme of the public API works much better now.
1352
1353         * render/font.c: oops typo
1354
1355         * render/font.c:
1356         take the bevel width into account for the width available
1357
1358         * plugins/menu/client_menu.c: position the client menu right
1359
1360         * kernel/dock.c, kernel/frame.c, kernel/framerender.c, kernel/menu_render.c, kernel/popup.c, plugins/menu/client_menu.c, render/font.c, render/gradient.c, render/image.c, render/image.h, render/render.c, render/render.h, render/test.c, render/theme.c, render/theme.h:
1361         simply the render interface by not requiring the setting of all the areas. only take a w and h in paint(). best font layout ever.
1362
1363         * AUTHORS: miklos does themes like mad
1364
1365         * render/gradient.c:
1366         slight optimizations, and make the last 4 gradients work properly
1367
1368         * render/font.c:
1369         center text vertically. use the font's height because all that space is needed for some charcters
1370
1371         * kernel/frame.c, kernel/framerender.c, kernel/menu_render.c, kernel/popup.c, kernel/screen.c, render/gradient.c, render/render.c, render/render.h, render/test.c, render/theme.c:
1372         remove non-planar surfaces
1373
1374 2003-06-19  xor@zed  <xor@zed>
1375
1376         * configure.ac, m4/gl.m4: remove --enable-gl
1377
1378         * kernel/client.c:
1379         fix for how base-size is used to comply with the icccm
1380
1381 2003-06-18  xor@zed  <xor@zed>
1382
1383         * kernel/framerender.c: copy the frame's surface from the prototype
1384
1385 2003-06-17  xor@zed  <xor@zed>
1386
1387         * bootstrap: export the WANT_AUTOMAKE var before running acloacl
1388
1389 2003-06-17  manmower  <manmower@zed>
1390
1391         * kernel/client.c: wake up old icon grabbing code
1392
1393         * render/color.c: remove unneeded/uncompiled junk
1394
1395 2003-06-09  manmower  <manmower@zed>
1396
1397         * kernel/client.c: try swapping bytes on textures
1398
1399         * kernel/client.c: | != &
1400
1401         * kernel/client.c: fix? color on icons
1402
1403         * kernel/client.c: remove bogus byte permutations in icon code
1404
1405 2003-06-08  xor@zed  <xor@zed>
1406
1407         * kernel/focus.c:
1408         remove an extra useless call to focus_set_client(NULL)
1409
1410         * kernel/client.c: describe the complicated if a bit :)
1411
1412         * kernel/client.c: more checks for when to do an XResizeWindow
1413
1414         * kernel/client.c:
1415         send the configure notify for resizes too, just to be a little more safe
1416
1417         * kernel/client.c:
1418         onlt send configurenotify if the client actually moved, to work around emacs, hopefully :)
1419
1420         * kernel/client.c:
1421         some more fixes for resizing clients. aspect ratio is not the last thing checked and so rules all, that might need to change.. however, it now uses base-size only for aspect ratios and base-size/min-size for other sizing shit, as per the ICCCM.
1422
1423         * kernel/client.c: from icccm:
1424         If a base size is not provided, the minimum size is to be used in its place and vice versa.
1425
1426         Added support for this.
1427
1428         * kernel/frame.c: missing another bwidth
1429
1430         * kernel/frame.c: position titlebars better, was missing a bwidth
1431
1432         * kernel/client.c: i was backwards
1433
1434         * kernel/event.c: this cnofigure is FINAL!
1435
1436         * kernel/client.c:
1437         don't resize the client itself while doing a resize if its not final when config_opaque_resize is not on
1438
1439 2003-06-04  xor@zed  <xor@zed>
1440
1441         * kernel/client.c:
1442         better VIDMODE support, handle the cases where the functions fail
1443
1444         * kernel/client.c:
1445         size fullscreen applications to the resolution with the VIDMODE extension
1446
1447         * kernel/client.c, kernel/client.h, kernel/screen.c:
1448         remove the client_remaximize function, and replace it with the client_reconfigure function, which just calls client_configure with the window's current location and dimensions, user=TRUE and final=TRUE.
1449
1450         add support for the VIDMODE extension in client_configure, namely, fullscreen windows are positioned at the point of the viewport rather than at 0,0.
1451         call client_reconfigure when uniconifying a window, so that fullscreen windows are put at the point of the view port.
1452
1453         * data/rc3, plugins/mouse/mouse.c, plugins/mouse/mouse.h, plugins/mouse/translate.c:
1454         remove that fancy new leftHanded option, it should be done via xmodmap instead
1455
1456         * data/rc3, plugins/mouse/mouse.c, plugins/mouse/mouse.h, plugins/mouse/translate.c:
1457         add a leftHanded option for mouse bindings, reverses the left/right keywords
1458
1459         * kernel/grab.c, kernel/grab.h:
1460         make key grabbing per window instead of always root
1461
1462         * plugins/keyboard/keyboard.c:
1463         grab bindings on each client's frame (and the focus_backup) instead of on the root window
1464
1465         * kernel/focus.c: allow cycling to iconic windows
1466
1467         * kernel/client.c:
1468         use client_can_focus from client_focus to always get the same result
1469
1470         * kernel/client.c, kernel/client.h, kernel/focus.c:
1471         reverting the transient focus cycle change, its just not.. right. add the parent's title to the transient's for the popup instead of just relpacing it
1472
1473         * kernel/focus.c:
1474         better focus cycling for transients. use the parent instead of the transients in the list in case it has more than one, then after choosing it try focus a transient instead
1475
1476         * kernel/focus.c:
1477         dont try change focus while looping thru the focus list
1478
1479         * kernel/client.c, kernel/client.h, kernel/focus.c:
1480         allow focus_fallback to query if a client can be focused without changing the focus order on it
1481
1482         * plugins/keyboard/keyboard.c:
1483         grab the keybaord before cycling focus for reduced latency
1484
1485 2003-06-03  xor@zed  <xor@zed>
1486
1487         * kernel/event.c, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/popup.c:
1488         modifications to keep up with libobrender2
1489
1490         * kernel/popup.c: use theme stuff for the gfx/font
1491
1492         * kernel/frame.c: layout fixes
1493
1494         * kernel/frame.c: position the grips
1495
1496         * kernel/framerender.c: fix some theme colors/display
1497
1498         * kernel/Makefile.am, kernel/client.c, kernel/client.h, kernel/dock.c, kernel/dock.h, kernel/event.c, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/menu.c, kernel/menu.h, kernel/menu_render.c, kernel/moveresize.c, kernel/openbox.c, kernel/openbox.h, kernel/popup.c, kernel/screen.c, kernel/window.c, m4/gl.m4, plugins/menu/client_menu.c, render/.cvsignore, render/Makefile.am, render/color.h, render/font.c, render/font.h, render/gradient.c, render/gradient.h, render/image.c, render/image.h, render/mask.c, render/mask.h, render/render.c, render/render.h, render/test.c, render/theme.c, render/theme.h, COPYING, COPYING.FDL, COPYING.GPL, COPYING.LGPL, Makefile.am, README, configure.ac:
1499         the kernel is using th gl shit to render itself, but with the old style frame shit here. in practice, the render and glft libraries needed some changes to be used better, these are incorporated.
1500
1501         * kernel/stacking.c: remove debug print
1502
1503         * render/color.c:
1504         more unique error for unhandles image bit depths, remove debug prints
1505
1506         * render/color.c: handle increase_depth on 1bpp images
1507
1508         * kernel/client.c:
1509         ignore xerrors while using the pixmaps specified by the client, since they can certainly be invalid and there's nothing i can do about it.
1510
1511         * kernel/client.c: rm g_messages.. ones that segfault.. :>
1512
1513 2003-06-02  xor@zed  <xor@zed>
1514
1515         * kernel/client.c: also dont increment the nicons if the w*h is 0
1516
1517         * kernel/client.c: watch out for 0x0 icons, and skip them
1518
1519         * kernel/menu_render.c, kernel/popup.c:
1520         create some temporary fonts to use for rendering text
1521
1522         * kernel/frame.c, kernel/menu_render.c, kernel/popup.c:
1523         set colors for text
1524
1525         * kernel/frame.c, kernel/popup.c:
1526         adjust for some api extensions in render2
1527
1528         * bootstrap: add env var to get automake 1.7
1529
1530 2003-06-01  xor@zed  <xor@zed>
1531
1532         * COPYING, COPYING.FDL, COPYING.GPL, COPYING.LGPL, Makefile.am, README, configure.ac, kernel/Makefile.am, kernel/client.c, kernel/client.h, kernel/dock.c, kernel/dock.h, kernel/event.c, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/menu.c, kernel/menu.h, kernel/menu_render.c, kernel/moveresize.c, kernel/openbox.c, kernel/openbox.h, kernel/popup.c, kernel/screen.c, kernel/window.c, kernel/window.h, m4/gl.m4, plugins/menu/client_menu.c, render/.cvsignore, render/Makefile.am, render/color.c, render/color.h, render/font.c, render/font.h, render/gradient.c, render/gradient.h, render/image.c, render/image.h, render/mask.c, render/mask.h, render/render.c, render/render.h, render/test.c, render/theme.c, render/theme.h:
1533         Merging in th gl2 branch. Adding a --enable-gl option to the configure script, which defaults off.
1534
1535 2003-05-30  manmower  <manmower@zed>
1536
1537         * kernel/frame.c: adjust title bar text
1538
1539 2003-05-30  xor@zed  <xor@zed>
1540
1541         * kernel/client.c:
1542         adjust what gets raised on map a bit, a little less selective.
1543
1544 2003-05-30  manmower  <manmower@zed>
1545
1546         * kernel/frame.c: add some test cases for the font crap
1547
1548 2003-05-29  xor@zed  <xor@zed>
1549
1550         * m4/openbox.m4: better alpha/beta check :)
1551
1552         * m4/openbox.m4: look for 'alpha' and 'beta' releases also
1553
1554         * kernel/stacking.c:
1555         only add non-nonintrusively when both windows share a stacking layer
1556
1557         * data/rc3: raise on client clicks
1558
1559 2003-05-28  xor@zed  <xor@zed>
1560
1561         * COPYING: remove the generic COPYING
1562
1563         * COPYING.FDL, COPYING.GPL, COPYING.LGPL: New file.
1564
1565         * COPYING.FDL, COPYING.GPL, COPYING.LGPL, README:
1566         specify different licenses for different directories
1567
1568         * kernel/action.c, kernel/action.h:
1569         rm the 'focusraise' action, it is redundant.
1570
1571         * kernel/frame.c: use the new shape API from the render libs
1572
1573         * kernel/event.c:
1574         pass expose events like i was before. cleanups in rendering to not render areas anymore. pass the surface's absx/y to planar's paint func
1575
1576         * kernel/frame.c:
1577         no button mask on the plate, and some cleanups with redundant if's
1578
1579 2003-05-28  manmower  <manmower@zed>
1580
1581         * kernel/frame.c: slightly improved theme
1582
1583 2003-05-28  xor@zed  <xor@zed>
1584
1585         * kernel/popup.c: proper centering of the text in popups without icons
1586
1587 2003-05-27  manmower  <manmower@zed>
1588
1589         * kernel/frame.c, kernel/frame.h: fixed the flicker in shape
1590         (we use a shapewindow now.  it rules, I rule, fuck X, blah blah MOOOOOOO)
1591
1592 2003-05-27  xor@zed  <xor@zed>
1593
1594         * kernel/frame.c: and typod
1595
1596         * kernel/frame.c, kernel/frame.h:
1597         some cleanups, got rid of the border shit
1598
1599         * kernel/event.c: toss out expose events to render
1600
1601         * kernel/popup.c: no more seg
1602
1603         * kernel/frame.c, kernel/frame.h: some cleanups
1604
1605 2003-05-27  manmower  <manmower@zed>
1606
1607         * kernel/frame.c: free decor when removing frame
1608
1609         * kernel/frame.c: HOW DO YOU LIKE MY SEXY NEW DECOR?!?
1610
1611         * kernel/frame.c: I get my events on decor again
1612         and probably ruined exposure for some weird case. bwa ha ha
1613
1614         * kernel/frame.c, kernel/frame.h: how about some UGLY decor!
1615
1616 2003-05-27  xor@zed  <xor@zed>
1617
1618         * kernel/popup.c: paints are now recursive
1619
1620 2003-05-27  manmower  <manmower@zed>
1621
1622         * kernel/frame.h: surface pointer please
1623
1624 2003-05-27  xor@zed  <xor@zed>
1625
1626         * kernel/popup.c: proper layout
1627
1628         * kernel/popup.c: i suck so much
1629
1630         * kernel/event.c, kernel/menu.c, kernel/popup.c: DRAWS!!
1631
1632 2003-05-27  manmower  <manmower@zed>
1633
1634         * kernel/frame.c, kernel/frame.h: added shape support for decor
1635
1636 2003-05-27  xor@zed  <xor@zed>
1637
1638         * kernel/popup.c: dont try use an icon when where isnt one
1639
1640         * kernel/client.c, kernel/client.h, kernel/dock.c, kernel/dock.h, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/menu.c, kernel/menu.h, kernel/menu_render.c, kernel/moveresize.c, kernel/openbox.c, kernel/openbox.h, kernel/popup.c, kernel/screen.c, kernel/window.c, plugins/menu/client_menu.c:
1641         port to the new render stuff.. but this isnt complte since we don't have themes yet.
1642
1643         * Makefile.am, configure.ac, render/.cvsignore, render/Makefile.am, render/color.c, render/color.h, render/font.c, render/font.h, render/gradient.c, render/gradient.h, render/image.c, render/image.h, render/mask.c, render/mask.h, render/render.c, render/render.h, render/test.c, render/theme.c, render/theme.h:
1644         removing the old render stuffs
1645
1646 2003-05-27  manmower  <manmower@zed>
1647
1648         * kernel/frame.c, kernel/frame.h: added % based decoration sizes
1649
1650         * kernel/frame.c, kernel/frame.h: fixed right decor anchors properly
1651
1652         * kernel/frame.c: fix right anchor point offsets
1653
1654         * kernel/frame.c: position windows for all anchor types
1655
1656         * kernel/frame.c: all decor anchors supported
1657
1658         * kernel/event.c, kernel/frame.c:
1659         change event.c to use a frame pointer instead of client pointer in framedecor
1660         frame.c now supports more decor anchors
1661
1662         yay for 1 to many commit logs
1663
1664 2003-05-26  xor@zed  <xor@zed>
1665
1666         * kernel/Makefile.am: link render version 2
1667
1668 2003-05-26  manmower  <manmower@zed>
1669
1670         * kernel/frame.c, kernel/frame.h:
1671         frame pointer in framedecor instead of client pointer
1672
1673 2003-05-26  xor@zed  <xor@zed>
1674
1675         * kernel/event.c, kernel/window.c: add case for Window_Decoration
1676
1677 2003-05-26  manmower  <manmower@zed>
1678
1679         * kernel/frame.c, kernel/frame.h: client pointer in framedecor
1680
1681         * kernel/frame.c: crap
1682
1683         * kernel/frame.c, kernel/frame.h:
1684         I can now map arbitrarily sized invalid space above my windows!
1685         I suck.
1686
1687         * kernel/frame.c:
1688         we now have no decor at all, but are otherwise functional
1689
1690 2003-05-26  xor@zed  <xor@zed>
1691
1692         * kernel/client.c:
1693         use frame->visible, not the desktop number, other states exist too, like show_desktop
1694
1695         * plugins/menu/client_menu.c, kernel/dock.c, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/menu.c, kernel/popup.c, kernel/screen.c, kernel/window.h:
1696         merge in the changes made in the gl branch
1697
1698         * Makefile.am, configure.ac:
1699         create the glft library. it will be using freetype and fontconfig to render fonts in GL.
1700         flesh out render2 a bit more.. actually just in comments
1701
1702         * Makefile.am, configure.ac:
1703         add a new render2 lib, which has a proper API and uses only OpenGL to render.
1704
1705         * render/render.c: remove GL from the old render lib for now
1706
1707         * configure.ac, m4/gl.m4:
1708         gl support in configure, fontconfig instead of xft
1709
1710 2003-05-26  manmower  <manmower@zed>
1711
1712         * kernel/frame.c: add back some frame adjust stuff
1713
1714         * kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/window.h, plugins/menu/client_menu.c:
1715         complete destruction of all current frame functionality.
1716         you're welcome.
1717
1718 2003-05-25  manmower  <manmower@zed>
1719
1720         * render/gradient.c, render/mask.c, render/render.c, render/render.h, render/test.c, render/theme.c, render/theme.h, kernel/dock.c, kernel/frame.c, kernel/framerender.c, kernel/menu.c, kernel/popup.c, kernel/screen.c, render/color.c, render/color.h:
1721         everything compiles.  everything is broken.
1722
1723         rendertest works, yay.
1724
1725         * render/render.c: now it even links.
1726
1727         * render/font.c, render/font.h, render/gradient.c, render/gradient.h, render/render.c, render/render.h:
1728         once again it compiles.
1729
1730         no, it does not work
1731
1732         much has been removed.
1733
1734 2003-05-25  xor@zed  <xor@zed>
1735
1736         * configure.ac, m4/gl.m4:
1737         right branch. no more xft. fontconfig. gl. woot.
1738
1739         * configure.ac, m4/gl.m4: omg wrong branch!
1740
1741         * configure.ac, m4/gl.m4: always gl. fontconfig instead of xft.
1742
1743 2003-05-25  manmower  <manmower@zed>
1744
1745         * render/gradient.c: gl.h shouldn't be required when not enabling gl
1746
1747 2003-05-25  xor@zed  <xor@zed>
1748
1749         * README.CVS: add the glade/gtk deps for debian
1750
1751 2003-05-25  manmower  <manmower@zed>
1752
1753         * render/gradient.c, render/test.c: all grads done
1754
1755         * render/gradient.c, render/test.c: pipecross
1756
1757         * render/gradient.c, render/test.c: rectangle and diagonal grads yay
1758
1759         gl > *
1760
1761 2003-05-25  xor@zed  <xor@zed>
1762
1763         * data/rc3: Shade not Shaded
1764
1765         * README.CVS: add debian package list
1766
1767         * README.CVS: automake 1.7
1768
1769         * README.CVS: mention glib, xml, gtk and glade
1770
1771         * configure.ac:
1772         make autoconf 2.54 required. makes automake1.6 get used on some systems
1773
1774 2003-05-25  manmower  <manmower@zed>
1775
1776         * render/gradient.c, render/gradient.h, render/render.c, render/render.h, render/test.c:
1777         gl is starting.  it's gonna get really ugly really fast, folks
1778
1779 2003-05-24  xor@zed  <xor@zed>
1780
1781         * Makefile.am, configure.ac, kernel/Makefile.am, kernel/action.c, kernel/action.h, kernel/config.c, kernel/focus.c, kernel/openbox.c, kernel/parse.c, kernel/parse.h, kernel/plugin.c, parser/.cvsignore, parser/Makefile.am, parser/parse.c, parser/parse.h, plugins/Makefile.am, plugins/interface.h, plugins/keyboard/keyboard.c, plugins/menu/Makefile.am, plugins/mouse/mouse.c, plugins/obconf_interface.h, plugins/placement/history.c, plugins/placement/placement.c, plugins/resistance.c, plugins/resistance/.cvsignore, plugins/resistance/Makefile.am, plugins/resistance/resistance.c, plugins/resistance/resistance.glade, plugins/resistance/resistance.gladep, plugins/resistance/resistance.h, plugins/resistance/resistance_config.c, tools/.cvsignore, tools/Makefile.am, tools/obconf/.cvsignore, tools/obconf/Makefile.am, tools/obconf/about.c, tools/obconf/main.c, tools/obconf/obconf.glade, tools/obconf/obconf.gladep, tools/obconf/obconf.h, tools/obconf/plugins.c, tools/obconf/plugins.h:
1782         this is a big one! im putting stats in here just cuz!
1783          59 files changed, 1691 insertions(+), 607 deletions(-)
1784         Adding the beginings of ObConf. Adding a resistance-config plugin for ObConf.
1785         Creating an obparser library that obrender can use, the kernel can use, plugins can use, and ObConf and its plugins can use. (its just code for using libXml2)
1786
1787         * kernel/action.c: convert shit from utf8 to filename before execing it
1788
1789         * configure.ac, data/rc3, kernel/Makefile.am, kernel/config.c, kernel/openbox.c, kernel/parse.c, kernel/parse.h, kernel/parse.l, kernel/parse.y, plugins/Makefile.am, plugins/keyboard/Makefile.am, plugins/keyboard/keyboard.c, plugins/mouse/Makefile.am, plugins/mouse/mouse.c, plugins/placement/Makefile.am, plugins/placement/history.c, plugins/placement/history.h, plugins/placement/placement.c, plugins/resistance.c:
1790         ECKS EM ELL
1791
1792         * plugins/menu/client_menu.c:
1793         let the client menu open below the top of the window, just limit it at the titlebar
1794
1795         * kernel/action.c, kernel/action.h: add actions for showing the desktop
1796
1797         * kernel/action.c, kernel/action.h: soem changes to desktop actions.
1798         instead of having *wrap actions, just default to having wrap on, and let it be optionally placed into the rc to disable it.
1799         instead of next/prev desktop, just have actions for desktop to the right/left/up/down. this applies to sendtodesktop actions too.
1800
1801         * kernel/focus.c: add a DEBUG_FOCUS print
1802
1803         * kernel/event.c:
1804         there's this case where we DONT want to ignore both events or we end up without anything we know of being focused, even tho something is. this case is now covered. ps i hate focus so much.
1805
1806         * kernel/client.c: use the user friendly desktop number
1807
1808         * kernel/focus.c: clarify comment
1809
1810 2003-05-23  xor@zed  <xor@zed>
1811
1812         * kernel/event.c:
1813         dont refocus the focused window, that just causes so many problems (with alt-tab :)
1814
1815         * kernel/prop.c: validate utf8 strings before using them
1816
1817 2003-05-23  woodblock  <woodblock@zed>
1818
1819         * plugins/menu/fifo_menu.c: Fixed missing includes
1820
1821 2003-05-23  xor@zed  <xor@zed>
1822
1823         * configure.ac, kernel/Makefile.am, m4/gl.m4, plugins/Makefile.am, plugins/keyboard/Makefile.am, plugins/mouse/Makefile.am, plugins/placement/Makefile.am, render/Makefile.am:
1824         add --enable-gl support, and put the flags/libs in the appropriate makefiles
1825
1826         * kernel/focus.c: remove a todo item that seems to be.. done!
1827
1828         * kernel/focus.c:
1829         missed a case of using the stacking list and assuming that its all clients still. fixed that assumption now.
1830
1831         * kernel/event.c:
1832         ignore ancestor FocusIn events. i get them sometimes when hitting alt-tab and that totally fucks it up cuz it cancels teh alt-tab process.
1833
1834         * plugins/keyboard/keyboard.c:
1835         had some code inside the action for loop that didnt belong in there
1836
1837 2003-05-23  woodblock  <woodblock@zed>
1838
1839         * plugins/menu/client_menu.c: Add toggle decor action to client menu
1840
1841 2003-05-22  manmower  <manmower@zed>
1842
1843         * render/test.c: fix cut'n'paste bug
1844
1845 2003-05-22  xor@zed  <xor@zed>
1846
1847         * kernel/event.c: only button 1 can use menu items
1848
1849         * plugins/menu/client_menu.c: watch out for border widths
1850
1851 2003-05-22  manmower  <manmower@zed>
1852
1853         * render/render.c: removed a piece of code I suspect has never been run
1854         this is for XServers that report less than 8 bpp default visual and support
1855         8bpp or higher visuals
1856
1857         hopefully nothing is really that stupid.  we'll see.
1858
1859         * render/render.h, render/render.c:
1860         keep XVisualInfo around in preparation for opengl stuff
1861
1862 2003-05-22  xor@zed  <xor@zed>
1863
1864         * plugins/keyboard/keyboard.c: only grab C-g while in a chain
1865
1866         * plugins/menu/.cvsignore: add the client_menu stuff
1867
1868         * plugins/keyboard/keyboard.c:
1869         async key grabs to avoid race conditions with the sync stuff. there are still possible rases (yay X) but they will be much harder to hit, i expect noone will ever hit them more than once/often enuogh to realise.
1870
1871         * configure.ac:
1872         remove shit for my own makefiles that i dont need no more
1873
1874         * kernel/event.c: a missing break!
1875
1876 2003-05-22  woodblock  <woodblock@zed>
1877
1878         * kernel/menu.c, plugins/menu/client_menu.c: layers submenu on client
1879
1880 2003-05-22  xor@zed  <xor@zed>
1881
1882         * kernel/action.c, kernel/action.h, kernel/client.c, kernel/client.h:
1883         add actions for changing client layers to abov/below/normal
1884
1885         * kernel/client.c: typo
1886
1887         * kernel/plugin.c: load the client_menu by default for nowc
1888
1889 2003-05-21  woodblock  <woodblock@zed>
1890
1891         * data/rc3, kernel/client.c, kernel/event.c, kernel/menu.c, kernel/menu.h, plugins/menu/Makefile.am, plugins/menu/client_menu.c:
1892         Client menus
1893         Add "client_menu" to pluginrc to use.
1894
1895 2003-05-21  xor@zed  <xor@zed>
1896
1897         * render/font.c: optimize it a bit
1898
1899         * render/font.c:
1900         pass the number of bytes, not characters to the xft draw functions
1901
1902         * kernel/action.c, kernel/action.h: add 'movetoedge' actions
1903
1904         * kernel/screen.c: add xerror.h
1905
1906         * kernel/screen.c:
1907         Openbox3 in the WM name, FUCK OFF XINE, YA YOU HEARD ME.
1908
1909         * render/gradient.c: allocate the border_color's gc
1910
1911 2003-05-20  xor@zed  <xor@zed>
1912
1913         * render/color.c, render/render.c:
1914         put the devation back how it used to be, it aws definately no better..
1915
1916 2003-05-20  manmower  <manmower@zed>
1917
1918         * render/gradient.c:
1919         of by one error in pyramid, rectangle, and crosspipe
1920
1921 2003-05-20  xor@zed  <xor@zed>
1922
1923         * render/gradient.c: remove debug prints
1924
1925         * render/gradient.c: reindent the file....
1926         but while i'm at it:
1927           - add support for bevels/borders on solid textures.
1928           - reverse the colors in the rectangle gradient, the pipecross and pyramid
1929             ones may need to be reversed as well.
1930
1931         * render/render.c, render/render.h: remove the elliptic gradient type.
1932         add bevel light/dark colors for solid textures with bevels
1933
1934         * render/theme.c:
1935         use the rectangle gradient when the theme asks for elipse
1936
1937         * m4/openbox.m4: argh put it back right!*(
1938
1939         * m4/openbox.m4: fuck it, put it back
1940
1941         * m4/openbox.m4: smarter default debug value :)
1942
1943         * m4/openbox.m4: default debug off (for non-cvs builds!)
1944
1945         * kernel/screen.c:
1946         ignore errors when playing with application defined colormaps
1947
1948 2003-05-19  xor@zed  <xor@zed>
1949
1950         * kernel/dock.c: get the size for all the apps before positioning them
1951
1952         * kernel/dock.c:
1953         set teh dock sizes before the app uses it for positioning
1954
1955         * kernel/dock.c: center dock apps
1956
1957         * plugins/menu/.cvsignore: add fifo_menu shit
1958
1959         * kernel/action.c: use the resize increment when resizing relative
1960
1961         * kernel/action.c, kernel/action.h, kernel/client.c, kernel/client.h:
1962         2 in 1 again..
1963         a) directional focus actions
1964         b) action system changes i.e. use structs/arrays for convertings strings to actions instead of gross if-else chains
1965
1966 2003-05-18  woodblock  <woodblock@zed>
1967
1968         * kernel/menu.c, plugins/menu/Makefile.am, plugins/menu/fifo_menu.c, plugins/menu/fifo_menu.h:
1969         Added a fifo_menu plugin
1970
1971 2003-05-18  manmower  <manmower@zed>
1972
1973         * render/gradient.c, render/test.c: PipeCross
1974
1975         * render/gradient.c: there's the rect grad.  now stop bugging me :(
1976
1977         * render/gradient.c: is that a rectangle grad?  damned if I know
1978
1979 2003-05-18  xor@zed  <xor@zed>
1980
1981         * kernel/client.c, kernel/client.h, render/color.c, render/color.h, render/image.c, render/render.c, render/render.h:
1982         make icons use pixel32 data, and image_draw takes pixel32 data.
1983         client.c gets pixmap icons as a backup to netwm ones, and they are converted into pixel32 data.
1984
1985         * kernel/focus.c: include grab.h
1986
1987 2003-05-18  manmower  <manmower@zed>
1988
1989         * render/test.c: whatever, it's a junk file.
1990
1991         * render/gradient.c: change badly named offsets
1992         add stubs for rectangle and pipecross
1993
1994         * render/image.c: rename poorly named offsets
1995
1996         * render/gradient.h: add stubs for pipecross and rectangle
1997
1998         * render/color.h: fix poor naming of default offset
1999
2000         * render/color.c: fix poor naming of the default offset
2001
2002 2003-05-18  woodblock  <woodblock@zed>
2003
2004         * kernel/client.c:
2005         this is actually xor :) - fixing the focus search function to not return NULL if no valid group members exist to be a transient for
2006
2007 2003-05-18  xor@zed  <xor@zed>
2008
2009         * kernel/stacking.c:
2010         proper check to see if something was raised, the it==NULL would cause it to always return, incorrectly.
2011
2012         * kernel/client.c, kernel/client.h, kernel/event.c, kernel/stacking.c, render/render.c, render/render.h:
2013         2 in 1 deal :\
2014
2015         client.c stacking.c: fixing looping transient case for group transient windows. now a window which is transient for a group is *not* transient for any other transient windows in the group (perviously the other window had to be transient for the group to be excluded, now it can be transient for anything).
2016
2017         client.c/h event.c render.c/h: adjustnig icon handling a bit. will be converting the legacy pixmap icons into rgba data so they can be handled the same as netwm icons.
2018
2019 2003-05-18  woodblock  <woodblock@zed>
2020
2021         * HACKING: Indentation stuff
2022
2023 2003-05-18  xor@zed  <xor@zed>
2024
2025         * configure.ac: actually optional now.
2026
2027         * configure.ac: make LIBSN optional
2028
2029         * kernel/focus.c:
2030         grab the mouse during focus cycling. this removes the bug of focusing following the mouse when the popup disappears and fuck up your cycling.
2031
2032         * render/Makefile.am: need the libsn flags
2033
2034         * plugins/Makefile.am, plugins/keyboard/Makefile.am, plugins/menu/Makefile.am, plugins/mouse/Makefile.am, plugins/placement/Makefile.am:
2035         needs the libsn flags to use openbox.h now
2036
2037 2003-05-18  woodblock  <woodblock@zed>
2038
2039         * plugins/menu/timed_menu.c: Clean up on destroy.
2040
2041 2003-05-18  xor@zed  <xor@zed>
2042
2043         * configure.ac, kernel/Makefile.am, kernel/event.c, kernel/openbox.c, kernel/openbox.h, kernel/screen.c:
2044         add (optional) support for showing a busy cursor via startup notification
2045
2046 2003-05-18  woodblock  <woodblock@zed>
2047
2048         * plugins/menu/timed_menu.c: Added stat() based timed menu update.
2049         Needs parser before it is useful.
2050
2051 2003-05-17  xor@zed  <xor@zed>
2052
2053         * kernel/event.c, plugins/mouse/mouse.c:
2054         disallow drag events on title buttons.
2055         dont redraw title button when the wheel buttons are used on them.
2056
2057 2003-05-16  xor@zed  <xor@zed>
2058
2059         * kernel/client.c: print the class not the name
2060
2061         * kernel/prop.c: get all the strings!
2062
2063         * kernel/client.c, kernel/dock.c, kernel/dock.h:
2064         save the dock's class/name for future evil purposes!
2065         also print names of windows being managed/unmanaged
2066
2067         * data/rc3: discourage floating a bit, capitalize better.
2068
2069         * kernel/dock.c: FUCK dock is not an array anymore!
2070
2071         * kernel/dock.c, kernel/dock.h, kernel/screen.c:
2072         give the dock a strut and use it
2073
2074 2003-05-16  woodblock  <woodblock@zed>
2075
2076         * plugins/menu/timed_menu.c: Fixed child wait.
2077
2078 2003-05-16  xor@zed  <xor@zed>
2079
2080         * kernel/event.c: remove debug prints
2081
2082         * kernel/dock.c, kernel/dock.h, kernel/event.c:
2083         dockapps are ObWindows now.
2084         set the type when creating new dockapps.
2085
2086         * plugins/menu/timed_menu.c: add stdio.h
2087
2088         * data/rc3, kernel/Makefile.am, kernel/client.c, kernel/client.h, kernel/config.c, kernel/config.h, kernel/dock.c, kernel/dock.h, kernel/event.c, kernel/frame.c, kernel/menu.c, kernel/menu.h, kernel/openbox.c, kernel/screen.c, kernel/slit.c, kernel/slit.h, kernel/window.c, kernel/window.h:
2089         rename "Slit" to "Dock".
2090         add config options to the rc3 for the dock.
2091         create a window_map, add DockApps to the ObWindow types, use the window_map for translating windows into objects for event handling (only one lookup now) and remove the old maps (client_map, menu_map).
2092
2093         * kernel/client.c, kernel/menu.c, kernel/moveresize.c, kernel/popup.c, kernel/slit.c, kernel/stacking.c, kernel/stacking.h:
2094         add anotehr stacking_add function.
2095         make stacking_add take care of raising also.
2096         make new windows that dont get focus also not raise above the focused window.
2097
2098         * kernel/event.c: movnig shit around
2099
2100 2003-05-14  xor@zed  <xor@zed>
2101
2102         * kernel/menu.c: watch out for not loading the timed_menu plugin
2103
2104         * kernel/client.c: pass teh correct values for config notify events
2105
2106 2003-05-14  woodblock  <woodblock@zed>
2107
2108         * kernel/event.c, kernel/event.h, kernel/menu.c, plugins/menu/timed_menu.c:
2109         Added a menu to read from a pipe.
2110         File descriptors added to the event loop.
2111
2112 2003-05-12  woodblock  <woodblock@zed>
2113
2114         * kernel/event.c, kernel/event.h, kernel/menu.c, plugins/menu/timed_menu.c:
2115         woodblock's failed attempt at making pipes work
2116
2117 2003-05-11  xor@zed  <xor@zed>
2118
2119         * plugins/resistance.c: watch out for stacking_list
2120
2121         * data/rc3, kernel/config.c, kernel/config.h, kernel/moveresize.c:
2122         add opaque move/resize to the rc3
2123
2124         * kernel/stacking.c:
2125         was using the frame window in the stacking list hint
2126
2127         * kernel/event.c, kernel/menu.c, kernel/moveresize.c, kernel/popup.c, kernel/stacking.c, kernel/window.c, kernel/window.h:
2128         add internal popups n shit to the stacking list.
2129         some cleanups for the stacking order hint.
2130         add non-opaque move/resize. cant toggle it yet.
2131
2132         * kernel/menu.c: rm comment for shit i fixed
2133
2134         * TODO: updated... it sucks tho anyways
2135
2136         * kernel/screen.c:
2137         not everything in the stacking_list is a client anymore
2138
2139         * kernel/event.c, kernel/menu.c:
2140         Menus put themselves into the stacking list.
2141         Clicking on the menu (but not on an entry) will raise it.
2142
2143         * kernel/Makefile.am, kernel/action.c, kernel/client.c, kernel/client.h, kernel/config.h, kernel/event.c, kernel/focus.c, kernel/menu.c, kernel/menu.h, kernel/openbox.c, kernel/slit.c, kernel/slit.h, kernel/stacking.c, kernel/stacking.h, kernel/window.c, kernel/window.h, plugins/resistance.c:
2144         Clients Menus and Slits are all 'ObWindow's now.
2145         Stacking is done with ObWindows.
2146         Slits add themselves to the stacking order, as do clients of course.
2147         Added some macros for adding/removing to the stacking order.
2148
2149         * kernel/slit.c:
2150         garb press events so they dont break bindings... X sucks
2151
2152         * kernel/slit.c:
2153         grab button events on the slit so they dont go through to root
2154
2155         * kernel/client.c, kernel/slit.c, kernel/slit.h:
2156         use the size of the icon window for slit apps, not the client window
2157
2158         * plugins/keyboard/tree.c, plugins/menu/timed_menu.h: cleanups
2159
2160         * kernel/event.c, kernel/grab.c, kernel/grab.h, kernel/slit.c, kernel/slit.h, plugins/mouse/mouse.c:
2161         can drag slit-apps around in the slit
2162
2163 2003-05-10  xor@zed  <xor@zed>
2164
2165         * kernel/event.c, kernel/slit.c, kernel/slit.h, kernel/timer.h:
2166         add autohiding to the slit
2167
2168         * kernel/event.c, kernel/slit.c, kernel/slit.h:
2169         some slit fixes, support resizing slitapps
2170
2171         * Makefile.am, configure.ac: rm the tools dir
2172
2173         * tools/Makefile.am: rm this garbage...
2174
2175         * kernel/Makefile.am, kernel/client.c, kernel/event.c, kernel/frame.c, kernel/openbox.c, kernel/screen.c, kernel/slit.c, kernel/slit.h:
2176         add a slit to the kernel
2177
2178         * plugins/menu/.cvsignore: ignore the build shit
2179
2180         * doc/.cvsignore: add the sgml dir
2181
2182         * kernel/menu.c: make the client menu not have a title
2183
2184         * kernel/event.c:
2185         be more careful about ignoring focusin/out event pairs
2186
2187 2003-05-10  woodblock  <woodblock@zed>
2188
2189         * plugins/Makefile.am: tyop
2190
2191         * kernel/menu.c, plugins/menu/timed_menu.c:
2192         Turn off timed_menu by default
2193
2194         * kernel/menu.c, kernel/menu.h, plugins/menu/timed_menu.c:
2195         Timed menu that reads output from a process while the window is hidden
2196
2197         * kernel/event.c, kernel/menu_render.c: whitespace
2198
2199 2003-05-09  woodblock  <woodblock@zed>
2200
2201         * plugins/menu/Makefile.am, plugins/menu/Makefile.in: fixor
2202
2203 2003-05-09  xor@zed  <xor@zed>
2204
2205         * configure.ac: nice merge
2206
2207 2003-05-09  woodblock  <woodblock@zed>
2208
2209         * configure.ac, kernel/event.c, kernel/menu.c, kernel/menu.h, kernel/menu_render.c, kernel/plugin.c, kernel/plugin.h, kernel/timer.c, plugins/Makefile.am, plugins/menu/Makefile.in, plugins/menu/timed_menu.c, plugins/menu/timed_menu.h:
2210         Menu uber patch
2211         Since we have no menu parser see menu_startup() to customize
2212
2213 2003-05-09  xor@zed  <xor@zed>
2214
2215         * kernel/client.c, kernel/client.h, kernel/event.c, kernel/focus.c:
2216         add a client_activate function, use it for net_wm_active mesgs and for focus cycling.
2217
2218         * kernel/focus.c: unshade windows when you cycle focus to them
2219
2220         * kernel/openbox.c, kernel/popup.c, kernel/popup.h, tools/Makefile.am:
2221         add shit that i made in the last week!
2222
2223         * HACKING, Makefile.am, configure.ac, data/rc3, kernel/Makefile.am, kernel/client.c, kernel/client.h, kernel/config.c, kernel/config.h, kernel/event.c, kernel/extensions.c, kernel/extensions.h, kernel/focus.c, kernel/framerender.c, kernel/framerender.h, kernel/menu.c, kernel/moveresize.c, kernel/moveresize.h, kernel/openbox.c, kernel/parse.h, kernel/parse.l, kernel/parse.y, kernel/screen.c, kernel/screen.h, kernel/stacking.c, m4/x11.m4, plugins/keyboard/keyboard.c, plugins/keyboard/tree.c, plugins/keyboard/tree.h, plugins/mouse/mouse.c, plugins/mouse/mouse.h, render/font.c, render/image.c, render/render.c, render/render.h, render/theme.c, render/theme.h:
2224         all my changes while i was offline.
2225         better alt-tabbing. better transient handling. i dont even know. lots of fucking cool shit so WATCH the FUCK OUT.
2226
2227 2003-04-28  xor@zed  <xor@zed>
2228
2229         * kernel/screen.c:
2230         move windows before calcing struts. watch for windows on DESKTOP_ALL when removeing a desktop
2231
2232 2003-04-27  xor@zed  <xor@zed>
2233
2234         * kernel/client.c, kernel/stacking.c:
2235         a more correct for the missing frame problem. don't restack windows when changing the window's layer while it is being managed.
2236
2237         * kernel/stacking.c:
2238         watch for windows without frames, they can be in the transient order before they get fully managed
2239
2240         * doc/themerc.txt: no longer pertinent
2241
2242         * render/image.c, render/image.h, render/render.c:
2243         fix window icon rendering, was using incorrect size.
2244
2245         * render/color.h: its G_BYTE_ORDER not G_ENDIAN.
2246
2247 2003-04-26  xor@zed  <xor@zed>
2248
2249         * kernel/moveresize.c:
2250         show the move coords for where the window will actually be
2251
2252 2003-04-25  xor@zed  <xor@zed>
2253
2254         * kernel/client.c: only focus on startup if focus_new is true
2255
2256         * kernel/Makefile.am, kernel/client.c, kernel/openbox.c, kernel/screen.c, kernel/startup.c, kernel/startup.h:
2257         restore the desktop and focused window on restarts if possible
2258
2259         * kernel/action.c, kernel/client.c, kernel/client.h, kernel/focus.c, kernel/focus.h:
2260         add helper functions for manipulating the focus_order list.
2261         move the focus popup into focus.c, out of action.c
2262         allow cycling to iconic windows, which are kept at the bottom of the focus_order lists.
2263
2264         * kernel/event.c, kernel/focus.c, kernel/frame.c, kernel/frame.h, kernel/framerender.c:
2265         let the frame hold a focus state so that it can lie.
2266         dont focus windows while cycling, just highlight them as if they are focused
2267
2268         * kernel/framerender.c: icons are not at +1 anymore
2269
2270 2003-04-24  xor@zed  <xor@zed>
2271
2272         * kernel/client.c:
2273         some more checks for transients looping on eachother when they are transients of a group
2274
2275 2003-04-22  xor@zed  <xor@zed>
2276
2277         * kernel/prop.c:
2278         client side shit ISNT 32 bits on 64 bit platforms, its 64 bits. fuck X so hard.
2279
2280 2003-04-22  woodblock  <woodblock@zed>
2281
2282         * CHANGELOG: NLS update
2283
2284 2003-04-22  xor@zed  <xor@zed>
2285
2286         * kernel/client.c:
2287         even better checks for when to focus new windows. focus dialogs when they are the only member of their group
2288
2289 2003-04-22  woodblock  <woodblock@zed>
2290
2291         * kernel/menu.c, kernel/menu.h, kernel/menu_render.c:
2292         More menu changes to facilitate plugins.
2293
2294         * kernel/Makefile.am, kernel/menu.c, kernel/menu.h, kernel/menu_render.c:
2295         Render menus only when they are invalid.
2296
2297 2003-04-21  xor@zed  <xor@zed>
2298
2299         * README.CVS: add automake
2300
2301         * data/rc3: focus on press onm the titlebar buttons
2302
2303         * kernel/client.c:
2304         yet more changes to choosing to focus windows when they mapp
2305
2306         * kernel/parse.h, kernel/parse.y:
2307         try avoid cicular includes with the bison shit
2308
2309 2003-04-20  woodblock  <woodblock@zed>
2310
2311         * CHANGELOG: tyop
2312
2313 2003-04-20  xor@zed  <xor@zed>
2314
2315         * kernel/frame.c, kernel/framerender.c:
2316         make the icon larger than the buttons by one pixel in each direction, this makes it as tall as the label and lets it fit more image in
2317
2318         * kernel/client.c: new focus-new rules
2319
2320 2003-04-20  woodblock  <woodblock@zed>
2321
2322         * CHANGELOG: Update log
2323
2324 2003-04-19  xor@zed  <xor@zed>
2325
2326         * kernel/client.c: i lied.. fuck @ those gnome dialogs
2327
2328         * kernel/client.c: lighten up a bit on the focus new windows criteria
2329
2330         * kernel/event.c: rm invalid comment
2331
2332         * kernel/event.c: only look for FocusOut events on the same window
2333
2334         * kernel/prop.c:
2335         convert STRING properties from "ISO-8859-1" instead of from the current locale, since this is what they apparently are, according to gdk.
2336
2337         * kernel/prop.c: check the string not the pointer to it
2338
2339 2003-04-18  xor@zed  <xor@zed>
2340
2341         * kernel/event.c: the mouse grab screws that up
2342
2343         * kernel/event.c: dispatch presses and releases during a move/resize
2344
2345         * kernel/event.c: kill the debug prints for now
2346
2347         * kernel/event.c: nm cant do it.. damn
2348
2349         * kernel/event.c:
2350         ignore another type of crossing event, caused when leaving gtk popup menus
2351
2352         * kernel/focus.c: just formatting
2353
2354         * kernel/event.c:
2355         yet MORE changes to how focusin/out's are handled. more edge case fixing, this time with focus fallback when unmapping a window in sloppy focus mode.
2356
2357         * kernel/client.c:
2358         adjust choosing to focus new windows, make it more strict.
2359         eat all Enter events when unmapping a window so focus fallback can be more smarter..
2360
2361         * kernel/screen.c: dont need to sync
2362
2363         * kernel/focus.c: check for client_normal before focusing
2364
2365         * kernel/focus.c:
2366         when unfocusing a window (e.g. unmanaging) try fallback to transient relations, if that fails, try group relations, then fallback to other window.
2367
2368         * kernel/focus.c:
2369         try focus other transients of the parent window when a transient falls back before focusing the parent
2370
2371         * kernel/moveresize.c: unset it AFTER using it...
2372
2373         * kernel/moveresize.c: unset the client when done moveresizing
2374
2375         * kernel/openbox.c:
2376         don't wait(), the glib function does that for us woot.
2377
2378         * kernel/client.c:
2379         more strict rules on what will be focused by the focusNew option in the rc3. only strictly NORMAL windows will be focused, not dialogs or anything else when they are mapped.
2380
2381         * kernel/focus.h: comment typo
2382
2383         * kernel/client.c, kernel/moveresize.c, kernel/moveresize.h:
2384         watch out when unmanaging a window, that it is not being move/resized
2385
2386 2003-04-17  xor@zed  <xor@zed>
2387
2388         * kernel/client.c:
2389         a) put transient windows on the same desktop as their parent
2390         b) if a window is attempted to be focused but it is not on the current desktop,
2391            then move it to the top of the focus order on its desktop
2392
2393         * kernel/screen.c:
2394         distribute focus when entering/leaving show-the-desktop mode
2395
2396         * kernel/event.c: remove debug print
2397
2398         * kernel/moveresize.c, kernel/openbox.c, kernel/openbox.h:
2399         add the left/right/top/bottom direction arrows and use them for resizing those ways
2400
2401         * plugins/mouse/mouse.c: net_WM!@^&(
2402
2403         * plugins/mouse/mouse.c: use the right client
2404
2405         * plugins/mouse/mouse.c: dont use the client if there is none
2406
2407         * kernel/event.c: dont ignore all Virtual pointer events
2408
2409         * kernel/action.c: 02:33 (@xor) omg yes
2410         02:33 (@xor) grid workspace cycling of d3th
2411
2412         * kernel/action.c: fix grip workspace cycling
2413
2414         * kernel/event.c, kernel/grab.c, kernel/grab.h, kernel/moveresize.c, kernel/moveresize.h, plugins/mouse/mouseparse.c:
2415         fix up support for moveresize. make keyboard grabs Async so that i can hit escape to cancel a moveresize process.
2416
2417         * kernel/openbox.c: do not shadow parameter pls
2418
2419         * kernel/moveresize.c: initialize start_x/y
2420
2421         * kernel/focus.c, kernel/moveresize.c, kernel/moveresize.h, kernel/openbox.c, kernel/openbox.h:
2422         add support for interactive/keyboard move/resize
2423
2424         * kernel/event.c, kernel/prop.c, kernel/prop.h, kernel/screen.c:
2425         add support for net_moveresize_window and net_wm_moveresize
2426
2427         * kernel/frame.c: use the new cursor defn's
2428
2429         * kernel/screen.c: use the new ptr cursor defn
2430
2431         * kernel/Makefile.am, kernel/action.c, kernel/action.h, kernel/event.c, kernel/moveresize.c, kernel/moveresize.h, kernel/prop.c, kernel/prop.h, plugins/keyboard/keyboard.c, plugins/keyboard/keyparse.c, plugins/mouse/mouse.c, plugins/mouse/mouseparse.c:
2432         move the move/resize functionality into moveresize.c, for use with the netwm atoms. use it from teh plugins. combine the two actions.
2433
2434         * kernel/framerender.c: put text centered in the popup dialog properly
2435
2436         * data/rc3: make alt-middle the default resize binding
2437
2438         * kernel/openbox.c, kernel/openbox.h:
2439         add more cursors for move/resizing, and use the arrows not the angle brackets
2440
2441         * kernel/action.c:
2442         grab pointer during cycling to remove focus screwups from focus-follows-mouse.
2443         grab during move/resize and assign a cursor while doing the move/resize too!
2444
2445         * plugins/mouse/mouse.c:
2446         save the client and context during drags since a pointer grab will change them
2447
2448         * kernel/event.c: ignore virtual crossing events..
2449
2450         * kernel/focus.c: that was dumb, it was metacity's fault
2451
2452         * kernel/focus.c: only cycle to visible windows
2453
2454 2003-04-16  xor@zed  <xor@zed>
2455
2456         * kernel/event.c: dont send menu events to plugins
2457
2458         * data/rc3: show the root menu on right click
2459
2460         * kernel/event.c, kernel/grab.c, kernel/grab.h, kernel/menu.c, kernel/menu.h:
2461         menus works on some level. add a built-in root menu
2462
2463         * kernel/client.c: code cleanup
2464
2465         * kernel/client.c: when flags are not set assume bette defaults
2466
2467         * kernel/event.c, kernel/focus.c, kernel/menu.c, kernel/menu.h, kernel/openbox.c, kernel/stacking.c, kernel/stacking.h:
2468         raise menus above clients.
2469         hilight menu entries as the cursor passes over them.
2470
2471         * kernel/menu.c, kernel/menu.h:
2472         save the window ids in a map for the menus
2473
2474         * kernel/client.c: only change the group info if the group flag is set
2475
2476         * kernel/client.c: only add transients if we are IN a group
2477
2478         * kernel/client.c: oops nm
2479
2480         * kernel/client.c: less ()s cleanup
2481
2482         * kernel/client.c:
2483         remove transients before removing ourlselves from teh group
2484
2485         * kernel/client.c:
2486         set the group to null when removeing ourselves from it
2487
2488 2003-04-15  xor@zed  <xor@zed>
2489
2490         * kernel/action.c: watch out for missing a name
2491
2492         * render/theme.c: make menu font smaller and !bold for now
2493
2494         * kernel/action.c, kernel/action.h, kernel/framerender.c, kernel/menu.c, kernel/menu.h, kernel/openbox.c, plugins/keyboard/keyparse.c, plugins/mouse/mouse.c, plugins/mouse/mouseparse.c:
2495         start of showing/rendering menus. woot!
2496
2497         * render/theme.c, render/theme.h: load menu style stuff
2498
2499         * render/render.c, render/render.h:
2500         make minsize take int*'s not a Size*
2501
2502         * kernel/client.c:
2503         remove transients of the group from teh window when it leaves the group
2504
2505         * kernel/client.c: add group transients when setting up the group
2506
2507         * kernel/client.c: bug in the search for transient_for's
2508
2509         * data/rc3: update the theme stuff
2510
2511 2003-04-15  manmower  <manmower@zed>
2512
2513         * render/gradient.c: PYRAMID PARTY PART 2!!!
2514
2515         * render/gradient.c, render/gradient.h: PYRAMID PARTY!!!
2516
2517 2003-04-15  xor@zed  <xor@zed>
2518
2519         * kernel/screen.c: remove debug print
2520
2521 2003-04-14  xor@zed  <xor@zed>
2522
2523         * kernel/client.c, kernel/prop.c, kernel/screen.c:
2524         fixes for handling char**s
2525
2526         * render/font.c: indenting oopsie
2527
2528         * kernel/prop.c: dont get a null at the end of the data, so use strndup
2529
2530         * kernel/screen.c: fix a seg from ignoreing PROP_GETSS failure
2531
2532         * kernel/screen.c: more fixes for working with char**s
2533
2534         * kernel/screen.c: nullify the ends of the char**
2535
2536         * kernel/client.c, kernel/prop.h, kernel/screen.c:
2537         remove casts from PROP defines. use proper vars and cast elsewhere if needed.
2538
2539         * render/font.c: text justification
2540
2541         * render/render.c:
2542         shrink the area that the textures are rendered into by the bevels/borders
2543
2544         * kernel/client.c, kernel/prop.c, kernel/prop.h, kernel/screen.c, kernel/screen.h, kernel/stacking.c:
2545         rip the prop code i wrote in cwmcc out and make it all 64bit friendly (i think!). stop using gulong for values from the xserver, using guint32 instead.
2546
2547         * kernel/menu.c, kernel/menu.h:
2548         these menus should not be removed, they are good and will be used.
2549
2550         * kernel/event.c: clean up this mess of crap a lot
2551
2552         * kernel/prop.c, kernel/prop.h:
2553         do not commit bad char* foo that breaks on !32 bit platforms
2554
2555 2003-04-14  woodblock  <woodblock@zed>
2556
2557         * kernel/menu.c, kernel/menu.h: *** empty log message ***
2558
2559 2003-04-14  xor@zed  <xor@zed>
2560
2561         * kernel/parse.l: allow _'s in identifiers
2562
2563         * kernel/stacking.c: raise and lower all transients along with parents
2564
2565         * kernel/client.c:
2566         apply layers to all transients. only raise once on the highest window who's layer changed after applying layers to them all
2567
2568 2003-04-13  xor@zed  <xor@zed>
2569
2570         * kernel/client.c: ifdef not ifndef
2571
2572         * kernel/stacking.c: keep all transient windows above their parents
2573
2574         * kernel/client.c: simple cleanups for the client_iconify function.
2575         also dont follow into other groups when searching up the transient_for tree
2576
2577         * kernel/client.c: rm the unused vars
2578
2579         * kernel/client.c: onyl focus 'normal' windows on map
2580
2581         * kernel/client.c:
2582         only keep fullscreen windows on top while they are focused
2583
2584         * kernel/client.c, kernel/client.h:
2585         make fullscreen decorations and functions be calculated by the setup_decor_and_functions func
2586
2587         * kernel/group.c: rm the group debug prints
2588
2589         * kernel/client.c: only print that when debuggin focus
2590
2591         * .cvsignore, kernel/.cvsignore, plugins/.cvsignore, plugins/keyboard/.cvsignore, plugins/mouse/.cvsignore, plugins/placement/.cvsignore, render/.cvsignore:
2592         ignore the remaining new shit from automaking everything again
2593
2594         * .cvsignore, INSTALL, Makefile.am, Makefile.in, bootstrap, configure.ac, data/.cvsignore, data/Makefile.am, kernel/.cvsignore, kernel/Makefile, kernel/Makefile.am, plugins/.cvsignore, plugins/Makefile, plugins/Makefile.am, plugins/keyboard/.cvsignore, plugins/keyboard/Makefile, plugins/keyboard/Makefile.am, plugins/mouse/.cvsignore, plugins/mouse/Makefile, plugins/mouse/Makefile.am, plugins/placement/.cvsignore, plugins/placement/Makefile, plugins/placement/Makefile.am, po/.cvsignore, render/.cvsignore, render/Makefile, render/Makefile.am, tests/Makefile, themes/.cvsignore, themes/Makefile.am:
2595         back to automake
2596
2597         * AUTHORS: shrimpx above miklos?
2598
2599         * kernel/event.c, kernel/frame.c, kernel/frame.h, plugins/mouse/mouse.c:
2600         pass the Client for frame_context cuz the client might be NULL
2601
2602         * themes/ebox: comment properly
2603
2604         * render/theme.c: load the font shadow stuff from the old ob2 shitz
2605
2606         * kernel/config.c, kernel/config.h, kernel/openbox.c:
2607         let specify theme in the rc3 file. rm the other old engine options
2608
2609         * Makefile.in: break on errors
2610
2611         * Makefile.in, kernel/.cvsignore, kernel/action.c, kernel/client.c, kernel/config.h, kernel/engine.c, kernel/engine.h, kernel/event.c, kernel/focus.c, kernel/frame.c, kernel/frame.h, kernel/framerender.c, kernel/framerender.h, kernel/openbox.c, kernel/parse.l, kernel/parse.y, kernel/screen.c, plugins/keyboard/keyboard.c, plugins/mouse/mouse.c, render/.cvsignore, render/font.h, render/mask.h, render/render.h, render/theme.c, render/theme.h:
2612         move the openbox engine into librender and the kernel. the theme is loaded and stored inside librender. the frame is decorated and managed inside the kernel.
2613
2614         * themes/ob20, themes/operation, themes/outcomes, themes/artwiz, themes/bbs, themes/bluebox, themes/cthulhain, themes/deep, themes/ebox, themes/fieron, themes/fieron2, themes/flux, themes/frobozz, themes/frobust, themes/mbdtex, themes/miklos, themes/nyz, themes/nyzclone, themes/paper, themes/purplehaaze, themes/shade, themes/steelblue, themes/steelblue2, themes/the_orange, themes/trisb, themes/twice, themes/warp-xp:
2615         move the themes
2616
2617         * render/render.c: allow freeing NULL appearances
2618
2619         * render/font.c: allow closing NULL fonts
2620
2621         * render/mask.c: allow freeing NULL pixmap masks
2622
2623         * render/color.c: dont fux self in color_free if the color is NULL
2624
2625 2003-04-12  xor@zed  <xor@zed>
2626
2627         * tests/fullscreen.c: set the right mask for the client msg!
2628
2629 2003-04-12  woodblock  <woodblock@zed>
2630
2631         * CHANGELOG: Fixed another damned focus bug. Pray.
2632
2633 2003-04-11  xor@zed  <xor@zed>
2634
2635         * data/rc3: add right click in client focuses
2636
2637         * kernel/client.c: make utility windows able to be resized
2638
2639         * Makefile.in: rm the main Makefile in a distclean
2640
2641 2003-04-10  xor@zed  <xor@zed>
2642
2643         * kernel/client.c:
2644         deiconify transient parents when a child is deiconified.
2645
2646         * kernel/client.h: no fuck that it was working fine
2647
2648         * kernel/client.h: make the TRAN_GROUP an unsigned long
2649
2650         * kernel/event.c: add MapRequest print
2651
2652         * kernel/client.c:
2653         some smarter rules for focusing new window when focus_new is not set
2654
2655 2003-04-09  xor@zed  <xor@zed>
2656
2657         * plugins/keyboard/keyboard.c: buld fixes for the new libs
2658
2659         * Makefile.in, render/.cvsignore: add libcwmcc and libobcl
2660
2661         * HACKING: describe the code subdirs
2662
2663         * kernel/action.c:
2664         dont show the focus popup when theres no target client
2665
2666 2003-04-08  xor@zed  <xor@zed>
2667
2668         * kernel/event.c: rm debug print
2669
2670         * tests/.cvsignore: add override
2671
2672         * tests/override.c: add a test that maps an override redirect window
2673
2674         * kernel/client.c, kernel/config.c, kernel/config.h, kernel/engine.c, kernel/engine.h, kernel/event.c, kernel/focus.c, kernel/focus.h, kernel/openbox.c, kernel/prop.c, kernel/screen.c:
2675         move config option loading for the kernel into config.c/h
2676         add options for the number of desktops and the names of the desktops
2677
2678         * data/rc3: add the desktops options
2679
2680         * data/rc3: better clickfocus friendliness
2681
2682         * kernel/client.c: check for focus before unfocusing
2683
2684         * kernel/client.c, kernel/event.c, kernel/focus.c, kernel/focus.h, kernel/screen.c:
2685         add more options for focus fallback, use an enum for all the types of fallbacks.
2686
2687         * kernel/focus.c: only cycle focus to normal windows
2688
2689         * data/rc3: make stacked cycling the default
2690
2691         * kernel/action.c: show a popup with the focus target while cycling
2692
2693         * kernel/focus.c, kernel/focus.h:
2694         fallback to transients' parents when possible.
2695         return the Client* which was focused from focus_cycle
2696
2697         * kernel/client.c: fallback focus while unmanaging the window
2698
2699 2003-04-07  xor@zed  <xor@zed>
2700
2701         * data/rc3: FocusRaise to be more clickfocus friendly too
2702
2703         * data/rc3, kernel/focus.c, kernel/focus.h:
2704         add focusLast and focusLastOnDesktop options in the [focus] section of the rc3. allows more customizaton of the focus model. default to click-focus style. add handling for focus cycling when nothing on the desktop is focused.
2705
2706         * kernel/event.c: ignore inferior enternotifies
2707         add anotehr focusdebug print
2708
2709         * kernel/client.c: check for new windows always being onscreen.
2710         rename the client pointer to self in teh manage unmanage functions for consistancy
2711
2712         * kernel/grab.c: rm debug prints
2713
2714 2003-04-07  woodblock  <woodblock@zed>
2715
2716         * configure.in: bump version string
2717
2718 2003-04-07  xor@zed  <xor@zed>
2719
2720         * plugins/placement/history.c:
2721         dont check to make sure the window is on screen here
2722
2723         * HACKING: add comment about the two different area Rects
2724
2725         * HACKING: add new HACKING!
2726         warn about Client.transient_for
2727
2728         * kernel/client.h, kernel/stacking.c, kernel/client.c:
2729         support for transients of groups
2730
2731         * kernel/event.c: missed one
2732
2733         * kernel/event.c: put focus messages in ifdefs
2734
2735         * kernel/focus.c: remove debug print
2736
2737         * kernel/client.c, kernel/client.h, kernel/group.c, kernel/group.h, kernel/openbox.c:
2738         track window groups
2739         iconify all its transients when a window is iconified
2740
2741         * plugins/keyboard/keyboard.c:
2742         once in a window-cycle, don't fire any other key bindings
2743
2744         * kernel/action.c, kernel/client.c, kernel/client.h, kernel/focus.c, kernel/focus.h:
2745         put focus_cycle into focus.c, use it there in the action. improved it as well to handle odd cases like modal windows. added functions to client.c which are needed by the focus cycling routine.
2746
2747         * kernel/grab.c: grab the other device in Sync for button/key grabs
2748
2749 2003-04-06  xor@zed  <xor@zed>
2750
2751         * plugins/placement/history.c: dont let windows be placed offscreen
2752
2753         * render/render.c: ifndef NOT IFNDEF GAH
2754
2755         * kernel/action.c: dont toggle when no client was passed to teh action
2756
2757         * kernel/event.c: nm that, pointless...
2758
2759         * kernel/event.c:
2760         disable keyboard and mouse input while ob is starting or exiting
2761
2762 2003-04-06  manmower  <manmower@zed>
2763
2764         * render/color.c, render/render.c:
2765         Fix reduce color depth to not use original data
2766         (and break parentrel)
2767
2768 2003-04-06  xor@zed  <xor@zed>
2769
2770         * kernel/engine.c: print the error when the engine cant load
2771
2772         * render/render.c: add stdlib.h for exit()
2773
2774         * .cvsignore, configure.ac, install-sh:
2775         stop using build/ dir configure shits all over itself for other people
2776
2777         * m4/x11.m4, m4/openbox.m4:
2778         build fixes for finding Xlibs and for setting vars based on found Xlib info and Xinerama info
2779
2780         * configure.ac: more build system fixups
2781
2782         * .cvsignore, Makefile, Makefile.in, configure.ac, install-sh, m4/openbox.m4, render/.cvsignore:
2783         fixes for build system. add themes to the install process. use the build/ dir for configures trash dump
2784
2785         * kernel/engine.c: clean up the module if load() fails
2786
2787         * render/render.c, render/render.h:
2788         add function to give the minimum size of an appearance to fully render it's data
2789
2790         * plugins/mouse/mouse.c:
2791         save the state at the start of a drag and use it throughout until the button is released
2792
2793         * kernel/action.c: add a coords popup for moving and resizing
2794
2795         * kernel/geom.h: add ()'s to the macros for more safety
2796
2797         * kernel/engine.c, kernel/engine.h:
2798         add the ability to render and size text labels for non-window-decorations
2799
2800 2003-04-06  woodblock  <woodblock@zed>
2801
2802         * bootstrap: Remove woodblock's local changes :P
2803
2804         * bootstrap: Moved to DESIGN/
2805
2806         * DESIGN/menu-thoughts.txt: some thoughts on menu stuff
2807
2808 2003-04-06  manmower  <manmower@zed>
2809
2810         * render/gradient.c: remove asserts pending sanity check.
2811
2812         * render/gradient.c:
2813         added flakey parentrel for solids and some mean spirited asserts
2814
2815         * render/color.c, render/color.h, render/render.c, render/render.h:
2816         added superb pseudo-color (8bpp) support
2817
2818 2003-04-06  xor@zed  <xor@zed>
2819
2820         * plugins/resistance.c: dont resize snap windows with size increments
2821
2822         * data/rc3, kernel/engine.c: make NLIMC the default titlebar layout
2823
2824 2003-04-06  woodblock  <woodblock@zed>
2825
2826         * configure.in: Huge i18n patch from Mike Fabian.
2827         We use utf8 everywhere now.
2828
2829 2003-04-05  xor@zed  <xor@zed>
2830
2831         * kernel/action.c, kernel/focus.c, kernel/focus.h:
2832         allow specifying that some focus events should be ignored for the focus order list
2833
2834         * kernel/action.c: stacked and linear cycling
2835
2836         * kernel/action.c, kernel/action.h, plugins/keyboard/keyboard.c:
2837         linear focus cycling of the gods
2838
2839         * plugins/keyboard/keyboard.c:
2840         add special shit for window cycling, grab the keyboard etc
2841
2842         * kernel/client.c: typo
2843
2844         * kernel/client.c: put it back
2845
2846         * kernel/client.c: make unfocus really unfocus everything
2847
2848         * data/rc3: add linear cycling for now
2849
2850         * data/rc3: rm the [foo] section
2851
2852         * data/rc3: update teh rc3 to reflect how the code works now
2853
2854         * kernel/engine.c: dont default to NULL for the engine name
2855
2856         * kernel/engine.c: add engine options to the new rc file
2857
2858         * Makefile, kernel/focus.c, kernel/openbox.c, kernel/parse.c:
2859         add focus options to the new rc file
2860
2861         * kernel/action.c, kernel/action.h, kernel/client.c, kernel/client.h, kernel/config.c, kernel/config.h, kernel/engine.c, kernel/engine.h, kernel/event.c, kernel/focus.c, kernel/focus.h, kernel/openbox.c, kernel/parse.c, kernel/parse.h, kernel/parse.l, kernel/parse.y, kernel/screen.c, plugins/keyboard/keyboard.c, plugins/mouse/mouse.c, plugins/placement/history.c, plugins/placement/placement.c, plugins/resistance.c:
2862         change how rc parsing will work. a=b will be parsed in any [section] and given to a separate parsing callback. no more general config infrastructure needed/
2863
2864         * render/render.h: make tint signed
2865
2866         * data/rc3: typo
2867
2868         * plugins/mouse/mouserc, plugins/mouse/mouserc_parse.c, plugins/mouse/mouserc_parse.h, plugins/mouse/mouserc_parse.l:
2869         rm the old mouserc shit
2870
2871         * Makefile, data/rc3: add an rc3 which gets installed
2872
2873         * Makefile: make love
2874
2875         * plugins/mouse/.cvsignore: ignore more new shit
2876
2877         * plugins/mouse/translate.c:
2878         use Button<num> instead of just <num> for specifying buttons by number
2879
2880         * plugins/keyboard/keyparse.c, plugins/mouse/mouseparse.c, plugins/mouse/mouseparse.h:
2881         better error msgs
2882
2883         * kernel/frame.c, kernel/frame.h: use a context enum instead of quarks
2884
2885         * plugins/mouse/mouse.c:
2886         not using quarks, using an array and a Context enum for contexts
2887
2888         * plugins/keyboard/keyparse.c: prefix key bindnigs with 'kbind'
2889
2890         * plugins/keyboard/keyboard.c, plugins/keyboard/translate.c:
2891         initialize all vars.
2892         change warnings to messages
2893
2894 2003-04-04  xor@zed  <xor@zed>
2895
2896         * kernel/openbox.c:
2897         reorder startup so that grabs are set up before parsing teh rc
2898
2899         * plugins/keyboard/keyparse.c: remove debug print
2900
2901         * kernel/parse.c, kernel/parse.y, plugins/keyboard/.cvsignore, plugins/keyboard/keyboard.c, plugins/keyboard/keyparse.c, plugins/keyboard/keyparse.h, plugins/keyboard/keysrc, plugins/keyboard/keysrc.h, plugins/keyboard/keysrc.l, plugins/keyboard/keysrc.yacc:
2902         add the keyboard plugin into the build systems
2903         keyboard bindings are parsed from the rc file
2904
2905         * configure.ac: clean up output
2906
2907         * configure.ac: properly
2908
2909         * configure.ac: add -DENABLE_NLS
2910
2911         * kernel/parse.c: more using of new token struct
2912
2913         * kernel/parse.c: use new token structs. free token lists.
2914
2915         * kernel/parse.c, kernel/parse.h, kernel/parse.y:
2916         attempting to parse lists
2917
2918         * README.CVS: reflect the current requirements for building/using cvs
2919
2920 2003-04-03  xor@zed  <xor@zed>
2921
2922         * kernel/parse.l: allow '-' in identifiers
2923
2924         * Makefile: engine builds
2925
2926         * Makefile: build the resistance/placement plugins
2927
2928         * kernel/parse.h: use the values from the yacc parser
2929
2930         * Makefile, kernel/.cvsignore, kernel/parse.y:
2931         more build fixes, calling the other makefiles instead of including them
2932
2933         * kernel/parse.y: try accomidate more versions of bison
2934
2935         * .cvsignore, Makefile, kernel/.cvsignore, plugins/.cvsignore, plugins/placement/.cvsignore:
2936         more build fixes
2937
2938         * configure.ac: use PACKAGE_FOO vars
2939
2940         * kernel/action.c: double break statements :) oops
2941
2942         * .cvsignore: add stuff that should be ignored at the toplevel
2943
2944         * bootstrap, install-sh: some build fixes
2945
2946         * .cvsignore, Makefile, Makefile.am, bootstrap, configure.ac, doc/.cvsignore, doc/Makefile.am, doc/doxygen/.cvsignore, doc/doxygen/Makefile.am, kernel/.cvsignore, kernel/Makefile, kernel/Makefile.am, kernel/openbox.c, kernel/parse.h, m4/openbox.m4, plugins/.cvsignore, plugins/Makefile, plugins/Makefile.am, plugins/keyboard/.cvsignore, plugins/keyboard/Makefile, plugins/keyboard/Makefile.am, plugins/mouse/.cvsignore, plugins/mouse/Makefile, plugins/mouse/Makefile.am, plugins/placement/.cvsignore, plugins/placement/Makefile, plugins/placement/Makefile.am, po/.cvsignore, render/.cvsignore, render/Makefile, render/Makefile.am, themes/.cvsignore, themes/Makefile.am:
2947         new build system without automake
2948
2949         * data/.cvsignore, data/Makefile.am, data/README, data/README.menu, data/README.style, data/menu.in:
2950         rm the data dir
2951
2952 2003-04-02  xor@zed  <xor@zed>
2953
2954         * kernel/Makefile.am: BLEF HATE DIE
2955
2956         * kernel/Makefile.am: bison doesnt use y.tab.*
2957
2958         * configure.ac: use bison not yacc
2959
2960         * kernel/Makefile.am, kernel/parse.y, kernel/parse.yacc:
2961         rename the parse.yacc to parse.y
2962
2963         * kernel/Makefile.am: make parse.h depend on y.tab.h
2964
2965         * kernel/parse.h, kernel/parse.l: this should seriously work
2966
2967         * kernel/parse.h, kernel/parse.yacc: undo that
2968
2969         * kernel/.cvsignore: ignore new lex/yacc gen'd files
2970
2971         * kernel/parse.h, kernel/parse.yacc:
2972         don't include the y.tab.h inside the yacc file
2973
2974         * kernel/Makefile.am: add y.tab.h to the headers so the yacc shit runs
2975
2976         * kernel/Makefile.am: rm the generated files on clean
2977
2978         * kernel/Makefile.am: wrong .h for the make rule
2979
2980         * kernel/Makefile.am: deps the lex h on the c
2981
2982         * plugins/mouse/mouse.c:
2983         make the drag threshold and double click time into rc options
2984
2985         * kernel/Makefile.am, kernel/config.c, kernel/config.h, kernel/cparse.l, kernel/openbox.c, kernel/parse.c, kernel/parse.h, kernel/parse.l, kernel/parse.yacc:
2986         create a generic tokenizer/sectionizer for the config file. pass off the token to functions registered for each section to parse them further. some fixes for the engine irt font shadows, and fixed a bug with rendering the iconify button when it was not in the layout
2987
2988         * render/font.c: whitespace
2989
2990         * render/font.c: kill debug print
2991
2992         * render/font.c: use the tint properly for the shadow
2993
2994         * kernel/client.c: rm debug print
2995
2996         * render/render.c: will seg again
2997
2998         * render/render.c: stop copying. still segfault?
2999
3000         * render/render.c:
3001         find the right offset in the source data for parent relative
3002
3003 2003-04-02  manmower  <manmower@zed>
3004
3005         * render/render.c: let there be parentrelative
3006
3007 2003-04-01  xor@zed  <xor@zed>
3008
3009         * TODO: more updates to current status
3010
3011 2003-03-31  xor@zed  <xor@zed>
3012
3013         * plugins/mouse/mouserc: add the Shade context to the comments
3014
3015         * kernel/client.c, kernel/client.h, plugins/mouse/mouserc:
3016         add a shaded button
3017
3018         * TODO: add some current states
3019
3020         * plugins/resistance.c: dont resist to windows which we're not touching
3021
3022         * kernel/client.c:
3023         only disallow shading when the function is not enabled, dont disallow unshading
3024
3025         * plugins/mouse/mouse.c:
3026         use the client's size instead of the frames size so the real size is used, not the size of the frame (avoids shaded window problem)
3027
3028         * kernel/action.c: disallow resizing of windows which are shaded
3029
3030         * plugins/mouse/mouse.c: unser drag_used when drag is unset too
3031
3032         * plugins/mouse/mouse.c: add a space where it belongs
3033
3034         * plugins/mouse/mouse.c:
3035         make realeases fire releases instead of presses. make drags prevent clicks only if there is something bound to the drag.
3036
3037         * plugins/keyboard/keysrc: no drag events for keysrc..
3038
3039         * kernel/client.c:
3040         use the frame's position in the maximize function since they're converted to the client coords before getting to client_configure
3041
3042         * kernel/frame.c:
3043         was not using the pointer properly. leaving the value untouched
3044
3045         * kernel/client.c:
3046         set fullscreen and max positions properly for all gravities
3047
3048         * kernel/focus.c: rm a no-longer-valid comment
3049
3050         * kernel/event.c:
3051         yet more haxes to make focus events work the way i want. this is rough shit.
3052
3053         * plugins/resistance.c:
3054         extraneous ! causing resistance to be snapping in one case. rm a debug print
3055
3056 2003-03-30  xor@zed  <xor@zed>
3057
3058         * render/font.c: use 'sans' as the fallback font instead of 'fixed'
3059
3060         * kernel/event.c, kernel/focus.c:
3061         yet more focus fixings. RevertToPointerRoot could mess things up focusing a client and us ignoring the FocusIn of Pointer type. this is all handled now.
3062
3063 2003-03-29  xor@zed  <xor@zed>
3064
3065         * kernel/action.c, kernel/action.h:
3066         make SendToDesktop action work right, give the option of following
3067
3068         * render/mask.c, render/mask.h, render/render.h:
3069         add pixmap_mask_copy, and add the data to the mask struct, since it is needed for allowing copies
3070
3071         * plugins/keyboard/keysrc:
3072         better decribe bindings and list all the modifiers, was missing shift/control
3073
3074         * plugins/keyboard/keysrc:
3075         add SendToDesktop to the comments. fix the type calling the Desktop action Desktops
3076
3077         * plugins/keyboard/keysrc.yacc: use the number for sendtodesktop
3078
3079         * kernel/action.c, kernel/action.h: rm a redundant actiondata struct
3080
3081         * kernel/menu.c: no //'s plz
3082
3083         * kernel/action.c: translate sendtodesktop actions
3084
3085         * plugins/resistance.c: use the top when snapping to the top
3086
3087         * kernel/openbox.c: create the dirs for themes in ~/.openbox on startup
3088
3089 2003-03-29  woodblock  <woodblock@zed>
3090
3091         * tests/Makefile: Add include path
3092
3093 2003-03-29  xor@zed  <xor@zed>
3094
3095         * plugins/mouse/mouserc: add focusing if clicked on the grips
3096
3097         * plugins/resistance.c:
3098         use the bottom of the screen for botom snapping! :)
3099
3100 2003-03-29  woodblock  <woodblock@zed>
3101
3102         * kernel/Makefile.am, kernel/action.c, kernel/action.h, kernel/menu.c, kernel/menu.h:
3103         Menu data structures basically completed.
3104         Need the engine support still, parser, and controllers.
3105
3106 2003-03-29  xor@zed  <xor@zed>
3107
3108         * plugins/keyboard/keysrc.yacc: rm the extra ;
3109
3110         * kernel/action.c, kernel/action.h, plugins/keyboard/keysrc, plugins/mouse/mouserc:
3111         add unshaderaise and shadelower actions from Mikachu
3112
3113         * kernel/xerror.c, kernel/xerror.h: add a var to track errors
3114
3115         * kernel/grab.c: don't die when someone else has a key grabbed
3116
3117 2003-03-28  xor@zed  <xor@zed>
3118
3119         * plugins/keyboard/keysrc, plugins/mouse/mouserc: add ToggleDecorations
3120
3121         * kernel/action.c, kernel/client.c, kernel/client.h:
3122         rm client_disable_decorations.. it already had an action.
3123         add the action to the action_from_string func
3124
3125         * kernel/client.c, kernel/client.h: add client_disable_decorations
3126
3127         * kernel/client.c:
3128         onlt raise the window when sending to a desktop it wasnt already on
3129
3130         * kernel/event.c:
3131         FocusOut's are NOT ignored. thats bullshit. fixing comment.
3132
3133         * kernel/event.c:
3134         focus... works...? i have all cases of mozilla working, with RevertToPointerRoot sucking ass but.. working now.
3135
3136         * kernel/client.c:
3137         RevertToPointerRoot is the worse error case, so use it always
3138
3139         * kernel/event.c: comment why NotifyAncestor is not ignored
3140
3141         * kernel/event.c:
3142         yet MORE focus events reworkings. mozilla behaves now too. woot
3143
3144         * kernel/client.c: make the value boolean
3145
3146         * kernel/event.c:
3147         more focus cleanups. ignored focusin's were not working right recursively.
3148         also, when the focusin coming later is not for a valid window the fallback would not be called. both fixed.
3149
3150         * plugins/resistance.c: round down for size increments
3151
3152         * kernel/action.c, kernel/dispatch.c, kernel/dispatch.h:
3153         add resizing event
3154
3155         * plugins/resistance.c:
3156         resize resistance. size incs will fuck with it yet though.
3157
3158         * plugins/mouse/mouse.c: set lbutton from clicks
3159
3160         * plugins/mouse/mouse.c: rm debug prints
3161
3162         * kernel/client.c:
3163         was not moving the window between desktop focus lists sometimes. bad news. now i always do. yay!
3164
3165         * kernel/focus.c: killa  debug print
3166
3167         * kernel/focus.c:
3168         handle better the case of choosing the window to focus but it is already focused when switching desktops
3169
3170         * kernel/client.h: comment the new parameter
3171
3172         * kernel/action.c, kernel/client.c, kernel/client.h, kernel/event.c, kernel/screen.c:
3173         let a window be 'moved' to a new desktop without actually show/hiding it. useful for sending a window when following it, so theres no flash/flicker
3174
3175         * kernel/stacking.c: oops that worked before i borked it bad
3176
3177         * kernel/stacking.c: frame is a pointer
3178
3179         * kernel/stacking.c: dont die if a non-visible window is raised/lowered
3180
3181         * plugins/mouse/mouse.c: take borders into account for figuring clicks
3182
3183         * kernel/geom.h: make better?
3184
3185         * kernel/focus.c: sync after focusing
3186
3187         * kernel/geom.h: make these things one 'command' without braces
3188
3189 2003-03-28  manmower  <manmower@zed>
3190
3191         * render/render.c, render/render.h, render/test.c:
3192         moved paint's arguments into the appearance struct
3193
3194 2003-03-28  xor@zed  <xor@zed>
3195
3196         * kernel/stacking.c: dont lower below lower layers
3197
3198         * kernel/client.c:
3199         use the struts to size the window correctly for maximized windows
3200
3201         * kernel/client.c: read struts properly
3202
3203 2003-03-28  manmower  <manmower@zed>
3204
3205         * render/render.c, render/render.h: fix draw order in x_paint
3206
3207         * render/render.c: black.  not white.  oops
3208
3209         * render/render.c: black for parentrelative so we can test icons
3210
3211 2003-03-28  xor@zed  <xor@zed>
3212
3213         * plugins/mouse/mouserc: focus on middle click on client
3214
3215         * kernel/plugin.c: skip better
3216
3217         * kernel/plugin.c: skip comments and empty lines
3218
3219         * kernel/client.c:
3220         only use the initial_state shit when NOT starting and when managing the window
3221
3222         * kernel/focus.c:
3223         rm a bunch of prints. make switching to an empty desktop not kill focus
3224
3225         * kernel/event.c: dont focus !normal windows on enter events
3226
3227         * plugins/mouse/mouserc: add send-tos with the mouse wheel
3228
3229         * plugins/Makefile.am: focus plugin is gone
3230
3231         * kernel/client.c: mor fabulous focus fixings.
3232         RevertToNone so that when the fallback stuff goes the window wont already have focus cuz it has the pointer in to
3233
3234         * kernel/event.c: fallback focus in superior fashion
3235
3236         * kernel/focus.c: better var naming
3237
3238         * kernel/focus.c:
3239         dont rm focus when i actually found something to fall back to with the pointer
3240
3241 2003-03-27  xor@zed  <xor@zed>
3242
3243         * kernel/event.c: watch for FocusIn's for unknown clients
3244
3245         * kernel/plugin.c: rm the focus plugin
3246
3247 2003-03-27  manmower  <manmower@zed>
3248
3249         * render/render.h: prep for parentrelative
3250
3251 2003-03-27  xor@zed  <xor@zed>
3252
3253         * kernel/event.c: missed the end of a comment
3254
3255         * kernel/client.c, kernel/client.h, kernel/event.c, kernel/event.h:
3256         handle focus in the kernel, no more plugin
3257
3258         * kernel/focus.c, kernel/focus.h: add code to fallback focus
3259
3260         * kernel/screen.c: focus a window on desktop switch
3261
3262         * plugins/Makefile.am, plugins/focus.c: rm the focus plugin
3263
3264         * kernel/config.c: add focus options
3265
3266         * kernel/event.c:
3267         set the last time to CurrentTime for events that don't have time stamps
3268
3269         * kernel/client.c: rm debug print
3270
3271 2003-03-26  xor@zed  <xor@zed>
3272
3273         * kernel/client.c, kernel/event.c, kernel/event.h, kernel/focus.c, kernel/grab.c, kernel/keyboard.c, kernel/keyboard.h, kernel/pointer.c, kernel/pointer.h, plugins/keyboard/keyboard.c, plugins/mouse/mouse.c:
3274         not using CurrentTime anywhere
3275
3276         * kernel/grab.c, plugins/keyboard/keyboard.c: use CurrentTime again?
3277
3278         * plugins/keyboard/keyboard.c: bind C-g for the rset key
3279
3280         * kernel/grab.c: ungrab with currenttime
3281
3282         * kernel/focus.c:
3283         use the last event timestamp when focusing the focus_backup
3284
3285         * plugins/keyboard/keysrc.l: negatives that work!
3286
3287         * plugins/keyboard/keysrc: document the options
3288
3289         * plugins/keyboard/keysrc.l: better negatives
3290
3291         * plugins/keyboard/keysrc.l: allow negative numbers
3292
3293         * plugins/keyboard/keysrc.yacc: was reversing the keylist
3294
3295         * plugins/keyboard/keysrc.yacc:
3296         subtract 1 from the given desktop number
3297
3298         * plugins/keyboard/keysrc.l: make parsing more generic
3299
3300         * plugins/keyboard/keysrc.yacc: free unused paths
3301
3302         * plugins/keyboard/keysrc.yacc: split up the relative functions.
3303         make the parsing more generic, anything can have a string/numeric argument
3304
3305         * plugins/keyboard/keyboard.c: remove an extraneous g_warning
3306
3307         * plugins/mouse/mouserc_parse.l: split the relative functions
3308
3309         * plugins/keyboard/translate.c: check for invalid keys properly
3310
3311         * kernel/action.h:
3312         comment that the relative move/resize amounts need to be set
3313
3314         * kernel/action.c, kernel/action.h:
3315         split up the relative move/resize actions into horz/vert
3316
3317         * kernel/action.c, kernel/action.h: create actions from string names
3318
3319         * plugins/keyboard/.cvsignore, plugins/keyboard/Makefile.am, plugins/keyboard/keyboard.c, plugins/keyboard/keyboard.h, plugins/keyboard/keysrc, plugins/keyboard/keysrc.h, plugins/keyboard/keysrc.l, plugins/keyboard/keysrc.yacc, plugins/keyboard/tree.c:
3320         load keybindings from keysrc
3321
3322         * plugins/mouse/mouserc: add exit/restart.
3323         clarify which can be used for drag events
3324
3325         * plugins/mouse/mouserc_parse.l:
3326         dont let bind to actionexecute or desktop cuz they require a parameter
3327
3328         * plugins/mouse/mouserc_parse.l: dont let bind to actiondesktop
3329
3330         * plugins/mouse/mouserc_parse.l: use the action_from_string helper
3331
3332         * kernel/action.c: let a be null for action_free
3333
3334         * kernel/cparse.l: use g_warning not printf
3335
3336         * plugins/mouse/mouserc_parse.l:
3337         properly restrict bindings for motion events
3338
3339         * plugins/mouse/mouserc_parse.l: even beter
3340
3341         * plugins/mouse/mouserc_parse.l: better comment parsing
3342
3343         * plugins/mouse/mouserc_parse.l: sep is not used any more
3344
3345         * plugins/mouse/mouserc_parse.l: fix comment parsing
3346
3347         * plugins/mouse/mouserc_parse.l: dont set fields if in a comment
3348
3349         * kernel/client.c: kill the prints again for now
3350
3351         * plugins/mouse/Makefile.am: rm the lex .c on clean
3352
3353         * kernel/xerror.c: dont print bad window errors
3354
3355         * kernel/client.c, kernel/grab.c: put back map/unmap msgs
3356
3357         * configure.ac: look for yacc
3358
3359         * plugins/mouse/mouserc_parse.l: fields must not start or end with '-'
3360
3361         * kernel/event.c: dont let you got to numdesktops+1
3362
3363         * kernel/screen.c: rm the debug print
3364
3365         * kernel/event.c: kill debug prints
3366
3367         * plugins/keyboard/keyboard.c:
3368         XAllowEvents with a timestamp, otherwise we end up with a grab in place that we dont want
3369
3370         * kernel/client.c: oops
3371
3372         * kernel/client.c: rm some debug prints
3373
3374         * kernel/event.c: use ungrab enter events
3375
3376 2003-03-26  manmower  <manmower@zed>
3377
3378         * render/render.c: add rgba icon support
3379
3380         * render/image.c, render/image.h: rgba icon rendering
3381
3382         * render/Makefile.am: add image.c to the build process
3383
3384 2003-03-26  xor@zed  <xor@zed>
3385
3386         * kernel/client.c, kernel/client.h: use rgba icons for clients
3387
3388 2003-03-26  manmower  <manmower@zed>
3389
3390         * render/render.h: added "NoTexture" type
3391
3392 2003-03-26  xor@zed  <xor@zed>
3393
3394         * plugins/mouse/mouserc: document the options
3395
3396         * plugins/mouse/mouserc_parse.l: only let bind Move and Resize to Drags
3397
3398         * plugins/mouse/.cvsignore, plugins/mouse/mouserc, plugins/mouse/mouserc_parse.l:
3399         add the lexer
3400
3401         * kernel/action.c: check for no client
3402
3403 2003-03-26  manmower  <manmower@zed>
3404
3405         * render/render.h: filled out rgba
3406
3407 2003-03-26  xor@zed  <xor@zed>
3408
3409         * plugins/mouse/Makefile.am, plugins/mouse/mouse.c, plugins/mouse/mouse.h, plugins/mouse/mouserc, plugins/mouse/mouserc_parse.c, plugins/mouse/mouserc_parse.h:
3410         parse a mouserc file for mouse bindings
3411
3412         * plugins/mouse/.cvsignore: add new parsing shit
3413
3414         * kernel/.cvsignore: new output file from flex
3415
3416         * .cvsignore: wrong place
3417
3418         * .cvsignore, kernel/Makefile.am, kernel/cparse.l:
3419         usnig flex directly, renaming symbols so that theres no clash with other lexers
3420
3421         * configure.ac: look for flex
3422
3423         * kernel/action.c: free the string for action_restart too
3424
3425 2003-03-26  manmower  <manmower@zed>
3426
3427         * render/font.c, render/font.h, render/mask.c, render/mask.h, render/render.c:
3428         add a Rect to the textures for positioning them
3429
3430 2003-03-26  xor@zed  <xor@zed>
3431
3432         * kernel/plugin.c: print a warning when a module fails to open
3433
3434 2003-03-26  manmower  <manmower@zed>
3435
3436         * render/render.h: include appropriate header file for Rect
3437
3438         * render/render.h: added position to the textures
3439
3440 2003-03-26  xor@zed  <xor@zed>
3441
3442         * plugins/mouse/mouse.c: strdown the context name
3443
3444         * plugins/mouse/translate.c:
3445         use names for mouse buttons, all case insensitive
3446
3447         * plugins/keyboard/translate.c: case insensitive
3448
3449 2003-03-25  xor@zed  <xor@zed>
3450
3451         * kernel/event.c: dont change desktop when its out of range
3452
3453         * plugins/keyboard/keyboard.h, plugins/keyboard/tree.h:
3454         move the def'n of the KeyBindingTree
3455
3456         * plugins/mouse/mouse.c:
3457         presses work when clicks dont on the frame around the titlebar..
3458
3459         * plugins/keyboard/translate.c, plugins/mouse/translate.c:
3460         translate "Control" and "Shift" for modifiers too
3461
3462         * render/font.c: bettr font alignment, i think
3463
3464         * plugins/keyboard/keyboard.c: i fucked that one up
3465
3466         * plugins/resistance.c: add 'corner snapping' resistance
3467
3468         * kernel/event.c: typo
3469
3470         * kernel/event.c: dont accept MapRequest's for !iconic windows
3471
3472         * kernel/client.c:
3473         clarify using stacking_lower for restoring the stacking order
3474
3475         * kernel/client.c: free the startup stacking order after using it
3476
3477         * kernel/client.c:
3478         read in the stacking order on startup, and use it to restore windows back to the order they were in before
3479
3480         * kernel/stacking.c:
3481         dont change the stacking order hint while shuting down
3482
3483 2003-03-24  xor@zed  <xor@zed>
3484
3485         * kernel/menu.h: add action.h for menu entries
3486
3487         * kernel/menu.h: you cant reference yourself as a type
3488
3489         * kernel/client.c, kernel/event.c: use g_hash_table properly
3490
3491 2003-03-24  woodblock  <woodblock@zed>
3492
3493         * kernel/menu.c, kernel/menu.h: Added some menu structure.
3494
3495 2003-03-24  xor@zed  <xor@zed>
3496
3497         * kernel/client.c:
3498         make sure the ConfigureNotify is propogated even when there is no change
3499
3500         * kernel/client.c:
3501         always send the event on a final configure even if there was no real move
3502
3503         * kernel/client.c:
3504         make sure windows which cant be moved or resized also can't be fullscreened
3505
3506         * kernel/client.c: only configure the engine if something changed
3507
3508         * kernel/client.c, kernel/event.c:
3509         only perform the actions necessary when performing an engine_adjust_area. pass whether the client has moved or resized
3510
3511         * kernel/event.c: double ptrs suck! yay shape!
3512
3513         * kernel/event.c: handle shape events
3514
3515         * kernel/action.c: dont move/resize !normal windows
3516
3517         * kernel/event.c: kill debug prints
3518
3519         * kernel/client.c: kill debug print
3520
3521         * kernel/client.c, kernel/client.h, kernel/dispatch.h, kernel/event.c, kernel/focus.c:
3522         more focus improvements. everything seems to work!
3523
3524         * kernel/event.h: Time is declared in Xlib.h
3525
3526         * kernel/openbox.c: not.
3527
3528         * kernel/openbox.c: focus seems to work when not remote too now
3529
3530         * kernel/event.c, kernel/openbox.c:
3531         more focus fixes. i wish this could end.
3532
3533         * kernel/client.c: no \n in g_message
3534
3535         * kernel/action.c, kernel/action.h: add restart and exit actions
3536
3537 2003-03-23  xor@zed  <xor@zed>
3538
3539         * kernel/client.c, kernel/client.h, kernel/event.c:
3540         yet more improvements to focus handling
3541
3542         * render/test.c: gl aint used yet
3543
3544         * plugins/resistance.c: export config values
3545
3546         * plugins/focus.c, plugins/placement/placement.c: dont need the bool
3547
3548         * plugins/focus.c: typo
3549
3550         * plugins/placement/placement.c: make history placement optional
3551
3552         * plugins/focus.c: export its options and use them from the rc file
3553
3554         * plugins/mouse/mouse.c: raise AND focus
3555
3556         * plugins/focus.c: export focus options to the rc file
3557
3558         * render/font.c: seems to be better text placement than ever
3559
3560         * render/font.c:
3561         found what seems to be a better vertical offset for the fonts
3562
3563         * kernel/stacking.c: compare it to null like i do elsewhere
3564
3565         * kernel/client.c: code optimization
3566
3567         * kernel/client.c:
3568         when adjusting the trasient lists, set them, dont leave them hanging into space
3569
3570         * kernel/client.c: whitespace
3571
3572         * kernel/dispatch.c: use gnew0 to make life easy
3573
3574         * kernel/plugin.c: use the plugins' plugin_setup_config function
3575
3576         * render/gradient.c: dont render gradients that are missing
3577
3578         * plugins/focus.c, plugins/keyboard/keyboard.c, plugins/mouse/mouse.c, plugins/placement/placement.c, plugins/resistance.c:
3579         add the plugin_setup_config function
3580
3581         * kernel/event.c: kill debug print
3582
3583         * kernel/event.c: handle multiple maprequests graciously
3584
3585         * kernel/screen.c: oops
3586
3587         * kernel/screen.c:
3588         move windows when the number of desktops changes and they arent on a desktop anymore
3589
3590         * kernel/focus.c:
3591         set focus_order back to null on shutdown so g_renew would work
3592
3593         * render/render.c: add more size checks
3594
3595 2003-03-23  woodblock  <woodblock@zed>
3596
3597         * CHANGELOG:
3598         Fix a bug that would put duplicate windows in the workspace menu.
3599
3600 2003-03-23  xor@zed  <xor@zed>
3601
3602         * kernel/openbox.c, kernel/themerc.c, kernel/themerc.h:
3603         rm the themerc stuff
3604
3605         * kernel/Makefile.am: rm themerc.[ch]
3606
3607         * kernel/config.c, kernel/cparse.l: better parsing errors
3608
3609         * kernel/config.c, kernel/config.h: add booleans
3610
3611         * kernel/cparse.l: properly parse comments!
3612         parse booleans
3613
3614         * render/gradient.c: no \n in g_message
3615
3616         * kernel/config.c, kernel/config.h:
3617         add descriptive names and long descriptions to config var def'ns. set these for the kernel config options.
3618
3619 2003-03-22  xor@zed  <xor@zed>
3620
3621         * kernel/config.c, kernel/engine.c, kernel/openbox.c, kernel/plugin.c, kernel/plugin.h:
3622         make the openbox engine use the new config shit instead of the themerc shit.
3623         order te startup so that plugins can set up their config shit before parsing the config, then the config is parsed, engine is loaded, and finally the plugins are officially started.
3624
3625         * kernel/config.c: only load the system rc if the user rc didnt load
3626
3627         * kernel/config.c, kernel/engine.c, kernel/engine.h, kernel/openbox.c:
3628         load the engine out of the config shit. tho the ordering is fucked atm
3629
3630         * kernel/cparse.l: parse lines that start with '#' as comments
3631
3632         * kernel/cparse.l: let identifiers have '.' in them
3633
3634         * kernel/config.c, kernel/cparse.l:
3635         give the filename to the parser for errors
3636
3637         * kernel/cparse.l: remove debug print
3638
3639         * kernel/config.c: yah. fuck
3640
3641         * kernel/config.c: add a check for adding the same exact def'n twice
3642
3643         * kernel/Makefile.am, kernel/config.c, kernel/config.h:
3644         config system fleshed out. many thanks to woodlbock for his code! yay!
3645
3646         * configure.ac: add const and inline checks for the compiler
3647
3648         * kernel/.cvsignore: ignore cparse.c
3649
3650         * kernel/cparse.c: didnt belong
3651
3652         * kernel/Makefile.am, kernel/config.c, kernel/config.h, kernel/cparse.c, kernel/cparse.l, kernel/openbox.c:
3653         start the config system, add the config file parser
3654
3655         * configure.ac: check for stdio.h
3656
3657         * kernel/client.c: asserts in unmanage to try track a crash
3658
3659         * kernel/screen.c: blef
3660
3661         * kernel/action.c, kernel/action.h, kernel/client.c, kernel/client.h, plugins/mouse/mouse.c:
3662         add the client_kill function, and the kill action, and bind it to the middle mouse button on the close button.
3663
3664         * plugins/placement/history.c, plugins/placement/placement.c:
3665         history placement works. loads. saves. woot.
3666
3667         * configure.ac: look for sys/stat.h
3668
3669         * kernel/openbox.c: make the ~/.openbox dir on startup
3670
3671 2003-03-22  woodblock  <woodblock@zed>
3672
3673         * CHANGELOG: Bug fixes from 2_4. Merge point tag 2_4-to-2_3-03-21-2003.
3674
3675 2003-03-22  xor@zed  <xor@zed>
3676
3677         * kernel/client.c, kernel/client.h:
3678         rename the res_name and res_class members to name and class
3679
3680 2003-03-22  woodblock  <woodblock@zed>
3681
3682         * CHANGELOG:
3683         Fixed some more menu lamity, and the infamous xmms focus crash. wunf.
3684
3685 2003-03-21  xor@zed  <xor@zed>
3686
3687         * plugins/mouse/mouse.c: dont raise on client clicks
3688
3689         * data/Makefile.am, data/menu.in: use $(datadir)
3690
3691         * data/Makefile.am: install the menu in $(datadir)
3692         build from $(srcdir)/menu.in
3693
3694         * data/Makefile.am: use the SED command
3695
3696         * kernel/event.c, kernel/openbox.c, kernel/plugin.c, kernel/timer.c, m4/openbox.m4, render/color.c, render/font.c, render/mask.c, render/render.c, render/test.c:
3697         add strict ansi compliance
3698
3699         * configure.ac: find sed
3700
3701         * configure.ac: clean up configure.ac a bit
3702
3703         * configure.ac: rm the c/Makefile
3704
3705         * configure.ac: look for kernel/openbox.c instead of src/main.cc
3706
3707         * render/font.c: include gettext.h from the right place
3708
3709         * kernel/.cvsignore: ignore the openbox3 binary
3710
3711         * kernel/Makefile.am: build 'openbox3' instead of 'ob3'
3712
3713         * kernel/Makefile.am: build the binary called 'openbox3'
3714
3715         * tools/.cvsignore, tools/Makefile.am, tools/obsetroot.cc:
3716         rm the obsetroot tool and the wrap shit from swig
3717
3718         * kernel/client.c, kernel/engine.c, kernel/engine.h:
3719         always adjust the frames size and position together, so there is no more weird resizing before moving and edge flickering when resizing from the top/left
3720
3721         * kernel/screen.c:
3722         dont focus anything in the kernel from showing-the-desktop mode
3723
3724         * plugins/focus.c:
3725         focus windows when entering/leaving enter-the-desktop mode
3726
3727         * plugins/keyboard/keyboard.c: add an xlock binding
3728
3729         * kernel/dispatch.h: better comment for Event_Client_Moving
3730
3731         * kernel/openbox.c: choke on invalid options on the cmd line
3732
3733         * kernel/client.c: dont check for != NULL before freeing. pointless.
3734
3735         * kernel/screen.c: don't check for != NULL before freeing. pointless
3736
3737         * kernel/screen.c: defn vars at the top of funcs
3738
3739         * plugins/placement/placement.c:
3740         dont reposition windows who know what they want
3741
3742         * kernel/client.c, kernel/client.h:
3743         add the client_set_focused function.
3744         make focus state be changed internally immediately after calling the X functions to make it so, basically, assume their success. this elimiates races all over the place with our state vs the server's state.
3745
3746         * kernel/event.c:
3747         use the client_set_focused function when getting FocusIn/Out events
3748
3749         * kernel/focus.c: init the focus_client ptr in startup
3750
3751         * plugins/focus.c: dont focus !normal clients under the mouse
3752
3753         * kernel/screen.c: dont use the client's colormap if it is set to None!
3754
3755         * kernel/Makefile.am, kernel/action.c, kernel/dispatch.c, kernel/dispatch.h, kernel/openbox.c, kernel/snap.c, kernel/snap.h:
3756         add a dispatched event for interactively moving a window.
3757         move window snapping/resistance out of the kernel.
3758         make the action_move dispatch the new event.
3759
3760         * plugins/resistance.c: rm debug print
3761
3762         * plugins/resistance.c: optimization!
3763
3764         * plugins/resistance.c: syntax error!
3765
3766         * plugins/resistance.c: don't snap to non-visibles
3767
3768         * plugins/resistance.c: dont snap to self
3769
3770         * plugins/resistance.c:
3771         rm the edge_resistance option.. just dont load the plugin!
3772
3773         * plugins/focus.c, plugins/placement/placement.c:
3774         make the event function static!
3775
3776         * plugins/Makefile.am, plugins/.cvsignore, plugins/resistance.c:
3777         add a window resistance plugin
3778
3779         * plugins/placement/placement.c: rename event() to place_event()
3780
3781         * kernel/snap.c: snap window-to-window
3782
3783         * plugins/focus.c: focus new windows
3784
3785         * plugins/focus.c: rm debug prints
3786
3787         * kernel/event.c: rm debug print
3788
3789         * kernel/client.c: rm debug prints
3790
3791         * kernel/client.c, kernel/client.h, plugins/focus.c:
3792         rm the focused member from the client struct, it was redundant with the focus_client variable around
3793
3794         * kernel/event.c: update engine last for focus events
3795
3796         * plugins/placement/.cvsignore, plugins/placement/Makefile.am, plugins/placement/history.c, plugins/placement/history.h:
3797         set up the history place stuff's files
3798
3799         * plugins/placement/placement.c: start and stop the history plugin
3800
3801         * kernel/openbox.c:
3802         dont set the restart path to "", load the placement plugin
3803
3804         * plugins/focus.c: dont skip enter events
3805
3806         * .cvsignore, configure.ac, kernel/openbox.c, plugins/Makefile.am, plugins/placement/.cvsignore, plugins/placement/Makefile.am, plugins/placement/placement.c:
3807         add a window placement plugin
3808
3809 2003-03-21  woodblock  <woodblock@zed>
3810
3811         * CHANGELOG: Document unexpandTilde()
3812
3813         * CHANGELOG: Support _NET_WM_STATE_FULLSCREEN
3814
3815         * CHANGELOG: We'll call it 2.4, I guess.
3816
3817         * CHANGELOG: Display titles in the workspace menu as UTF8.
3818
3819 2003-03-20  xor@zed  <xor@zed>
3820
3821         * plugins/focus.c: disable warping on desk switch
3822
3823         * plugins/focus.c: skip events more smarter
3824
3825         * plugins/focus.c: kill all enter events on a desktop switch
3826
3827         * kernel/screen.c: show windows before hiding when switching desktops
3828
3829         * plugins/keyboard/keyboard.c: alt bindings
3830
3831         * plugins/focus.c: skipping the right number of enters now i think
3832
3833         * plugins/focus.c:
3834         skip all enter events for now.. need a clever tactic for this..
3835
3836         * kernel/openbox.c, kernel/openbox.h:
3837         add -help -version -sync and -rc cmd line options
3838
3839         * kernel/Makefile.am: add the binary and urls to the Makefile and -D's
3840
3841         * kernel/geom.h: add RECT_CONTAINS
3842
3843         * kernel/client.c, kernel/client.h:
3844         save decor and functions per client for fullscreening!
3845
3846         * kernel/client.c:
3847         lock the size/position of maximized and fullscreen clients
3848
3849         * plugins/focus.c:
3850         fallback super intelligently with focus when the focused
3851
3852         * kernel/client.c: lock the position/size of maximized windows
3853
3854         * kernel/openbox.c: restart and catch errors appropriately
3855
3856         * kernel/action.c: init the GError to NULL
3857
3858         * kernel/openbox.c: can restart now
3859
3860 2003-03-19  manmower  <manmower@zed>
3861
3862         * render/color.c, render/color.h, render/render.c, render/render.h:
3863         added depth reduction and startup for true color visuals
3864         16bpp should now work
3865
3866 2003-03-19  xor@zed  <xor@zed>
3867
3868         * kernel/openbox.c: restart will work soon
3869
3870         * kernel/client.c: no \n in g_messages
3871
3872         * kernel/event.c: MapRequest needs to activate the window
3873
3874         * plugins/mouse/mouse.c:
3875         dont raise the window on a titlebar drag either
3876
3877         * plugins/mouse/mouse.c: add a drag threshold
3878
3879         * kernel/action.c: snap windows when moving them
3880
3881         * kernel/Makefile.am, kernel/snap.c, kernel/snap.h:
3882         add code for snapping windows to screen edges
3883
3884         * plugins/keyboard/keyboard.c, plugins/mouse/mouse.c:
3885         use the grab.h funcs to grab keys and buttons
3886
3887         * kernel/grab.h: add funcs to grab buttons and keys
3888
3889         * kernel/event.h: export the NumLock and ScrollLock masks
3890
3891         * kernel/event.c: dont need a mask_list here
3892
3893         * kernel/grab.c: grab all lock keys
3894
3895         * plugins/mouse/mouse.c: fewer context lookups
3896
3897         * kernel/event.c: break, dont return
3898
3899         * kernel/event.c: add code to make net_active_window events work
3900
3901         * kernel/action.c, kernel/action.h: add focusraise
3902
3903         * plugins/mouse/mouse.c:
3904         add click on client binding. XAllow when clicking on the client
3905
3906         * kernel/screen.c: put the comment where it belongs
3907
3908         * kernel/screen.c:
3909         on shutdown: destroy the net support window. clear a few more properties we dont want across restart. select NoEventMask on root.
3910
3911         * kernel/focus.c: oops
3912
3913         * kernel/focus.c: destroy the focus_backup
3914
3915         * kernel/screen.c:
3916         erase the openbox_pid hint on the root window when we shutdown
3917
3918         * plugins/focus.c, plugins/mouse/mouse.c:
3919         all the old ob2 mouse bindings are workin
3920
3921         * plugins/mouse/mouse.c: add mbinds for shading windows on the titlebar
3922
3923         * kernel/event.c: ignore !normal crossing events
3924
3925         * plugins/focus.c: simply out the events we dont need no more
3926
3927         * render/render.c: free the right pixel data yay!
3928
3929         * render/render.c: free the pixel data
3930
3931         * kernel/screen.c:
3932         start with 0 desktops, so the focus_order stuff all gets initialized properly
3933
3934         * kernel/focus.c:
3935         the focus_order shit is init'd by the screen_startup setting the number of desktops
3936
3937         * kernel/openbox.c: shutdown everything before closing the display
3938
3939         * render/render.c: can fit on one line
3940
3941         * render/render.c:
3942         initialize texture to NULL if theres no textures. use g_memdup to copy it
3943
3944         * kernel/dispatch.c: comment what funcs is
3945
3946         * kernel/themerc.c: close the channel by unref'ing it
3947
3948         * render/font.c:
3949         kill the const, use g_new instead of malloc, g_free the font in font_close()
3950
3951         * render/font.h: kill the const
3952
3953         * render/font.c: clean up comments regarding alpha
3954
3955         * kernel/client.c:
3956         rm the comments pointer bindings stuff, thats in a plugin now
3957
3958         * kernel/client.c: add new windows to the back of the focus order list
3959
3960         * kernel/client.c, kernel/dispatch.h, kernel/focus.c, kernel/focus.h, kernel/openbox.c, kernel/screen.c, plugins/focus.c:
3961         move the focus_order lists into the kernel
3962
3963         * kernel/action.c, kernel/action.h: add focus actions
3964
3965         * plugins/focus.c: add sloppy focus
3966
3967         * plugins/mouse/mouse.c: end drags
3968
3969         * plugins/mouse/mouse.c: dont clean up nulls
3970
3971         * plugins/keyboard/keyaction.c, plugins/keyboard/keyaction.h:
3972         not using the KeyAction stuff no more
3973
3974         * kernel/action.c, kernel/action.h, kernel/grab.c, plugins/keyboard/Makefile.am, plugins/keyboard/keyboard.c, plugins/keyboard/keyboard.h, plugins/keyboard/translate.c, plugins/keyboard/translate.h, plugins/keyboard/tree.c, plugins/mouse/.cvsignore, plugins/mouse/Makefile.am, plugins/mouse/mouse.c, plugins/mouse/mouse.h, plugins/mouse/translate.c, plugins/mouse/translate.h:
3975         mouse and key bindings plugins work. segfault somewhere still on shutdown
3976
3977         * kernel/openbox.c: reset focus to root before exiting
3978
3979 2003-03-18  xor@zed  <xor@zed>
3980
3981         * plugins/.cvsignore: ignore shit
3982
3983         * configure.ac, plugins/mouse/.cvsignore, plugins/mouse/Makefile.am, plugins/mouse/mouse.c:
3984         add the mouse plugin
3985
3986         * plugins/keyboard/keyboard.c: grab the keyboard not the server!
3987
3988         * plugins/keyboard/keyboard.c: use the grab_server function
3989
3990         * kernel/client.c, kernel/grab.c, kernel/grab.h:
3991         add 'grab_server' for grabbing .. the .. server!
3992
3993         * kernel/Makefile.am, kernel/grab.c, kernel/grab.h, kernel/openbox.c:
3994         provide functions for grabbing and ungrabbing the keyboard and pointer
3995
3996         * plugins/Makefile.am: set the log domain for each plugin properly
3997
3998         * plugins/focus.c:
3999         warp the pointer on a workspace change to the focused window
4000
4001         * kernel/focus.c: kill some whitespace
4002
4003         * kernel/focus.c: kill a comment
4004
4005         * plugins/focus.c: focus fallback works when nothing is focused
4006
4007         * kernel/event.c: dont set the focused client if it's already set
4008
4009         * kernel/focus.c: send the right client for unfocus events
4010
4011         * kernel/focus.c: send unfocus events after focus events
4012
4013         * plugins/Makefile.am: generic domain
4014
4015         * kernel/Makefile.am, kernel/action.c, kernel/action.h, kernel/client.c, kernel/keyboard.c, kernel/openbox.c, kernel/screen.h:
4016         add actions for key/mouse bindings etc
4017
4018         * plugins/keyboard/.cvsignore: add the new objects
4019
4020         * plugins/keyboard/Makefile.am, plugins/keyboard/keyaction.c, plugins/keyboard/keyaction.h, plugins/keyboard/keyboard.c, plugins/keyboard/keyboard.h, plugins/keyboard/translate.c, plugins/keyboard/translate.h, plugins/keyboard/tree.c, plugins/keyboard/tree.h:
4021         keyboard bindings are functional
4022
4023         * configure.ac: dont need process.h, yay glib
4024
4025         * configure.ac: add process.h
4026
4027         * plugins/.cvsignore, plugins/keyboard/.cvsignore: add cvsignores
4028
4029         * configure.ac, kernel/client.c, kernel/client.h, kernel/dispatch.c, kernel/dispatch.h, kernel/engine.c, kernel/focus.c, kernel/openbox.c, kernel/plugin.c, kernel/screen.c, plugins/Makefile.am, plugins/keyboard/Makefile.am, plugins/keyboard/keyboard.c:
4030         add a keyboard plugin
4031
4032         * plugins/focus.c:
4033         focus new windows and focus windows on workspace change
4034
4035         * kernel/Makefile.am, kernel/dispatch.c, kernel/dispatch.h, kernel/engine.c, kernel/engine.h, kernel/openbox.c, kernel/plugin.c, kernel/plugin.h, plugins/Makefile.am, plugins/focus.c:
4036         plugins work.
4037         start a focus plugin.
4038
4039 2003-03-17  xor@zed  <xor@zed>
4040
4041         * render/font.c: dont put \n's at the end of g_message
4042
4043         * kernel/dispatch.c: make sure theres always a client for client events
4044
4045         * kernel/dispatch.h: oops missing a */
4046
4047         * kernel/dispatch.h: fix comments
4048
4049         * kernel/clientwrap.c, kernel/clientwrap.h, kernel/configwrap.c, kernel/configwrap.h, kernel/hooks.c, kernel/hooks.h, kernel/openboxwrap.c, kernel/openboxwrap.h, kernel/python.c, kernel/python.h:
4050         rming almost all the old python stuffs
4051
4052         * kernel/client.c, kernel/dispatch.c, kernel/dispatch.h, kernel/event.c, kernel/focus.c, kernel/openbox.c, kernel/screen.c:
4053         all events are dispatched
4054
4055         * render/font.c: kill the debug print
4056
4057         * plugins/Makefile.am: add the plugins dir
4058
4059         * Makefile.am, configure.ac, kernel/Makefile.am, kernel/client.c, kernel/client.h, kernel/dispatch.c, kernel/dispatch.h, kernel/event.c, kernel/focus.c, kernel/openbox.c:
4060         stop using python internally. add an event dispatcher
4061
4062         * DESIGN/plugins_vs_scripting.txt: kill the timestamps
4063
4064         * DESIGN/plugins_vs_scripting.txt: my rant..
4065
4066         * render/font.c, render/font.h, render/render.c:
4067         pass the x,y,w,h to font_draw.
4068         draw the text in the "right" place for now.. no justification yet
4069
4070         * render/font.c, render/render.h:
4071         measure the font's height instead of listening to Xft
4072
4073         * kernel/event.c: dont skip ungrab corssing events
4074
4075 2003-03-17  manmower  <manmower@zed>
4076
4077         * render/gradient.c, render/gradient.h, render/render.c:
4078         solids should now work with offsets
4079
4080         * render/render.c: more random pokery
4081
4082         * render/render.c: either offsets work, or I've broken lots of things.
4083
4084         * render/render.h, render/test.c:
4085         more changes wrt passing x, y, w, h to render
4086
4087         * render/color.c, render/render.c, render/render.h:
4088         paint gets more parameters
4089
4090         * render/render.h: apparently my variable names were too verbose.
4091
4092         * render/render.h: offsets in planar surfaces
4093
4094 2003-03-17  xor@zed  <xor@zed>
4095
4096         * kernel/hooks.c: declare variables first!
4097
4098         * render/color.c: decalre variables before code!
4099
4100         * kernel/client.c, kernel/client.h:
4101         make client_showhide a static function
4102
4103         * kernel/client.c, kernel/client.h, kernel/screen.c:
4104         speed up workspace switching by causing the minimal number of expose events (none for the hiding windows!)
4105
4106         * kernel/engine.c, kernel/engine.h, kernel/event.c:
4107         give engines mouse event notifications. make the openbox engine display pressed buttons
4108
4109 2003-03-17  manmower  <manmower@zed>
4110
4111         * render/render.h: added justification to textureText
4112
4113 2003-03-17  xor@zed  <xor@zed>
4114
4115         * kernel/themerc.c: pixmap button masks work (hardcoded)
4116
4117         * render/mask.h: dont need those includes no more
4118
4119 2003-03-17  manmower  <manmower@zed>
4120
4121         * render/mask.c, render/mask.h, render/render.c:
4122         in keeping with my tradition of committing untested code, here is the
4123         pixmap mask rendering code ported from the old otk dirs
4124
4125         * render/mask.c, render/mask.h, render/render.h:
4126         move pixmap_mask typedef
4127         add stub for draw_mask
4128
4129 2003-03-17  xor@zed  <xor@zed>
4130
4131         * render/mask.c, render/mask.h: add funcs to create/free pixmap_masks
4132
4133         * render/mask.h: add glib.h for guint
4134
4135         * render/mask.h: include Xlib.h for Pixmap
4136
4137         * render/Makefile.am: add mask.[ch]
4138
4139         * render/mask.c, render/mask.h, render/render.h:
4140         add a struct for pixmap masks
4141
4142 2003-03-17  manmower  <manmower@zed>
4143
4144         * render/render.c: hack so text shows up
4145
4146 2003-03-17  xor@zed  <xor@zed>
4147
4148         * render/render.c:
4149         dont delete the pixmap until after changeing the visible one
4150
4151 2003-03-17  manmower  <manmower@zed>
4152
4153         * render/render.c: add missing include, pass right args to font_draw
4154
4155 2003-03-16  manmower  <manmower@zed>
4156
4157         * render/render.c: malloc.  yeah.
4158
4159 2003-03-16  xor@zed  <xor@zed>
4160
4161         * kernel/openbox.c: will draw fonts when stop segging
4162
4163 2003-03-16  manmower  <manmower@zed>
4164
4165         * render/render.c: copy textures in appearance_copy
4166
4167         * render/render.c: try to render fonts
4168         destroy pixmaps and xftdraws in appearance_delete
4169
4170         * render/render.h: font changes
4171
4172         * render/gradient.c: remove printf and stdio.h
4173
4174         * render/font.c: add font_draw
4175
4176         * render/font.h: add font_draw
4177         move font def'n to render.h
4178
4179 2003-03-16  xor@zed  <xor@zed>
4180
4181         * kernel/Makefile.am, kernel/configwrap.c, kernel/configwrap.h, kernel/openbox.c, kernel/pointer.c:
4182         pointer's variables are config vars
4183
4184 2003-03-16  manmower  <manmower@zed>
4185
4186         * render/Makefile.am: font.h and font.c
4187
4188         * kernel/openbox.c: added font_startup
4189
4190         * render/render.h: filled out font texture
4191
4192         * render/font.c, render/font.h: added some font stuff
4193
4194 2003-03-16  xor@zed  <xor@zed>
4195
4196         * themes/.cvsignore, themes/Makefile.am, Makefile.am, README.CVS, bootstrap, configure.ac, doc/Makefile.am, doc/bsetbg.1, doc/bsetroot.1, doc/openbox.1.in, doc/themerc.txt, kernel/.cvsignore, kernel/Makefile.am, kernel/client.c, kernel/client.h, kernel/clientwrap.c, kernel/clientwrap.h, kernel/engine.c, kernel/engine.h, kernel/event.c, kernel/event.h, kernel/extensions.c, kernel/extensions.h, kernel/focus.c, kernel/focus.h, kernel/frame.c, kernel/frame.h, kernel/geom.h, kernel/gettext.h, kernel/hooks.c, kernel/hooks.h, kernel/keyboard.c, kernel/keyboard.h, kernel/openbox.c, kernel/openbox.h, kernel/openboxwrap.c, kernel/openboxwrap.h, kernel/pointer.c, kernel/pointer.h, kernel/prop.c, kernel/prop.h, kernel/python.c, kernel/python.h, kernel/screen.c, kernel/screen.h, kernel/stacking.c, kernel/stacking.h, kernel/themerc.c, kernel/themerc.h, kernel/timer.c, kernel/timer.h, kernel/xerror.c, kernel/xerror.h, m4/openbox.m4, m4/swig.m4, render/.cvsignore, render/Makefile.am, render/color.c, render/color.h, render/font.c, render/gradient.c, render/gradient.h, render/render.c, render/render.h, render/test.c:
4197         merge the C branch into HEAD
4198
4199         * kernel/openboxwrap.c: add functions for next/previous workspace
4200
4201         * kernel/pointer.c: no segfault with the cleaner code
4202
4203         * kernel/pointer.c: clean up pointer_event a little
4204
4205 2003-03-12  xor@zed  <xor@zed>
4206
4207         * kernel/keyboard.c, render/render.c: blef
4208
4209 2003-03-11  xor@zed  <xor@zed>
4210
4211         * kernel/pointer.c:
4212         fire off pointer events and grabbed events, make work withthe new bindings model
4213
4214 2003-03-08  xor@zed  <xor@zed>
4215
4216         * kernel/keyboard.c: use glib TRUE/FALSE
4217
4218         * kernel/keyboard.c: new keyboard model (the old old one basically..)
4219
4220         * kernel/clientwrap.c: compare 2 clients properly
4221
4222         * kernel/clientwrap.c:
4223         return False when comparing a client to another object type
4224
4225         * kernel/keyboard.c: pass a KeyboardData instead of just the chain
4226
4227         * kernel/keyboard.c: typo in the port to C
4228
4229         * kernel/clientwrap.c: add __eq__ to Client
4230
4231         * kernel/openboxwrap.c: check for desktops out of range
4232
4233         * kernel/client.c:
4234         OMG KILL ME PLZ THAT WAS SO FUCKING STUPID YA LETS USE TRUE AS THE INDEX FUCK YES THATS SO FUCKING BRILLIANT I THINK A MUTINY IS IN ORDER NOW
4235
4236         * kernel/openbox.c: must use a tuple for the argument list
4237
4238         * kernel/clientwrap.c: add the maximized() setMaximized() funcs
4239
4240         * kernel/pointer.c: add the drag threshold
4241
4242         * kernel/clientwrap.c: add Client.close()
4243
4244         * kernel/client.c: keep clients in the right range of desktops
4245
4246         * kernel/client.c: kill debug prints
4247
4248         * kernel/client.c: client_validate should return TRUE sometimes@!(
4249
4250         * kernel/event.c: *** empty log message ***
4251
4252         * kernel/client.c:
4253         position the maximized window so that its client's left edge is at the edge of the screen
4254
4255         * kernel/client.c:
4256         dont resize the client window unless its size changed
4257
4258         * kernel/client.c: dont resize the frame when not needed
4259
4260 2003-03-08  manmower  <manmower@zed>
4261
4262         * render/render.c, render/test.c: solid.
4263
4264 2003-03-08  xor@zed  <xor@zed>
4265
4266         * kernel/openbox.c: start render before the engine
4267
4268 2003-03-08  manmower  <manmower@zed>
4269
4270         * render/gradient.c, render/render.c, render/render.h:
4271         hopefuly pixmap management is improved.
4272
4273         * render/render.c: appearance_copy needs to copy the whole appearance.
4274
4275         * render/render.c: copy the original.  ugh
4276
4277         * render/gradient.c, render/render.c:
4278         fix appearance_copy (check for null colors)
4279
4280         * render/gradient.c, render/render.c, render/render.h:
4281         removed interlace_color
4282         added appearance_copy
4283
4284         * render/gradient.c, render/gradient.h, render/render.c, render/render.h, render/test.c:
4285         removed w,h from surface struct
4286         it is now passed with paint()
4287
4288 2003-03-08  xor@zed  <xor@zed>
4289
4290         * kernel/geom.h: kill an assert.h include
4291
4292 2003-03-07  manmower  <manmower@zed>
4293
4294         * render/render.c: only free it if I allocated it!
4295
4296         * render/render.c: still retarded
4297
4298         * render/render.c, render/test.c: I hate being retarded
4299
4300         * render/color.c:
4301         color_rgb now reflects the actually color, not requested
4302
4303         * render/color.c, render/color.h:
4304         allocate colors on creation, added .pixel to color_rgb
4305
4306         * render/color.c, render/color.h, render/render.c, render/test.c:
4307         added color_free, made appearance_free use it
4308
4309 2003-03-07  xor@zed  <xor@zed>
4310
4311         * render/color.h: add include for GC
4312
4313         * kernel/Makefile.am: use librender.a
4314
4315         * render/Makefile.am: make a librender.a
4316
4317 2003-03-07  manmower  <manmower@zed>
4318
4319         * render/color.c, render/color.h, render/gradient.c, render/render.c, render/render.h, render/test.c:
4320         added color new/destroy
4321         made color_rgbs in appearance into pointers
4322         updated the rest to follow
4323
4324 2003-03-07  xor@zed  <xor@zed>
4325
4326         * configure.ac: look for ctype.h for toupper
4327
4328         * kernel/themerc.c: use g_build_filename!
4329
4330         * kernel/themerc.c: dont need to check for path being set now
4331