2005-03-28  Kristian Høgsberg  <krh@redhat.com>

	* src/texture.c (init_mipmap): Use GL_CLAMP instead of GL_REPEAT
	(thanks to yeknom from #fedora-desktop).

	* src/spring-model.c (model_step_object): Remove fancy integration.

2005-03-28  Kristian Høgsberg  <krh@redhat.com>

	* src/spring-model.c (model_new, model_step_object, wobble):
	Remove spurious term from integration step, adjust constants, and
	fix grid rounding so the wobbling now settles nicely.

2005-03-26  Kristian Høgsberg  <krh@redhat.com>

	* src/spring-model.c (wobbly_callback): Fix the logic of the test
	for first time through.

2005-03-26  Kristian Høgsberg  <krh@redhat.com>

	* src/*: Fix gcc 4.0 warnings about different signedness in
	pointer types.
	
2005-03-26  Kristian Høgsberg  <krh@redhat.com>

	* src/spring-model.c (wobbly_callback): Make sure we set a
	deformation on the first callback.

	* src/output.c (lmc_output_window_set_deformation): Remember the
	deformation in LmcOutputWindow so we can set it on new textures.

	* src/output.c (lmc_output_window_set_bits): Set the remembered
	deformation on new textures.

	* src/gui.c (lmc_animation_new): Use lmc_animation_callback() to
	call the animation callback up front and don't return the
	animation, since it could be unreffed in the callback.

2005-03-25  Kristian Høgsberg  <krh@redhat.com>

	* src/spring-model.c (model_new): Initialize model->step and
	model->last_time to 0 so we get consistent wobbly
	behaviour.

	* src/spring-model.c (model_set_grid_size): New function to set
	the desired size of the grid and let the model wobble to that
	size.  There is still a flicker issue, though.

2005-03-24  Owen Taylor  <otaylor@redhat.com>

	* src/toplevel.c (toplevel_pad_alpha): Only pad
	newly damaged area. Fix for big endian.

2005-03-24  Owen Taylor  <otaylor@redhat.com>

	* src/texture.c: Use GL_UNSIGNED_BYTE rather than
	GL_UNSIGNED_INT_8_8_8_8_REV as the pixel format
	on little endian machines. The meaning is the same,
	but it is friendlier to ATI's binary drivers.

2005-03-24  Owen Taylor  <otaylor@redhat.com>

	* src/window.c (lmc_window_select_input): Fix bug in updating
	event masks that was causing focus change events to be lost.
	
2005-03-24  Owen Taylor  <otaylor@redhat.com>

	* README configure.ac: Update GLib version requirement.
	(Rchard Plana)

2005-03-24  Kristian Høgsberg  <krh@redhat.com>

	* src/spring-model.c (wobbly_callback, model_step): Fix rounding
	error that caused the model to not be updated.

2005-03-24  Kristian Høgsberg  <krh@redhat.com>

	* src/spring-model.c (lmc_wobble_setup, on_size_changed):
	Subscribe to "size-changed" and reinitialize the model on resize.
	Still not perfect, but less unusable.

	* src/toplevel.c (do_size_change, lmc_toplevel_class_init):
	Install "size-changed" signal and emit it on toplevel size
	changes.

2005-03-23  Kristian Høgsberg  <krh@redhat.com>

	* src/toplevel.c (toplevel_pad_alpha): Add this function to pad
	out the alpha channel for visuals that don't have one.
	(create_window_image): Use LMC_BITS_ARGB_32 for 24 bit visuals
	also, so we get an alpha channel for the decoration.

	* src/decoration.c (scale_pixbuf_to_bits): Clip to destination
	LmcBits.
	(lmc_decoration_draw): Only draw title if a title has been set.

	* src/toplevel.c (send_sync_request, lmc_toplevel_grab_focus) 
	(lmc_toplevel_delete): Don't write past end of array.

2005-03-15  Kristian Høgsberg  <krh@redhat.com>

	* src/gui.c, src/gui.h: Move LmcAnimation object and method
	prototypes to header file.
	
	* src/gui.c: (on_bits_available), (on_map_notify),
	(on_unmap_notify), (on_destroy_notify), (on_focus_out): Make these
	return gboolean.
	
	* src/output.c: (lmc_output_window_set_deformation): New function,
	which just forwards the deformation to the current texture.
	
	* src/spring-model.c, src/spring-model.h: New files.
	* src/Makefile.am: Add src/spring-model.[ch].
	
	* src/texture.c, src/texture.h: Add a mutex to protect updating of
	the deformation grid so we avoid tearing.
	
	* src/types.h: Move the deformation func typedef here.

2005-03-08  Kristian Høgsberg  <krh@redhat.com>

	* ChangeLog: Fix a couple of typos in previous entry, commit
	missing entry for deformation changes.
	
	* src/texture.c (lmc_texture_set_deformation): New function for
	setting a deformation for a window.  The deformation is specified
	as a function mapping local window coordinates to deformed global
	coordinates.

2005-03-08  Kristian Høgsberg  <krh@redhat.com>

	* src/toplevel.c: Take decoration border into account when
	creating the window image and when accessing the window image in
	general.
	(lmc_toplevel_new): use g_signal_connect_after for
	event::MapNotify so the handler in gui.c is run and can set the
	border info before we create the window image.

	* src/output.c: Remove everything related to ACTION_DRAW_BORDER.

	* src/gui.c (gui_get_output_window, gui_get_decoration): Simplify
	these to just get the corresponding GObject user data.
	(gui_create_output_window): Move decoration creating to
	on_map_notify so we set the border info before the window image is
	created.
	(on_map_notify): New function, we create the decoration here.
	(on_position_changed): Account for offset introduced by
	decoration.
	(on_modified): Redraw decoration whenever window image change
	areas intersect the decoration.

	* src/decoration.c (struct _LmcDecoration): Cut down LmcDecoration
	to be just a helper object for drawing decorations.
	(draw_layout_on_bits): Change to draw on an LmcBits instead.
	(scale_pixbuf_to_bits): New function to replace use of
	gdk_pixbuf_scale.
	(lmc_decoration_contains): New function to test wether an update
	rectangle affects the decoration.

	* src/bits.c (lmc_bits_get_pixel, lmc_bits_set_pixel): Add these
	functions for accessing pixels in a LmcBits.

	* src/clearlooks.png: Fix stray pixel.
	
2005-03-04  Kristian Høgsberg  <krh@redhat.com>

	* src/gui.c (gui_create_output_window, gui_get_output_window):
	Clean up the way these functions work.

2005-03-01  Kristian Høgsberg  <krh@redhat.com>

	* src/gui.c (lmc_animation_new): Add LmcAnimation class for
	handling animations.
	
	* src/swoosh.png: Add buttons to decoration.

	* src/swoosh.xcf: Add gimp image file with buttons in a separate
	layer.

	* src/decoration: Adjust offsets to match swoosh.png.

2005-02-12  Owen Taylor  <otaylor@redhat.com>

	* src/gui.[ch] (lmc_gui_new) src/main.c (main):
	Add --num-desktops option.

	* src/root.[ch] (lmc_root_new) src/main.c:
	Add --update-root option.

Sat Feb 12 19:43:52 2005  Søren Sandmann  <sandmann@redhat.com>

	* src/toplevel.c (on_property_changed): Add missing notifications
	preventing non-gtk+ applications from showing up.

Sat Feb 12 19:15:31 2005  Søren Sandmann  <sandmann@redhat.com>

	* src/gui.c (on_client_message): New function. Primitive support
	for fullscreen applications.

	* src/output.[ch]: Add option whether to show pager or not.

	* src/toplevel.[ch]: Add code to set _NET_WM_STATE appropriately

2005-02-12  Kristian Høgsberg  <krh@redhat.com>

	* src/decoration.c: Add theme support (woot!) to luminocity.  The
	Swoosh theme is based on Diana Fong's mockup, but the crop offsets
	needs to be adjusted.
	
	* src/swoosh.png: Image data for the Swoosh theme.

	* src/gui.c (lmc_gui_toggle_fullscreen): Expose fullscreen toggling.
	
	* src/main.c (main): Add --fullscreen GOption to instruct
	luminocity to start up in fullscreen mode.
 
2005-02-12  Owen Taylor  <otaylor@redhat.com>

	* src/utils.c (lmc_load_datadir_pixbuf): Remove
	stray const.

	* src/Makefile.am: Add missing quoting.

2005-02-11  Owen Taylor  <otaylor@redhat.com>

	* src/texture.c (texture_emit_quad): Offset texture
	coordinates by an empirically determined amount to
	increase sharpness.

2005-02-11  Owen Taylor  <otaylor@redhat.com>

	* src/gui.c (on_key_press/release, on_focus_out):
	Track keys we have down, and on focus out, 
	synthesize key up events.

2005-02-11  Owen Taylor  <otaylor@redhat.com>

	* src/Makefile.am: Install decoration pixmaps.

	* src/utils.[ch] src/decoration.c src/gui.c: Look for 
	decoration pixmaps installed if not found in the current
	directory.

Fri Feb 11 18:05:08 2005  Søren Sandmann  <sandmann@redhat.com>

	* configure.ac: Revert mistakenly committed 'fix' for my setup.

Fri Feb 11 18:03:13 2005  Søren Sandmann  <sandmann@redhat.com>

	* src/gui.c: Add fading animation when new windows appear.

	* src/toplevel.c: Make the bits unavailable until the client has
	finished drawing them.

2005-02-09  Owen Taylor  <otaylor@redhat.com>

	* src/output_thread_func(). Call glViewport() so that 
	it works when the window isn't originally created at
	the final size.

2005-02-09  Owen Taylor  <otaylor@redhat.com>

	* Add auto-configury.

2005-02-08  Owen Taylor  <otaylor@redhat.com>

	* src/bits.c (lmc_bits_lock): Fix problem returning the
	wrong result which was resulting in unpaired locks/unlocks.

	* src/toplevel.c (undamage_window): Add a missing
	lmc_bits_unlock().

Tue Feb  8 13:32:54 2005  Søren Sandmann  <sandmann@redhat.com>

	* src/gui.c: Maintain pointer in floating point source
	coordinates. Add functions to translate between source and output
	coordinates.
	
	* src/gui.c (animation_destroy, animation_next_frame,
	animation_do_frame): Add animation when swtichting from workspace
	to workspace.

	* src/main.c (main): Die if the source root window is not a
	multiple on N_PAGERS.

	* src/output.c (output_thread_func): Make it take the visible
	rectangle into account. Draw the background as polygons.

	* src/output.c (output_thread_func): Call glFinish() after each
	buffer swap. Call the bread crumb callbacks

	* src/output.c (lmc_output_new): Initialize visible area.

	* src/output.c (lmc_output_get/set_visible_rect,
	lmc_output_qwueue_bread_crumb): new functions. 

	* src/root.c (lmc_root_new): Manual redirect instead of 
	* src/output.h: Add lmc_output_queue_bread_crumb(), add
	lmc_output_get_size(), lmc_output_get/set_visible_rect()

Sat Dec  4 17:04:58 2004  Owen Taylor  <otaylor@redhat.com>

	* src/output.c (output_thread_func): Fix a race condition
	in setting output->idle.

	* src/output.c (execute_draw_action): Don't do update
	actions in here.

	* src/texture.c (update_base_mipmap): Disable base
	texture generation for now, since we aren't using the yet.

Fri Dec  3 17:46:30 2004  Owen Taylor  <otaylor@redhat.com>

	* src/toplevel.c (undamage_window): Trap errors in
	case the window goes away.

Fri Dec  3 17:00:31 2004  Owen Taylor  <otaylor@redhat.com>

	* src/output.c (output_thread_func): Change the background
	texture to be drawn only for the main viewport, rather
	than being in world coordinates.

Fri Dec  3 16:57:00 2004  Owen Taylor  <otaylor@redhat.com>

	* src/output.c (output_invalidate_rect): Temporarily
	#if out the clamping to the screen, since for now
	output->invalid is basically in world coordinates.

	* src/decoration.c (decoration_repaint): Copy the
	entire pixbuf from the source, not just the borders.
	The red areas for non-border areas were leaking into
	smaller mipmaps.

	* src/texture.c (create_buffer): Zero out scanlines
	not in the source buffer.

	* src/texture.c (texture_emit_quad): Fix problem with
	drawing quads in the other half over the overlap area.

	* src/decoration.c (TITLE_RIGHT_PAD): Leave a gap to the
	right of the title to prevent bleading into the blank 
	area.
	
	* src/decoration.c (decoration_get_title_width): Fix a bug where 
	the wrong decoration borders were being used initially.

Fri Dec  3 15:54:28 2004  Owen Taylor  <otaylor@redhat.com>

	* src/toplevel.c (lmc_toplevel_new): Deal with toplevels
	vanishing on creation.

Fri Dec  3 15:19:37 2004  Owen Taylor  <otaylor@redhat.com>

	* src/gui.c (lmc_gui_cleanup): Flush the X connection
	after switching to workspace 0.

Fri Dec  3 10:45:30 2004  Owen Taylor  <otaylor@redhat.com>

	* src/pager-decoration.png: Frame for pager.

Fri Dec  3 10:31:27 2004  Owen Taylor  <otaylor@redhat.com>

	* src/main.c src/gui.[ch]: Switch to workspace 0 before
	exiting. (Not working for some reason, why???)

	* src/output.c: Rework handling of update actions to
	fix bug where all windows would occasionally vanish.

	* src/output.[ch] src/gui.c: Add freeze/thaw for
	LmcOutput to allow switching workspaces atomically.

Fri Dec  3 09:54:34 2004  Owen Taylor  <otaylor@redhat.com>

        * src/texture.c: Implementing tiling for textures larger
	than supported by the video card. Implement mip-mapping.
	Add a bunch of messy, probably buggy, dead-slow code.

	* src/output.[ch]: Add "viewport" functionality for
	displaying additional views of parts of the global coordinate
	space.

	* src/output.[ch]: Hack up to have hardcoded "cursor",
	"pager border" textures that draw in a defined order with
	the background and don't appear in viewports.

	* src/gui.c: Use the new functionality in LmcOutput to add
	4 thumbnailing pagers and workspace switching.

Tue Nov 30 10:34:14 2004  Owen Taylor  <otaylor@redhat.com>

        Factor texture handling out of output.c - based on a patch
	by Dave Malcolm.

	* src/types.h src/output.h: Move LmcBorderInfo here.

	* src/texture.[ch]: New files for texture code from
	output.c.

Wed Nov 10 19:58:09 2004  Owen Taylor  <otaylor@redhat.com>

	* src/gui.c (on_button_press): Fix not passing through
	clicks to windows.

Wed Nov 10 19:43:59 2004  Owen Taylor  <otaylor@redhat.com>

	* src/decoration.h: Add LMC_ACTION_NOOP for "on a 
	decoration that doesn't do anything"

	* src/gui.c (gui_toplevel_at_position): Suppress resize
	actions for non-resizable windows.

	* src/toplevel.[ch]: Add lmc_toplevel_is_resizable().

	* src/gui.c (gui_set_cursor_action): Set a cursor explicitely for
	title bars, to work around the mouse leaking through to the 
	underlying window.

Wed Nov 10 16:11:09 2004  Owen Taylor  <otaylor@redhat.com>

	* src/bits.c (lmc_bits_unref): Free the LmcBits structure *last*.

	* src/bits.h: Add lmc_bits_has_alpha()

	* src/output.c: Use GL_MODULATE to get alpha-blending of alpha
	textures working.

	* decoration.png: Add rounded corners, recolor to
	something less dark.

	* toplevel.c: Make constrain_size() a no-op before we have the
	size hints, constrain before mapping windows if necessary.

	* main.c output.c: Map the main window after doing all the setup.

	* output.c: Make it easier to enable/disable scissoring. 
	Scissoring doesn't work on i915 in non-full-screen mode.

	* output.c: Set
	glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST), give 
	more of a chance of getting through software-Mesa fastpath.

	* output.c: Comment out dump_error() internals. 
	glGetError() is a server roundtrip.

Mon Nov  8 18:39:32 2004  Owen Taylor  <otaylor@redhat.com>

	* src/gui.c (on_key_press): Add S-F11 for toggle-fullscreen,
	and S-q for quit.

Mon Nov  8 18:38:04 2004  Owen Taylor  <otaylor@redhat.com>

	* src/output.c (make_window): Make screen-size windows
	resizable.

Mon Nov  8 10:27:32 2004  Owen Taylor  <otaylor@redhat.com>

	* src/gui.c (gui_set_cursor_action): Display the appropriate
	cursor when hovering over resize handles and during
	resize.

	* src/gui.c (set_root_cursor): Set a pointer on the
	root window to replace the default X.

	* Makefile: Pull in Xcursor

	* src/toplevel.[ch]: Add lmc_toplevel_send_configure_notify()

	* src/root.c (on_configure_request): Change resizes requested 
	by client to go through lmc_toplevel_move_resize, send synthetic 
	configures as per ICCCM. (Still need some work for the
	case where we supress resizes via sync-update-counter.)
	
	* src/root.c (on_configure_notify): Don't get confused
	by our own synthetic configure events.

Sat Nov  6 23:55:44 2004  Owen Taylor  <otaylor@redhat.com>

	* src/bits.[ch] src/decoration.c: Genericize 
	lmc_bits_from_pixbuf().

	* src/output.[ch] src/gui.[ch] src/main.c: Add
	background-image facility, allow putting an image
	on the command line.

Sat Nov  6 22:59:18 2004  Owen Taylor  <otaylor@redhat.com>

	* src/decoration.c: Use pango-ft2 to draw window titles.

	* src/decoration.c src/gui.c: Drop area from ::modified
	signal, it wasn't that useful, and added lots of complexity.

Sat Nov  6 17:20:32 2004  Owen Taylor  <otaylor@redhat.com>

	* src/decoration.[ch] src/gui.c: Move decoration
	handling into a separate object, file, in preparation
	for adding titlebar text.

	* src/toplevel.c: Add a ::wm-named-changed signal.

	* src/gui.c src/toplevel.[ch]: Hook up the close button.

Sat Nov  6 15:37:23 2004  Owen Taylor  <otaylor@redhat.com>

	* src/Makefile: Link to gdk-pixbuf for loading images.

	* src/bits.h src/output.c: Support the GdkRGB color
	formats as LMC_BITS_RGB_24 and LMC_BITS_RGBA_MSB_32.

	* src/gui.c src/decoration.png: Add window decorations,
	hook up moving/resizing from the decoration.

	* src/output.[ch]: Add the ability to have a border
	and overlay textures. (overlay is intended for titlebar text)

	* src/toplevel.[ch]: Add lmc_toplevel_move_resize(),
	lmc_toplevel_get_set_size(), lmc_toplevel_get_set_position(), 
	needed for smooth resizing from the top or left.

Mon Nov  1 16:00:40 2004  Owen Taylor  <otaylor@redhat.com>

	* src/window.[ch] async.[ch]: Add an asynchronous property
	retrieval framework. 

	* async.[ch]: Add an async-error-trap mechanism that
	allows ignoring errors without a roundtrip.

	* src/display.[ch] src/events: Add an event signal, use it
	for SyncAlarNotify counter events and MappingNotify events
	which aren't associated with a window.

	* src/gui.c: Forward keyboard mapping and keyboard
	events to the target display.

	* source/output.[ch] src/gui.c: Make alpha value for windows 
	settable. Use that to make the focused window opaque,
	other windows slightly transparent.

	* source/root.[ch]: Track the current focus window.

	* src/toplevel.c: Track standard window manager property
	(WM_HINTS, WM_NORMAL_HINTS, WM_PROTOCOL, WM_NAME,
	_NET_WM_NAME).

	* src/toplevel.c: Constrain resizing to geometry hints.

	* src/toplevel.[ch]: Support focusing windows, including
	WM_TAKE_FOCUS protocol.

	* src/toplevel.c: Add support for _NET_WM_SYNC_REQUEST.

Fri Oct 29 20:27:22 2004  Owen Taylor  <otaylor@redhat.com>

	* AUTHORS Makefile README: Add a README file.

Fri Oct 29 20:10:48 2004  Owen Taylor  <otaylor@redhat.com>

	* gui.c output.c root.c: Fix some bugs with restacking.

	* toplevel.c: Fix a shm segment leak.

	* toplevel.c: Rework damage area handling to be more
	correct and more efficient.

Fri Oct 29 16:41:34 2004  Owen Taylor  <otaylor@redhat.com>

	* events.c: Handle XFixes events.

	* gui.c root.c: Track cursor image and position, use to
	draw the cursor in the image, instead of using the host 
	cursor.

	* main.c output.c: Add a "delete-window" signal for
	WM_DELETE_WINDOW, hook up to quit the app.

	* output.c: Hack to always redraw everything when the
	window is moved to get around savage driver bugs.

	* output.c: Use a condvar to wait when idle, rather than
	a sleep loop.
	

