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