2006-06-21 David Reveman * src/window.c: Add updateTransientHint to protect against circular transient dependencies. (bnc 186825) 2006-06-20 David Reveman * src/window.c (addWindowSizeChanges): Constrain window dimensions if they are too large. * gnome/window-decorator/gnome-window-decorator.c (get_mwm_prop): Trap X errors. 2006-06-20 Dan Winship * configure.ac (ALL_LINGUAS): Add pl 2006-06-16 David Reveman * plugins/compiz.schemas.in.in: Regen. * plugins/switcher.c: * plugins/scale.c: Add modal dialogs and fullscreen windows to default window types. (bnc 185749) * gnome/window-decorator/gnome-window-decorator.c: Track motif WM hints and disable decorations when application wants no titlebar. (bnc 185852) 2006-06-15 David Reveman * plugins/cube.c (cubePaintTransformedScreen): Remove PAINT_SCREEN_CLEAR_MASK from mask. * plugins/switcher.c (switchPaintScreen): Add PAINT_SCREEN_CLEAR_MASK when zooming. (bnc 183676) * src/paint.c (paintTransformedScreen): Clear color buffer if PAINT_SCREEN_CLEAR_MASK is present. * include/compiz.h: Add PAINT_SCREEN_CLEAR_MASK. * gnome/window-decorator/gnome-window-decorator.c: Add DM selection support and --repalce option so it's possible to replace an existing window decorator in the same way as it's possible to replace a window manager. (bnc 185296) (close_button_event): (max_button_event): (min_button_event): De-highlight on NotifyGrab. (bnc 185293) 2006-06-12 Dan Winship * plugins/cube.c: * plugins/switcher.c: Mark cube as needing to load before switcher rather than marking switcher as requiring cube. bnc #183676. * plugins/gconf-dump.c (dumpPluginOptions): Output load_before and requires for all plugins, even if the list is empty, to ensure that an empty value in a new release overrides a non-empty value in an older release. * plugins/compiz.schemas.in.in: regen 2006-06-09 Dan Winship * configure.ac: add translations 2006-06-09 David Reveman * plugins/move.c (moveHandleMotionEvent): Handle shaded windows better. * src/window.c (maximizeWindow): * src/event.c (handleEvent): Allow windows to be both maximized and shaded. * src/window.c: Update addWindowSizeChanges so it can be used by moveResizeWindow. (updateWindowAttributes): Add missing sendSyncRequest call. (addWindowSizeChanges): Make maximized window placement a bit better. (moveResizeWindow): Adjust window geometry using addWindowSizeChanges. (bnc 183121) * src/window.c: Only allow shading on windows with top decoration. * src/event.c (handleEvent): Check that shade action is allowed before shading a window. 2006-06-08 David Reveman * plugins/decoration.c (decorInitWindow): * plugins/minimize.c (minInitWindow): * src/window.c (addWindow): Handle initially shaded windows correctly. * plugins/switcher.c (switchTerminate): Only use hideWindow if switcher window is managed and mapped. (switchInitiate): Only use showWindow if switcher window is hidden. (bnc 182519) * plugins/minimize.c (minHandleEvent): Make sure we adjust the window region correctly when it's being unshaded. 2006-06-07 David Reveman * configure.ac: Bump version to 0.0.13. * plugins/compiz.schemas.in.in: Regen. * src/window.c: Add window shading support. * src/screen.c: * src/paint.c: * src/event.c: Adjust for window shading support. (handleEvent): Handle RESTACK client messages with sibling None correctly. * src/event.c: * src/display.c: Add toggle window shade binding. * plugins/minimize.c: Add window shading animation support. * plugins/fade.c: * plugins/place.c: * plugins/resize.c: * plugins/scale.c: * plugins/switcher.c: * plugins/decoration.c: Adjust for window shading support. * include/compiz.h: Add window shading support. * gnome/window-decorator/gnome-window-decorator.c: lower_window -> restack_window and change it so it can be used for both raising and lowering a window. Add support for double_click_titlebar setting. (title_event): Don't activate window on titlebar click only raise it. Use double_click_action to determine what should be done when titlebar is double clicked. (update_event_windows): Remove vertical resize event windows when top level window is shaded. (window_state_changed): Update event windows when window state changed. * gnome/window-decorator/gnome-window-decorator.c: * gnome/compiz-window-manager.c: Add support for shade double click setting. * plugins/compiz.schemas.in.in: Regen. * plugins/cube.c (cubePaintTransformedScreen): * plugins/wobbly.c (wobblyDrawWindowGeometry): * plugins/switcher.c (switchPaintWindow): * src/paint.c (drawWindowGeometry): Disable client-side texture coordinate arrays that are not used. (bnc #182430) * plugins/compiz.schemas.in.in: * plugins/resize.c: * plugins/move.c: Add initiate_keyboard binding which is more appropriate for key-binding as it moves the cursor to middle of window. 2006-06-06 David Reveman * plugins/switcher.c: Track thumbnail damage correctly. (switchPaintScreen): Only intercept paintScreen when screen is grabbed or we're zooming and ss->translate > 0.001. (switchPaintScreen): Paint switcher window correctly when we're not zooming. Add cube as a dependency to make sure background is rendered correctly when zooming. (bnc #181909) * src/window.c (moveResizeWindow, ensureWindowVisibility): Don't make sure fullscreen windows are in workarea. (fdo #7115) (bnc #181907) * src/event.c (handleEvent): Track XA_WM_CLASS property changes. * src/window.c: * include/compiz.h: remove updateWindowClass and update updateWindowClassHints. 2006-06-02 David Reveman * configure.ac: Bump version to 0.0.12. * src/event.c (handleEvent): Fix typo. * gnome/window-decorator/gnome-window-decorator.c: Hide tooltips on NotifyGrab. (bnc #180692) 2006-06-01 Dan Winship * src/event.c (handleEvent): If we receive a _NET_SHOWING_DESKTOP request with no window set, set the flag on all screens. (Fixes the KDE "show desktop" applet.) Also, don't allow a client to change its _NET_WM_DESKTOP. * src/window.c (addWindow): Set _NET_WM_DESKTOP on all windows to 0; KDE's pager and tasklist require this to be set. (bnc 178320) 2006-06-01 David Reveman * include/compiz.h: * src/window.c: Add updateWindowClass. 2006-05-31 David Reveman * include/compiz.h: * src/screen.c: * src/display.c: Add hide_skip_taskbar_windows option. (bnc 180055) * include/compiz.h: * src/window.c: Add getStartupId. * src/screen.c: Save initial viewport when startup notification is received. Fix implementation of applyStartupProperties. (bnc 180224) * src/event.c (handleEvent): Handle startup ID property changes. * plugins/place.c: Adjust work area to initial viewport. * plugins/cube.c (cubePaintTransformedScreen): Disable skydome animation while cube is unfolded. (bnc 179833) * plugins/switcher.c (switchPaintWindow): Make sure selected window is not clipped incorrectly when some window is transformed. (bnc 179828) * plugins/move.c (moveHandleEvent): Initialize xRoot and yRoot. (bnc 179902) * src/Makefile.am (INCLUDES): Add @GL_CFLAGS@. (Eric Work) 2006-05-30 Dan Winship * configure.ac: Check libwnck for wnck_window_has_name (new in HEAD). * gnome/window-decorator/gnome-window-decorator.c (wnck_window_get_real_name): #if HAVE_WNCK_WINDOW_HAS_NAME, redefine wnck_window_get_name to return NULL if the window only has a fallback name. bnc 173059. * src/event.c (handleEvent): call moveInputFocusToOtherWindow() before destroyWindow() when processing a DestroyNotify, or else the input focus can get stranded. 2006-05-26 David Reveman * plugins/compiz.schemas.in.in: Regen. * plugins/scale.c (SCALE_SLOPPY_FOCUS_DEFAULT): TRUE. * plugins/decoration.c (decorWindowUpdate): No drop-shadow decoration on windows with below state. * src/window.c (recalcWindowType): Treat dock windows with below state as normal windows. (bnc #178316) * plugins/cube.c (cubePaintTransformedScreen): Avoid optimized case when more than 4 cube sides. 2006-05-25 David Reveman * plugins/compiz.schemas.in.in: Regen. * src/window.c (moveResizeWindow): Don't adjust position for NorthWest gravity. (bnc 178765) (fdo #6992) * plugins/compiz.schemas.in.in: * include/compiz.h: * src/event.c (handleEvent): * src/display.c: Add maximize_window_horizontally, maximize_window_vertically, toggle_window_maximized, toggle_window_maximized_horizontally, toggle_window_maximized_vertically. * src/event.c (handleEvent): Track changes to maximizeWindow function. * plugins/move.c (moveHandleMotionEvent): Make sure we have a saved width before we use it. Track changes to maximizeWindow function. * plugins/wobbly.c (wobblyHandleEvent): Handle the case where window is not both vertically and horizontally maximized better. * include/compiz.h: Add MAXIMIZE_STATE macro. * include/compiz.h: * src/window.c: Remove unmaximizeWindow and make maximizeWindow take a state mask so it can be used for both maximizing and unmaximizing. * plugins/switcher.c: Don't add windows that appear after the switcher is popped up. (bnc 178350) (switchWindowRemove): Don't create a new list. Instead remove window from the existing list and make sure we're positioned correctly. 2006-05-24 David Reveman * plugins/scale.c (scaleMoveFocusWindow): When moving to window on left, make sure the window we're moving to is completely left of currently selected window. And same thing when moving to window on right, top, bottom. (layoutThumbs): Set slot->x2 and slot->y2 correctly. (bnc 178216) 2006-05-23 David Reveman * plugins/water.c: GL_UNSIGNED_INT_8_8_8_8_REV as pixel data type on MSBFirst machines. * src/texture.c: Include config.h before compiz.h so that IMAGE_BYTE_ORDER is defined correctly. (bnc 178171) * include/compiz.h: Define LSBFirst, MSBFirst, IMAGE_BYTE_ORDER, BITMAP_BIT_ORDER. (bnc 178171) 2006-05-23 Dan Winship * plugins/switcher.c (switchToWindow): use ss->windows here as well so that multiple activeNum==0 windows don't get skipped. (switchTerminate): Remove the screen grab right away so that keystrokes don't get dropped. bnc 177650 (switchPreparePaintScreen, switchPaintScreen, switchDonePaintScreen): update for that 2006-05-22 Dan Winship * src/window.c (moveResizeWindow): deal with both vertical and horizontal struts; but not when moving a dock window * plugins/switcher.c (switchHandleEvent): Check init_all binding before init, so you can bind "" to init_all and so end up with "Tab" being init_all rather than init (but with no way to get "init"...). bnc 173376 2006-05-21 David Reveman * src/display.c (addDisplay): Select for button events on root windows. * configure.ac: Bump version to 0.0.11. * gnome/window-decorator/gnome-window-decorator.c: Fix shadow performance by separating the convolution filter into one vertical and one horizontal pass. * src/window.c (mapWindow): Give sync request on map another try, it seems to be working now. * src/window.c (addWindow): Allow XGetWindowAttributes to fail. (bnc 173416). * src/window.c (addWindow): Initialize managed to false. Set managed to true if widows is viewable. * src/event.c (handleEvent): Set managed to false when window transitions to withdrawn state. (handleEvent): Set managed to true when we get MapRequest. (handleEvent): Constrain configure request if window is managed. * include/compiz.h: Add "managed" variable that is true while windows is managed. 2006-05-19 David Reveman * plugins/switcher.c (ICON_SIZE): Allow use of larger window icons. 2006-05-18 Dan Winship * plugins/wobbly.c (WOBBLY_FOCUS_DEFAULT): Set this to "None" to match wobblyInitScreen() so that it actually works right. * plugins/compiz.schemas.in.in: regen 2006-05-18 Dan Winship * src/session.c (saveYourselfCallback): if we have a RestartCommand registered with the session manager, update the --sm-client-id in it to match the id we were assigned. bnc 176746 * src/main.c (main, usage): remove unused --sm-save-file arg and fix documentation of --sm-client-id. 2006-05-17 David Reveman * plugins/compiz.schemas.in.in: Regen (Overlay Icon). * plugins/switcher.c (switchPaintScreen): Don't remove switcher from window list, just temporarily mark it as destroyed. This fixes issue with switcher decorations disappearing when some window is unmapped. * src/screen.c (updateDefaultIcon): width and height should be unsigned. * gnome/window-decorator/gnome-window-decorator.c: Add minimal option that can be used to run g-w-d with drop-shadows but without full window decorations. * plugins/minimize.c (minHandleEvent): Restore window position when transitioning to withdrawn state. * plugins/scale.c: Remove next_window binding and fix so that arrow keys can be used to select window. Focus new window when pointer enter window decorations and sloppy focus is used. Remove scaleSelectWindow. * plugins/scale.c: Icon support (Nat Friedman). 2006-05-17 Dan Winship * src/display.c (handleSelectionClear, eventLoop): don't process exit-on-selection-clear until the event queue is empty, or else MapRequest and ConfigureRequest events could get lost. bnc 175558 2006-05-14 David Reveman * src/event.c (handleEvent): mapNum might be 0 if we found the window unmapped when trying to bind it to a texture. 2006-05-12 David Reveman * src/screen.c (enterShowDesktopMode): Only go into show desktop mode when some window is being hidden. * src/event.c (handleWindowDamageRect): Make sure placed is set to true when no plugin is doing placement. (handleEvent): Don't set WM_STATE on override redirect windows. * plugins/switcher.c (isSwitchWin): Don't show windows that ask not to be in tasklists. * plugins/rotate.c (rotateHandleEvent): Only adjust viewport if window has been placed. * plugins/minimize.c (minHandleEvent): Reset everything when going into withdrawn state. * src/window.c (moveResizeWindow): Handle west and north gravity correctly. 2006-05-11 David Reveman * src/display.c (addDisplay): * src/screen.c (addScreen): Move server grab to addDisplay to make sure that no windows are created between XSelectInput and XQueryTree as that would result in them being added two times. * src/window.c (moveResizeWindow): Fix typo, CWY should be CWX. (moveResizeWindow): Constrain Y position so that window titlebar is visible. (restoreWindowGeometry): Fix issue with going from maximized state to non-maximized state without changing the window size. * gnome/window-decorator/gnome-window-decorator.c (max_window_name_width): Make sure title text fit in titlebar. 2006-05-11 Dan Winship * plugins/gconf-compiz-utils.c (gconfStringToBinding): Treat "" as meaning "disabled" 2006-05-11 David Reveman * gnome/window-decorator/gnome-window-decorator.c (action_menu_map): Don't show window action menu on desktop and dock windows. * src/event.c (handleEvent): Allow click on window decorations to trigger window action menu. * plugins/place.c (placeWindow): Place fullscreen and maximized windows correctly. (placeWindow): Only clip dialog position to screen if parent is visible in current viewport. 2006-05-09 David Reveman * plugins/switcher.c (switchPaintThumb): Rearrange code so we handle the case when bindWindow fails. * src/paint.c (paintWindow): Bail out if window is not mapped. * src/window.c (bindWindow): Make sure window is mapped when getting the window pixmap. (bnc 173248) * plugins/compiz.schemas.in.in: Regen. * plugins/cube.c (CUBE_MIPMAP_DEFAULT): Enable by default as performance seem to be OK now when new mipmaps are only generated when necessary. * src/texture.c (enableTexture): Don't generate new mipmaps every time the texture is used. 2006-05-08 David Reveman * plugins/switcher.c: Allow switcher to be initiated with prev bindings. (Quinn Storm) 2006-05-07 David Reveman * plugins/compiz.schemas.in.in: Regen. * plugins/switcher.c: Add icon support, minimized windows support and allow switcher to show up when only one selectable window exist. * images/Makefile.am: Add default icon image. * include/compiz.h: * src/texture.c: * src/event.c (handleEvent): * src/screen.c: * src/display.c: * src/window.c: Add WM icon interface. * gnome/window-decorator/gnome-window-decorator.c: Compute switcher title text width correctly. * src/event.c (handleEvent): Insert windows correctly when reparenting. 2006-05-07 Dan Winship * configure.ac: Add --with-scale-corner option and make compiz.schemas reflect it; the best corner to use depends on where the panels are and what's on them, so distros will want to override this to match their default panel layout. * src/event.c (eventMatches): Fix the the "water plugin gets mysteriously activated when activating some other keybinding" bug. 2006-05-05 Dan Winship * Makefile.am: * autogen.sh: * configure.ac: require intltool for option-description translation * plugins/Makefile.am: translate compiz.schemas.in into compiz.schemas 2006-05-05 Dan Winship * src/display.c (COMMAND_OPTION): Put numbers into the shortDescs of the command and run_command options * plugins/wobbly.c (WOBBLY_SNAP_MODIFIERS_DEFAULT): Use Shift rather than Control, for consistency with Metacity, and to remove the ambiguity about whether Ctrl+Alt+Button1 should be "grab cube" or "move with snapping". (bnc 169402) * plugins/compiz.schemas: regen 2006-05-05 David Reveman * plugins/compiz.schemas: Regen. * gnome/window-decorator/gnome-window-decorator.c: Forward metacity's bell settings to compiz. * plugins/water.c: * plugins/wobbly.c: * plugins/fade.c: Add visual bell. * include/compiz.h: * src/display.c: Add audible bell option. 2006-05-04 David Reveman * src/window.c (getModalTransient): Avoid infinite recursion when more than one group transient got modal state. 2006-05-03 David Reveman * plugins/move.c: * plugins/resize.c (resizeHandleMotionEvent): Don't constrain the cursor. * plugins/rotate.c (rotateHandleEvent): Use defaultViewportForWindow to figure out which viewport we should move to. (bnc 152677) * src/window.c (addWindowSizeChanges): Offset x coordinate with default viewport coordinate. (bnc 171465) (updateWindowAttributes): Always add windows size changes. (bnc 171465) * include/compiz.h: * src/window.c (defaultViewportForWindow): Add defaultViewportForWindow function that computes the default viewport for a window. 2006-05-02 David Reveman * plugins/cube.c (cubePaintTransformedScreen): Bump up size a bit more to make sure the cube unfolds completely. * src/event.c (handleEvent): Not constraints should be applied to ConfigureRequests for withdrawn windows. (bnc 171143) * src/window.c (syncWindowPosition): We never need to send synthetic ConfigureNotify events as we're not reparenting windows. 2006-05-02 Dan Winship * plugins/gconf-dump.c: rewrite to make compiz.schema regeneration a little easier, and to make it possible to generate schema files for third-party plugins. Include plugin descriptions and dependency information in the schema. * plugins/Makefile.am: add a rule to generate compiz.schemas * plugins/compiz.schemas: regen * plugins/cube.c, plugins/decoration.c, plugins/fade.c, plugins/gconf.c, plugins/minimize.c, plugins/wobbly.c: s/expose/scale/ in dependencies 2006-05-02 David Reveman * include/compiz.h: * configure.ac: Don't require glproto, include necessary enums in compiz.h. * src/texture.c: * include/compiz.h: Update to latest EXT_tfp spec. Requires an X server that has also been updated. * configure.ac: Require glproto >= 1.4.7 with final EXT_tfp tokens. 2006-05-01 David Reveman * src/window.c (circulateWindow): * src/event.c (handleEvent): Use getTopWindow instead of reverseWindows->id as reverseWindows might be a destroyed window. * include/compiz.h: * src/screen.c: Add getTopWindow function that returns top window. 2006-04-30 David Reveman * plugins/compiz.schemas: Regen. * plugins/decoration.c (decorWindowUpdate): Don't decorate fullscreen windows. * plugins/cube.c: Add initial support for unfolding the cube. Default key-binding is Down. * plugins/rotate.c (rotateHandleEvent): Fix absolute rotation. * plugins/switcher.c: Fix so that bring-to-front doesn't change the actual stacking order. Add zoom option, enable it by default so it gets some testing. Made bring-to-front enabled by default as it makes zoom functionality more useful. Made switcher window always rendered above all other windows and not affected by screen transformations. * src/event.c (handleEvent): Send configure notify before mapping window if PPosition or USPosition is set. * src/screen.c (insertWindowIntoScreen): Sibling above doesn't have to be mapped. This change seem to currently by causing the stacking order of some override-redirect windows to be incorrect. Don't insert window when aboveId doesn't match an existing window. (removeScreenGrab): ifdef DEBUG around abort. * src/event.c (handleEvent): Only update active window property when it's changing. * src/window.c (sendConfigureNotify): Make sure the latest window attributes are put in the ConfigureNotify. (moveResizeWindow): Only send sync request if window is mapped. * plugins/rotate.c: Add support for edge-flipping when using drag-and-drop. Remove edge_flip and flip_move options and add edge_flip_pointer, edge_flip_move, edge_flip_dnd. * src/screen.c: * src/display.c: * include/compiz.h: Make screen edges drag-and-drop aware. * plugins/zoom.c: * plugins/water.c: * plugins/switcher.c: * plugins/scale.c: * plugins/rotate.c: * plugins/resize.c: * plugins/move.c: * src/scren.c: * include/compiz.h: Variable argument list to otherScreenGrabExist, last argument must be 0. * src/event.c: * src/display.c: * include/compiz.h: Add raise-on-click option. * gnome/window-decorator/gnome-window-decorator.c (title_event): Activate window when clicking titlebar. 2006-04-28 David Reveman * gnome/window-decorator/gnome-window-decorator.c: Back out last change as it clearly didn't fix anything. XFixed being defined as "int" is perfectly fine of course. libXrender is currently broken on 64bit. See Bug #6774 for a fix. (XRenderSetPictureFilter_wrapper): Add workaround for 64bit issue in libXrender. (Dan Winship) * src/event.c (handleEvent): * src/display.c: * include/compiz.h: Add show desktop binding. (Martin Szulecki) * plugins/rotate.c: Reset timout handle correctly. * plugins/move.c: * plugins/resize.c: * plugins/rotate.c: * plugins/scale.c: * plugins/switcher.c: * plugins/water.c: * plugins/zoom.c: Track screen grab changes changes. * src/screen.c: * include/compiz.h: Associate all screen grabs with a name. Add otherScreenGrabExist function which can be used to check if screen is grabbed by other plugins. 2006-04-28 Dan Winship * src/event.c (eventMatches): new method that replaces EV_KEY and EV_BUTTON. Tests if an event matches a binding, being more precise about modifier state than EV_KEY and EV_BUTTON were. (eventTerminates): Tests if an event is "the opposite" of a binding. (Eg, button or modifier key release.) Replaces CompReleaseMask and "terminate" bindings. (handleEvent): Use eventMatches * src/screen.c (addPassiveKeyGrab, removePassiveKeyGrab, updatePassiveKeyGrabs): When passed a keybinding containing just modifiers, grab/ungrab every keypress event that would result in that modifier state (eg, both left and right modifier keys, and allow them to be pressed in any order). * src/display.c: Remove CompPressMask from default bindings. (eventLoop): don't add virtual modifiers to event state. (updateModifierMappings): store the XModifierKeymap for later use. * plugins/*.c: Use eventMatches and eventTerminates. Remove CompPressMask and "terminate" bindings (except from scale, which is different from the others). * plugins/switcher.c: Make initiate_all be just the modifier key used in addition to the initiate binding (""). Remove next_window since it doesn't make a lot of sense to have it be different from initiate_all, and make prev_window be just a modifier key as well. (""). (SwitchScreen): add extra options to store the fully-composed initiate_all, prev, and prev_all bindings. (switchScreenInitOptions, switchSetScreenOption): Generate and regenerate initiate_all, prev, and prev_all bindings as needed. (switchHandleEvent): update * plugins/gconf-compiz-utils.c: Remove "" handling. * plugins/compiz.schemas: regen, dropping the terminate bindings and updating a few others. * include/compiz.h: remove CompPressMask, CompReleaseMask, EV_BUTTON, and EV_KEY. Add eventMatches, eventTerminates, and keycodeToModifiers. Add modMap field to CompDisplay. 2006-04-28 David Reveman * plugins/water.c: Handle enter/leave notify events. * plugins/decoration.c (decorInitWindow): Check for window specific decoration on both mapped and unmapped windows so that initially minimized windows get properly decorated. (Dan Winship) * gnome/window-decorator/gnome-window-decorator.c: Use xfixed_16_16_t instead of XFixed to avoid 64bit issue with XFixed being defined as "int". * configure.ac: xrender 0.8.4 is good enough. 2006-04-27 Dan Winship * plugins/rotate.c (rotateHandleEvent): for the rotate-to-specific-face keys, rotate counterclockwise when that's faster. (bnc 169427) * plugins/scale.c (scaleHandleEvent): Make the corners toggle scale mode rather than only activating it. (bnc 169408) 2006-04-27 David Reveman * configure.ac: Bump version to 0.0.10. * plugins/decoration.c: Remove debug variable. * src/window.c (addWindow): Check if window is minimized. (Dan Winship) * plugins/compiz.schemas: Regen (snapoff and maximize_effect). * plugins/wobbly.c: Add maximize effect. * plugins/zoom.c: * plugins/water.c: * plugins/rotate.c: * plugins/resize.c: * plugins/move.c: * src/event.c: * src/screen.c: * src/display.c: * include/compiz.h: Add proper warp pointer interface and update all plugins to use it. 2006-04-26 Dan Winship * src/event.c (handleEvent): activate window on Button2 click in addition to Button1 and Button3. * plugins/gconf.c (gconfSetOption): gconf_value_compare against the old value for list-type options too. (gconfInitOption): Change the call to gconf_client_get_entry to request the default value again; the fix to gconfSetOption will prevent the infinite loops that happened before. 2006-04-26 David Reveman * gnome/window-decorator/gnome-window-decorator.c (update_shadow): Remove comment that is no longer valid. * plugins/move.c: Support for maximized windows snap-off. Based on patch by Colin Guthrie. * plugins/rotate.c (rotateHandleEvent): Don't do edge flipping when a horizontally maximized or fullscreen window is grabbed. * plugins/zoom.c: * plugins/rotate.c: * plugins/resize.c: * plugins/move.c: * src/screen.c: * include/compiz.h: Add warpPointerToScreenPos and use it everywhere we want to invisibly warp the pointer. 2006-04-25 David Reveman * gnome/window-decorator/gnome-window-decorator.c: * plugins/decoration.c: Add clamp and min size. * plugins/decoration.c (decorReleaseDecoration): Fix memory leak. * plugins/scale.c: Click on background leaves scale mode and enters show desktop mode. (Dan Winship) * plugins/minimize.c (minHandleEvent): Initialize scale and translate properly. * src/window.c (activateWindow): * src/event.c (handleEvent): * src/screen.c: Add window parameter to leaveShowDesktopMode and use this function for making one window leave show desktop mode. Fixes so that we're leaving show desktop mode when no windows are longer hidden. * plugins/scale.c (scaleSetScreenOption): Add missing break statement. * plugins/rotate.c (rotateInitScreen): Initialize rotateHandle. * src/paint.c (paintScreen): Only paint windows that have been damaged. 2006-04-24 Dan Winship * plugins/scale.c: * plugins/switcher.c: clarify the "initiate" descriptions * plugins/compiz.schemas: regen 2006-04-24 David Reveman * src/paint.c (paintScreen): Always call paintWindow when window is visible. Fixes so that window animations (fade, minimize...) aren't paused when if window becomes invisible. (paintWindow): Return early if region is empty. * plugins/switcher.c: Use hideWindow and showWindow so that the decoration doesn't have to be redrawn every time the switcher window is mapped. * src/window.c: * include/compiz.h: Add hidden flag, that can be used to hide windows without minimizing them. * plugins/compiz.schemas: Regen (drop-shadow options). * configure.ac: xrender 0.9, required for g-w-d. * gnome/window-decorator/gnome-window-decorator.c: * plugins/decoration.c: Add configurable drop-shadows. A minor issue is that shadows around "tiny" windows are not rendered correctly when large shadow offsets are used. Solution is to have the decorator set a minimum size for which a decoration can be used so that no shadows are rendered around "tiny" windows. 2006-04-20 Dan Winship * plugins/rotate.c: add 12 go-directly-to-cube-face and 12 go-directly-to-cube-face-with-window bindings. * src/display.c (compDisplayInitOptions): fix the binding type on WINDOW_MENU. * plugins/compiz.schemas: Regen. (lower_window, window_menu, scale_image, images, resize, flip_move, move_window_types, and the new rotate bindings) 2006-04-20 David Reveman * src/window.c: * src/event.c (handleEvent): * src/display.c: * include/compiz.h: * gnome/window-decorator/gnome-window-decorator.c: Add force quit dialog. * plugins/resize.c: Changed default binding to Button2. * src/display.c (LOWER_WINDOW_BUTTON_DEFAULT): Button2 -> 6. * gnome/window-decorator/gnome-window-decorator.c: * include/compiz.h: * src/event.c (handleEvent): * src/display.c: Add window menu binding. * gnome/window-decorator/gnome-window-decorator.c: Pick up toolkit actions from compiz and send gnome panel actions for "main menu" and "run dialog" actions. * src/event.c (handleEvent): * src/screen.c: * include/compiz.h: * src/display.c (addDisplay): panel action -> toolkit action. * src/window.c (getModalTransient): Group transient must not be an ancestor to the window we've currently found as the window to focus. (getModalTransient): Check for child modal transient. 2006-04-19 David Reveman * gnome/compiz-window-manager.c: Be nice to gnome-theme-manager and return a theme even though we currently don't support it. * include/compiz.h: * src/main.c: Remove window-image option. * include/compiz.h: * plugins/water.c: * plugins/cube.c: * src/texture.c: * src/paint.c: * src/main.c: Add strict-binding option. 2006-04-18 Dan Winship * src/event.c (handleEvent): Fix a crasher in the screenshot binding code (and rename some of the #defines to make them not so ridiculously long). Also temporarily hack around a bug in EV_KEY by putting the check for WINDOW_SCREENSHOT before the check for SCREENSHOT. * plugins/scale.c: Change the keybinding again, now to "Pause". (F11 is the "fullscreen mode" binding for many apps.) * plugins/compiz.schemas: update * plugins/gconf.c: * plugins/gconf-compiz-utils.c: * plugins/gconf-dump.c: Rearrange #includes to prevent warning about TRUE and FALSE being redefined 2006-04-18 David Reveman * plugins/rotate.c (ROTATE_FLIPMOVE_DEFAULT): Changed to TRUE. * src/window.c (recalcWindowActions): Remove maximize and fullscreen actions when resizing isn't allowed. * gnome/window-decorator/gnome-window-decorator.c: Dynamic positioning of window buttons. * plugins/cube.c (readSvgToTexture): Fix typo. * plugins/resize.c: Constrain cursor movement to min/max window size. * src/window.c (constrainNewWindowSize): Fix aspect ratio calculations. 2006-04-17 David Reveman * plugins/cube.c: Put PNG on top face by default. * images/Makefile.am: Remove window.png. Add novell.png. * include/compiz.h: * src/readpng.c: Add openImageFile. * plugins/cube.c: Support for PNGs on top face. Add scale image option which is used to determine if top face image should be scaled or not. 2006-04-15 David Reveman * plugins/wobbly.c: Add modal dialog type to default list of windows that should be wobbly when moved. * plugins/water.c (SET): +1 for border. 2006-04-14 Dan Winship * plugins/gconf-dump.c: add "water" to gconfDeps * plugins/compiz.schemas: regen including the water options 2006-04-14 David Reveman * src/event.c (handleWindowDamageRect): Ignore damage from windows that aren't redirected. * include/compiz.h: * src/window.c: * src/display.c (eventLoop): * src/screen.c: Add support for automatic unredirecting of fullscreen windows. * plugins/scale.c (scaleInitiate): Layout thumbnails before we grab the screen to make sure some window exist. * plugins/resize.c: Allow 4-way resize. (Mike Hearn) 2006-04-13 Dan Winship * src/screen.c (panelAction): take a timestamp and pass that to the panel rather than using CurrentTime * src/event.c (handleEvent): update for that * src/window.c (moveResizeWindow): fix the gravity handling so self-resizing windows don't dance (although I'm pretty sure this is a symptom of mishandling gravity somewhere else). * plugins/gconf.c (gconfInitOption): Request the default value of the key from gconf, rather than initializing the key to the internal default value if it hasn't yet been set by the user. Notably, this makes it so that "compiz gconf" on a new account will use the default value of active_plugins rather than the (effectively empty) list of plugins on the command line. (It also makes it so that the sysadmin can override defaults via sabayon or whatever.) 2006-04-13 David Reveman * src/window.c (mapWindow): Maybe not, disable it again. :( * src/window.c (mapWindow): Enable draw synchronization on map again. Should be working correctly with CVS version of X server. 2006-04-12 Dan Winship * src/window.c (moveResizeWindow): move duplicated code from _NET_MOVERESIZE_WINDOW and ConfigureRequest handlers in event.c to here, and handle gravity as well. (Fixes bnc 163058.) (updateWindowAttributes): Do nothing if the window is override_redirect (and remove a few now-redundant checks of that elsewhere). Previously we were forgetting to check !override_redirect in the case where the motif hints changed. (bnc 163931) (getWindowUserTime): fix a cut-and-paste-o that caused a crash on 64bit machines. * src/event.c (handleEvent): fix the _NET_MOVERESIZE_WINDOW bit manipulation to correspond to what the EWMH means rather than what it says, and use moveResizeWindow for that and for ConfigureRequest. * plugins/gconf-compiz-utils.c (gconfBindingToString): DTRT with "None" bindings. * gnome/window-decorator/gnome-window-decorator.c (title_event): if the user right-clicks on the titlebar while the context menu is popped up, just pop it down and eat the click, like all other GNOME context menus do. (style_changed, value_changed): Don't add decorations to previously-undecorated windows. (bnc 165393) 2006-04-11 David Reveman * src/screen.c (addScreen): Fix typo. 2006-04-10 Dan Winship * src/window.c (focusWindowOnMap): new function to decide whether or not to focus a newly-mapped window. In addition to the old checks, this also checks that _NET_WM_USER_TIME isn't 0, to allow a window to explicitly request to not get focus. * src/event.c (handleEvent): use focusWindowOnMap when processing MapRequest. * plugins/rotate.c (rotateHandleEvent): fix _NET_ACTIVE_WINDOW handling so this doesn't interfere with focusable panel applets. * plugins/compiz.schemas: regen (fixing cube top/bottom color) * plugins/gconf-dump.c: Handle CompOptionTypeColor. * configure.ac: Add --enable-gconf-dump so that the gconf-dump plugin doesn't get built in normal builds * plugins/Makefile.am: make gconf-dump optional. 2006-04-09 Dan Winship * plugins/gconf-dump.c: add plugin options, and add information about restrictions (numeric ranges, specific string values) to the long description. Make gconf-dump refuse to run if gconf is running (since you want the defaults it writes out to be coming from the defaults in the source code, not from any gconf overrides). * plugins/compiz.schemas: regen * plugins/gconf.c (gconfGetOptionValue): don't call gconfSetOption from here, or we'll get an infinite loop when anything changes 2006-04-09 David Reveman * include/compiz.h: * src/display.c: * src/main.c: * src/screen.c: * src/texture.c: * src/window.c: Remove test mode. * plugins/Makefile.am: Remove schema from CLEANFILES. * plugins/compiz.schemas: * src/display.c: Improve documentation for runcommand keys slightly. (Mike Hearn) * include/compiz.h: * src/texture.c: * src/screen.c (addScreen): Switch to using GLX 1.3 functions. (James Jones) * src/main.c: Indirect rendering option. (James Jones) 2006-04-08 David Reveman * plugins/water.c: Add rain delay option. (Emilie Roberts) 2006-04-07 David Reveman * plugins/gconf-dump.c: Dump list options correctly. * plugins/rotate.c: Add flip_move option, edge flipping is only used when moving windows if this option is enabled. (rotateHandleEvent): Make we don't rotate when some other plugin has grabbed the screen. * plugins/scale.c: Change default key-binding to F11. (scaleInitiate): Make sure screen isn't grabbed by some other plugin. (scaleInitScreen): Initialize darkenBack properly. * configure.ac: Bump version to 0.0.9. * plugins/Makefile.am (CLEANFILES, EXTRA_DIST): Fix. * plugins/rotate.c (ROTATE_SPEED_DEFAULT): 1.5. 2006-04-07 Dan Winship (Much of this patch was written by Radek Doulik .) * src/display.c: * src/event.c: * src/screen.c: Move keybinding stuff to CompDisplay, making it no longer settable per-screen. Add bindings for screenshots (for compatibility with metacity, which handles that keybinding in GNOME for historical reasons). * include/compiz.h: add an explicit CompBindingTypeNone rather than relying on modifiers==0 to mean none. Update bindings stuff. * src/screen.c (removePassiveKeyGrab, removePassiveButtonGrab): Fix these to remove the right grab rather than always removing the most-recently-added one. (addScreenBinding): deal with CompBindingTypeNone * plugins/gconf-dump.c: hacky plugin to dump information about the other plugins to a gconf schemas file (used to regenerate compiz.schemas) * plugins/gconf-compiz-utils.c: shared code between gconf.c and gconf-dump.c * plugins/Makefile.am: add gconf-dump plugin and compiz.schemas, and code to install compiz.schemas. * configure.ac: Update gconf test to set macros needed for schema install. 2006-04-07 David Reveman * plugins/rotate.c: Add edge flipping support. * plugins/scale.c: Allow corner screen edges to be used for initiating scale mode. * src/option.c (compSetBoolOption): Only return TRUE if value changed. * src/screen.c: * src/window.c: * plugins/minimize.c: * plugins/decoration.c: * include/compiz.h: Add immediate argument to MoveNotify, immediate means that any animations should be avoided. * src/screen.c: * plugins/water.c: * plugins/resize.c: * plugins/place.c: * plugins/move.c: * plugins/zoom.c: * plugins/rotate.c: * plugins/scale.c: * src/event.c: * include/compiz.h: Add previous pointer position that can be shared between multiple plugins. 2006-04-06 David Reveman * include/compiz.h: * src/screen.c: Add screen edges and simple interface for enabling and disabling them. * plugins/switcher.c (switchDamageWindowRect) (switchWindowRemove): Update switcher list even when screen isn't grabbed. * plugins/switcher.c (switchDamageWindowRect): * include/compiz.h: * src/event.c (handleEvent): * src/window.c: Made it possible to select if window should be stacked above fullscreen windows or not. * src/window.c (findSiblingBelow): Only find a fullscreen sibling if aboveFs is TRUE. (activateWindow): Allow stacking of window above fullscreen windows when being activated. 2006-04-05 David Reveman * plugins/water.c (fboEpilogue): Reset raster position. Avoids an FBO/raster-position issue found in newer nvidia drivers. * plugins/move.c: Add constrain_y option that constrains window movement so that top of window is always visible (on by default). * src/event.c (handleEvent): Change active window property even though it's not different than the window we currently have as active. * src/window.c (moveInputFocusToWindow): Set focus even though the window is considered the active window. 2006-04-03 David Reveman * plugins/water.c: Use char everywhere instead. Fix offset direction (P-a Bäckström). Add offset scale option. * plugins/water.c: (loadFragmentProgram): GLubyte -> const GLbyte. (loadWaterProgram): char -> GLbyte. (loadBumpMapProgram): char -> GLbyte. Use char everywhere. * configure.ac: Bump version to 0.0.8. * plugins/water.c: Add simple rain effect. (loadFragmentProgram): Clear any previous error. * src/display.c: Change so that timeouts are not only triggered when we're idle. 2006-04-02 David Reveman * plugins/water.c: Add scale and bias to normal so that light can be computed correclty. Offset texture coordinates for nice refraction effect. (P-a Bäckström) (waterDrawWindowTexture): Add scaling after setting up texture coordinate generation. Fix up loading of bump map programs. (softwareUpdate): Improve performance of software fall-back code a bit. (waterDrawWindowTexture): Always use filter for when window is transformed. * plugins/gconf.c (gconfGetValue): Fix typo that caused color parsing to be incomplete (Quinn Storm). 2006-04-01 David Reveman * plugins/switcher.c: Add "initiate all" binding which brings up the switcher window with all mapped windows and "initiate" binding will now bring up the switcher window with only the visible windows. 2006-03-31 David Reveman * plugins/minimize.c (minDamageWindowRect): Never leave windows in scaled state. * src/screen.c (moveScreenViewport): Move hidden windows as well. * src/window.c (addWindow, activateWindow, hideWindow) (showWindow): * src/screen.c (enterShowDesktopMode, leaveShowDesktopMode): * src/event.c (handleEvent): * include/compiz.h: Fix up show desktop mode. * plugins/water.c (fboVertices): return 1. 2006-03-30 David Reveman * src/texture.c (enableTexture): Always make sure mipmaps are up to date when using GL_LINEAR_MIPMAP_LINEAR filter. 2006-03-29 David Reveman * gnome/window-decorator/gnome-window-decorator.c: Draw outline around window title text and buttons instead of small shadow. * src/event.c (handleEvent): * include/compiz.h: * src/window.c: Set allowed window actions more correctly. * plugins/move.c: Add opacity option. * plugins/Makefile.am: Add water plugin. It's not very useful yet and it needs more work but it's a good example of how to use GL_ARB_fragment_program and GL_EXT_framebuffer_object for visual effects. * src/screen.c (addScreen): Fix light position. * src/paint.c (paintWindow): * plugins/switcher.c (switchPaintThumb): * plugins/decoration.c (decorPaintWindow): * include/compiz.h: Make drawWindowTexture a screen function so that plugins can wrap it. * src/texture.c (enableTexture): * src/screen.c (addScreen): * include/compiz.h: GL_EXT_framebuffer_object and GL_ARB_fragment_program support. 2006-03-21 David Reveman * gnome/window-decorator/gnome-window-decorator.c (lower_window): Don't try to lower a window below hidden windows or desktop windows. 2006-03-20 David Reveman * plugins/wobbly.c (wobblyHandleEvent): xunmap -> xmap (François Ingelrest). * src/screen.c (isClientListWindow): All type of windows should go into the client lists (Thanks to Quinn Storm). * src/window.c (freeWindow): Destroy frame window. (mapWindow): Fix so the sync requests are sent correctly when a window is mapped but disable it for now as it seems to be causing problems with some applications. (recalcWindowActions): Allow dialog window actions on util and toolbar windows. * src/event.c (handleEvent): Remove event mask and button grabs when window is reparented. (handleEvent): Update client list when window type changes. (handleEvent): Use constrainNewWindowSize on move/resize client messages and configure requests. * gnome/window-decorator/gnome-window-decorator.c (window_closed): Delete decor property when window is closed. 2006-03-17 Jeremy C. Reed reviewed by: David Reveman * autogen.sh: Be consistent with rest of modular xorg by using same autogen.sh. This allows it to be run using a different work directory. 2006-03-17 Jeremy C. Reed reviewed by: David Reveman * INSTALL: Mention startup-notification requirement. 2006-03-17 David Reveman * plugins/scale.c: Add opacity option. * configure.ac: Bump version to 0.0.7. 2006-03-17 Radek Doulik * src/session.c: added all mandatory SM client callbacks, handle ICE connection and process ICE messages * src/display.c (compAddWatchFd): new function, adds new fd watch - for poll io multiplexing (compRemoveWatchFd): new function, remove fd watch added by compAddWatchFd (doPoll): new helper function, does call poll and calls callbacks for watch fd's. returns the value of poll call (eventLoop): use doPoll, we use NULL for display fd watch so that it doesn't call anything and just use return value from poll as before 2006-03-17 David Reveman * plugins/switcher.c (switchDamageWindowRect): Update window attributes for popup window. We never get a MapRequest for this window so it most be done here. Add "bring to front" option. (Greg) * src/window.c (stackAncestors): Never raise desktop windows. Made restackWindowAbove and restackWindowBelow smarter. 2006-03-16 David Reveman * plugins/minimize.c: * src/event.c (handleEvent): * src/window.c: Handle window state changes correctly. (maximizeWindow): Use actions to determine if we're allowed maximize window. * src/event.c (handleEvent): * src/window.c: Send configure notifies correctly. 2006-03-15 David Reveman * plugins/switcher.c (switchPaintWindow): Fix paint attribute calculations. * include/compiz.h: * src/event.c (handleEvent): * src/window.c: Add restackWindowBelow. 2006-03-14 David Reveman * plugins/switcher.c: Opacity, brightness and saturation as adjustable options. (Greg) * src/window.c (syncWindowPosition): Move frame window now instead of waiting for client window to change before moving it. * plugins/move.c (moveTerminate): Sync window position before releasing pointer grab so that the EnterNotify event from the release go to the correct window. * src/window.c (unmapWindow): Put window in withdrawn state when being unmapped. Should make it work better with KDE. (Tim Northover) * src/screen.c (addScreen): Fix ambient and diffuse light. * src/main.c (main): Add --version command line option. * src/event.c: * src/screen.c: * include/compiz.h: Add bindings for changing window opacity. 2006-03-14 Radek Doulik * src/event.c (handleEvent): handle minimize/maximize/unmaximize window keybindings * src/screen.c: added minimize/maximize/unmaximize window options/keybindings * src/window.c (maximizeWindow): new helper function (unmaximizeWindow): ditto 2006-03-14 David Reveman * plugins/scale.c: Add darken background option (Daniel G. Taylor). 2006-03-13 David Reveman * src/display.c (eventLoop): * include/compiz.h: * src/screen.c (addScreen): CopySubBufferMESA support. 2006-03-07 David Reveman * gnome/window-decorator/gnome-window-decorator.c (lower_window): Remove unused variable tmp. * src/event.c: * src/display.c: * src/window.c: * src/screen.c: * include/compiz.h: Better window stacking support. * gnome/window-decorator/gnome-window-decorator.c: Lower window when clicking button 2 on titlebar. * src/window.c (ensureWindowVisibility): Only ensure that window is visible if it isn't a override redirect window, dock window or window with struts. 2006-03-06 David Reveman * configure.ac: Bump version to 0.0.6. * plugins/cube.c: Skydome update. (MacSlow) * src/window.c: Ensure window visibility when activating window. 2006-03-05 David Reveman * src/window.c (closeWindow): Use protocol mask to determine if Client Message should be send or if we should kill the client. * plugins/decoration.c: Don't draw shadow only decorations around windows with alpha channel. 2006-03-03 David Reveman * src/texture.c (readImageBufferToTexture): (readImageToTexture): Check that returnWidth and returnHeight are not NULL. * plugins/cube.c: Skydome support. Thanks to MacSlow. * plugins/fade.c (fadeHandleEvent): Make sure opacity isn't opaque when fading out. Stop fading if window is resized. * src/window.c (resizeWindow): Only verify pixmap size if window is mapped. (resizeWindow): Check XGetGeometry result. * plugins/switcher.c: Make sure switcher is correctly updated even though the previously selected window isn't selectable by switcher. * src/event.c (handleEvent): Avoid panel actions when screen is grabbed. 2006-03-03 Radek Doulik * src/main.c (main): init and close session when sm is not disabled. Enable sm by default. * src/session.c: added minimal session support so that compiz at least register with session manager to avoid registering timeouts 2006-03-03 David Reveman * src/screen.c (removeScreenGrab): Use correct cursor when changing actvie pointer grab. 2006-03-02 David Reveman * plugins/rotate.c (rotateHandleEvent): * plugins/zoom.c (zoomHandleEvent): Make sure no pending motion notify events exists when warping the pointer. * plugins/rotate.c (rotateHandleEvent): Reset movement. * plugins/switcher.c: Always send activate request when selecting a window. * plugins/cube.c (cubePaintTransformedScreen): Reset color. * plugins/switcher.c (switchPaintThumb): PAINT_WINDOW_TRANSLUCENT_MASK if opacity isn't opaque. (switchPaintWindow): Reset color. 2006-03-01 David Reveman * configure.ac: Bump version to 0.0.5. * plugins/fade.c (fadeAddDisplayModal): Higher brightness when showing display modal dialogs. * plugins/switcher.c (switchPreparePaintScreen): Continue adjusting window selection even though we're not grabbing the screen. (switchPaintWindow): Use last used paint attributes for thumbnails. (switchPaintWindow): Use blending when drawing selection rectangle. * plugins/fade.c (fadeHandleEvent): unmap. -> map. (fadeDamageWindowRect): Only zero opacity if we're not already fading the window. * src/window.c (unmapWindow): 'placed' variable should be reset on first call to unmapWindow. * src/screen.c: * src/event.c (handleEvent): * src/display.c (eventLoop): * include/compiz.h: Add slow animation option. * src/window.c (recalcNormalHints): Constrain window dimensions to max texture size. * src/screen.c (addScreen): Get max texture size. * gnome/window-decorator/gnome-window-decorator.c: Nicer drop shadow on windows without decorations. * src/window.c (addWindow): Move initialization of sync alarm. * plugins/cube.c: * plugins/decoration.c: (decorCreateDecoration): Fix minimum size check. * src/main.c: * include/compiz.h: * src/paint.c: * src/screen.c: Ligthing support. * compiz.pc.in: Fix. 2006-02-23 David Reveman * src/window.c (unmapWindow): Not minimized and not part of showing desktop mode. * plugins/wobbly.c: Fix handling of scaled windows. Update options so that user gets more control over which windows that should wobble and when. * configure.ac: Bump version to 0.0.4. * gnome/window-decorator/gnome-window-decorator.c (window_opened): Make sure decoration property for switcher window is set. * plugins/decoration.c (decorHandleEvent): * src/event.c (handleEvent): * plugins/switcher.c: * src/screen.c (addScreen, setScreenOption) (compScreenInitOptions): * src/texture.c: * include/compiz.h: Mipmap support. Add more RUN_COMMAND options. 2006-02-22 David Reveman * src/display.c (realToVirtualModMask): Remove modifiers that should be ignored. (addDisplay): Select ButtonPress and ButtonRelease events on root window. * include/compiz.h (EV_KEY): (EV_BUTTON): Modifiers should match exactly. * plugins/switcher.c: Add binding for selecting previous window. * plugins/decoration.c: Remove sync hack. * gnome/window-decorator/gnome-window-decorator.c (draw_shadow_background): Fix drawing of bottom and bottom right shadow rectangle. Add switcher window decorations. Remove sync hack. Always use double buffering. * plugins/switcher.c: Remove background color option. Use property instead of client message to indicate change of selected window. 2006-02-21 David Reveman * plugins/cube.c (cubeHandleEvent): Only load new SVG when available. 2006-02-20 David Reveman * plugins/decoration.c (decorWindowUpdate): Decorate window MwmDecorTitle is present. * src/window.c (focusWindow): (moveInputFocusToWindow): Allow focusing windows with input hint set to false. (activateWindow): Fix so that dock windows can be active. * src/screen.c (isClientListWindow): Don't put destroyed windows in client lists. * src/event.c (handleEvent): Fix so that dock windows can be active. (handleEvent): Avoid focusing windows with input hint set to false when mapped. 2006-02-18 David Reveman * src/window.c (unmapWindow): Windows not being minimized should be placed again at next map. * plugins/wobbly.c (wobblyDonePaintScreen): Also add pending damage if any window is in initial wobbly state. 2006-02-17 David Reveman * configure.ac: Bump version to 0.0.3. * plugins/zoom.c (zoomIn): Translate less. (zoomPaintScreen): Use selected filter. (adjustZoomVelocity): Made zoom animation nicer. (zoomPreparePaintScreen): Don't zoom to much. ADd filter selection option. * plugins/decoration.c (decorPaintWindow): * src/paint.c (drawWindowTexture): Use screen filters. * include/compiz.h: Add support for adjusting filters. * plugins/scale.c (scaleHandleEvent): Only button 1. * plugins/cube.c (cubePaintTransformedScreen): Fix drawing with size greater than 4. 2006-02-16 David Reveman * configure.ac: Remove menu. * plugins/switcher.c (switchNextWindow): Damage new and previously selected window. (switchInitiate): Damage screen initiating switching. (switchTerminate): Damage screen terminating switching. (switchPaintThumb): Draw thumbnail without calling any function that can be wrapped. * gnome/window-decorator/gnome-window-decorator.c (update_window_decoration_size): Make sure title isn't rendered when it doesn't fit. 2006-02-14 David Reveman * gnome/window-decorator/gnome-window-decorator.c (draw_window_decoration): Make sure complete icon is visible. * src/display.c (eventLoop): (getTimeToNextRedraw): Handle clock rollback. 2006-02-13 David Reveman * configure.ac: Remove menu plugin check. Require version 2.8.0 or greater of gtk+. 2006-02-11 David Reveman * configure.ac: Bump version to 0.0.2. * src/window.c: * src/event.c: * plugins/fade.c: * src/display.c: * include/compiz.h: Lower brightness of windows that are not responding and all windows when showing logout dialog. * gnome/window-decorator/gnome-window-decorator.c: Use metacity titlebar font settings. * gnome/compiz-window-manager.c: Add titlebar font setting. * plugins/Makefile.am: * plugins/switcher.c: Add switcher plugin. * plugins/gconf.c: Add alpha to color options. 2006-02-10 David Reveman * src/screen.c: * src/display.c: Do not include X11/extensions/Xevie.h.