We had problems because the More links were reacting on press but
other elements were reacting on release. (Often the link would trigger
*and* an item.) Just connecting to ::button-release-event on
ClutterText gives a stuck grab (since ClutterText gets the press
but not the release), so we need more complicated code that we
encapsulate into a new class.
link.js: new "pseudo-widget" that implements a clickable link.
overlay.js: Use Link.Link for the More.. links
http://bugzilla.gnome.org/show_bug.cgi?id=573323
Add black backgrounds to each item display, as well as a black
background with a full-screen height to the workspaces display.
Update the expanded item display up front when 'More...' is clicked, and
reveal the additional items gradually when the other components of the overlay
slide away.
Raise the documents display up gradually as the applications display above it slides away.
Reverse the process when 'Less...' is clicked. First, gradually cover up additional items by other components, and then update the displays to contain fewer items.
tools/build/gnome-shell.modules: Point at master branch of Clutter (0.9)
and make gobject-introspection a dep of Clutter.
configure.ac src/Makefile.am: Use Clutter-0.9
js/ui/button.js js/ui/genericDisplay.js js/ui/overlay.js js/ui/panel.js
js/ui/runDialog.js js/ui/workspaces.js src/shell-status-menu.c:
Use ClutterText instead of ClutterLabel and ClutterEntry
js/ui/workspaces.js js/ui/genericDisplay.js: Use ClutterClone instead
of ClutterCloneTexture
src/shell-global.[ch]: Add Shell.get_event_key_symbol() to workaround
unaccessibility of clutter_key_event_symbol() to use.
js/runDialog.js js/overlay.js: Use Shell.get_event_key_symbol() as
appropriate.
Put sideshow sections into boxes so that we can slide them out with a single 'easeOutQuad' transition.
Handle expanding the documents section in the same fashion as we handle expanding the applications section.
Place "More..." labels inside Big Boxes with x_align set to Big.BoxAlignment.END so that we don't have to position them manually.
Before the run dialog was changing the focus, but because we were
only setting it once, we ended up with nothing focused after the run
dialog was destroyed.
mutter_plugin_get_windows() returns NULL at plugin-initialization time,
so we have to wait until idle time to figure out which workspaces are
being used and remove the unused ones.
http://bugzilla.gnome.org/show_bug.cgi?id=571091
Previously we were stripping all whitespace. Instead, just strip leading+trailing
whitespace, split the remaining search into individual terms which we search
for independently.
Items are grouped by the number of terms they match, then sorted
alphabetically.
Divide the screen into a grid and use it to determine the layout of the overlay components in a more consistent manner.
Remove the 'Add workspace' control and slide the workspaces
display to the side without scaling it when switching to the 'More' mode.
Automatically removes tweens on destroyed actors, and provides
additional "animation started/stopped" callbacks (eg, for tracking
whether or not to show window clone titles)
Since tweener can't do multiple tweens on the same property, it
calls an overwrite callback for any existing tweens when a new
tween is added for the same property. Here we use the overwrite
callback to tell mutter that the effects are done.
mode. When this control is clicked, documents display section slides down,
workspaces display slides to the side, and a multi-column applications view is
presented to the user. "More' control is replaced with a 'Less' control. When
the 'Less' control is clicked a default overlay view is restored.
Clean up positioning of the components of the overlay sideshow
and the items within generic item displays.
svn path=/trunk/; revision=179
Previously we were only doing this check for switch-workspace, but it
makes sense to do it for all transitions, since they won't be visible
anyway, and they might interfere with the overlay's operations by moving
windows around unexpectedly.
svn path=/trunk/; revision=177
- Don't let the user grab a moving window or we'll get dueling tweens.
- Update _overlappedMode each time _positionWindows is called
svn path=/trunk/; revision=170
* Make updating of the clone title more of a state-machine - instead
of showing/hiding/creating/raising the title all over the code, have a
single Workspace._updateCloneTitle() method that looks at state bits and
decides if the clone should be hidden or shown, and updates the
stacking and position.
* Move code to positioning of windows within a workspace in the overlay
modeto a new method Workspace._positionWindows()
* Add Workspace.addWindow()/removeWindow() to add and remove windows
from the workspace on the fly. (Triggered manually: we still don't
handle external changes to windows when the overlay is up.)
* Hook up mouse-dragging for window actors and add a
::window-dragged signal to Workspace
* Connect to ::window-dragged for each workspace, compute the new
workspace, move it the window there, and animate everything into the
new position. Snap back to the old location if the window didn't move.
http://bugzilla.gnome.org/show_bug.cgi?id=568753
svn path=/trunk/; revision=164
main.js: set desktop environment to "GNOME" so that GIO can determine correctly which applications should be shown in the menus.
appDisplay.js: filter out applications that should not be shown in the menus, check if get_executable() for GAppInfo is not null before using it
svn path=/trunk/; revision=163
Use Tweener.registerSpecialPropertyModifier to handle moving windows in
straight lines on the screen even while their parent workspaces are also
moving.
Have the remove buttons track their parent workspace scale and deal with
it automatically rather than having special cases in each Workspace method.
svn path=/trunk/; revision=157
Now that getTime() has been added to the frame ticker interface
we can implement frame dropping in a more straightforward way
than adjusting the FRAME_RATE member variable to fool Tweener
into doing the right thing.
svn path=/trunk/; revision=156
Can't close over loop variables in that way; need to define an explicit var.
Also fix case where no title is defined yet when attempting to adjust.
svn path=/trunk/; revision=154
This is implemented as a separate process, since creating and running
toplevel windows from inside Metacity has issues.
We now grab a DBus name, and exec the child process. The child monitors
our name to know when to exit.
svn path=/trunk/; revision=153
g_app_info_create_from_commandline supports % escapes for
file name, icon name, etc, so we need to escape the command line
we pass in. If it contains an URL with url-encoded UTF-8 it will
typically have some percent signs.
(Reported by Achim Frase)
svn path=/trunk/; revision=151