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