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