2006-06-21 David Reveman <davidr@novell.com>
* src/window.c: Add updateTransientHint to protect against circular
transient dependencies. (bnc 186825)
* 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 <danw@novell.com>
* configure.ac (ALL_LINGUAS): Add pl
2006-06-16 David Reveman <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <danw@novell.com>
* configure.ac: add translations
2006-06-09 David Reveman <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* gnome/window-decorator/gnome-window-decorator.c:
Hide tooltips on NotifyGrab. (bnc #180692)
2006-06-01 Dan Winship <danw@novell.com>
* 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 <davidr@novell.com>
* include/compiz.h:
* src/window.c: Add updateWindowClass.
2006-05-31 David Reveman <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <danw@novell.com>
* 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 "<Alt>" to init_all and so end up
with "<Alt>Tab" being init_all rather than init (but with no way
to get "init"...). bnc 173376
2006-05-21 David Reveman <davidr@novell.com>
* src/display.c (addDisplay): Select for button events on root windows.
* 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 <davidr@novell.com>
* plugins/switcher.c (ICON_SIZE): Allow use of larger window icons.
2006-05-18 Dan Winship <danw@novell.com>
* 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 <danw@novell.com>
* 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 <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <danw@novell.com>
* plugins/gconf-compiz-utils.c (gconfStringToBinding): Treat "" as
meaning "disabled"
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* plugins/switcher.c: Allow switcher to be initiated with prev
bindings. (Quinn Storm)
2006-05-07 David Reveman <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <danw@novell.com>
* 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 <danw@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* src/window.c (getModalTransient): Avoid infinite recursion when more
than one group transient got modal state.
2006-05-03 David Reveman <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <Control><Alt>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 <davidr@novell.com>
* 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 <danw@novell.com>
* 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 ("<Control>"). 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. ("<Shift>").
(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 "<Release>" 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 <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <danw@novell.com>
* plugins/scale.c:
* plugins/switcher.c: clarify the "initiate" descriptions
* plugins/compiz.schemas: regen
2006-04-24 David Reveman <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <davidr@novell.com>
* 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 <davidr@novell.com>
* 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 <danw@novell.com>
* 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 <davidr@novell.com>
* 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.