Showing previews after a delay allows the user to move the mouse around
the screen without triggering constant pop-ups.
Make sure we remove the pop-up when the user hits Escape and redisplay
the pop-up if we are updating the section results due to a change in space
allocated for it.
Rename protected variable _hasPreview to _showPreview in order to not have
the naming conflict with a new private variable _havePointer, which we
name in first person.
For development and demonstration purposes, it's neat to be able to
record a screencast of gnome-shell without any external setup.
Built-in recording can also give much better quality than is possible
with a generic desktop recording, since we hook right into the paint
loop.
src/shell-recorder.[ch]: A general-purposes object to record a Clutter
stage to a GStreamer stream.
src/shell-recorder-src.[ch]: A simple GStreamer source element (similar
to appsrc in the most recent versions of GStreamer) for injecting
captured data into a GStreamer pipeline.
src/test-recorder.c: Test program that records a simple animation.
configure.ac src/Makefile.am: Add machinery to conditionally build
ShellRecorder.
tools/build/gnome-shell-build-setup.sh: Add gstreamer packages
to the list of required packages for Fedora.
js/ui/main.js: Hook up the recorder to a MetaScreen ::toggle-recording
keybinding.
http://bugzilla.gnome.org/show_bug.cgi?id=575290
The pop-up previews have larger images than the item displays, which is
particularly nice when we are displaying thumbnails for documents. The
previews are also at least as wide as is required to fit the item title
on one line and the item description inside them is wrapped. Therefore
they act as tooltips showing the full title and description text.
The preview updates when the item under the mouse pointer changes. Changes
in overlay.js ensure that we keep the sideshow on top when the
workspaces are not being animated so that we can find the item over which the
pointer is located.
The preview is removed when the item it is shown for starts being dragged.
_hideInProgress variable was added to represent the state of the overlay
when the code for hiding it was already triggered. This fixes the error
which was happening when the code for hiding the overlay was triggered
multiple times (for example by the user clicking the Activities button
twice when exiting the overlay).
When a window is added while overlay is being exited (e.g. because
some application was launched), we don't want to add that window to
the workspace's window clones. Previously, the window clone was added
and an animation to place the windows to their overlay workspace view
positions was triggered, which resulted in the wrong animation being
shown and an abrupt change in window positions when the actual workspace
was shown.
Add a boolean argument to two _positionWindows() calls that were missing
an argument.
jhbuildrc-gnome-shell: Remove obsolete setting of
os.environ['INSTALL'] - setting installprog is the modern way
to do it.
jhbuildrc-custom-example: Show how to override installprog to
work around #571240 on Arch Linux.
was browsing exiting results
This is most noticeable when viewing results in xephyr, and then opening
a document in your regular session. But it could also be noticeable if
downloading a new file completes while the user is in the overlay.
This patch also moves the call to _displayMatchedItems() to _redisplay
instead of making it in both _setDefaultList() and _doSearchFilter().
Sliding the workspaces back in when the user starts dragging an item in the
expanded display mode allows the user to select a workspace in which the item
should be launched and stay in the overlay mode.
This patch adds code to dnd.js that handles notifying actors when a drag item is being dragged over them. Overlay code uses such notification to unset expanded display modes and trigger sliding in of the workspaces.
If the drag is cancelled the drag item snaps back to its source or disappears at the original position of its source if the source is no longer displayed.
Add a display control that contains page numbers for the result
pages and is shown in the expanded results view. All of the page selection and
switching is handled by the GenericDisplay which exposes a displayControl
actor, which is then displayed by the Sideshow.
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.
Package checking now happens first, and checking for "curl" (and other
packages needed by the script itself) happens at the same time. I
tried to extract out a genericized list of what packages are needed,
and then reordered the packages for each distro to make it clear which
distros are missing some of the required packages in their lists
(currently, everything except Fedora)
- Force off text mipmapping - it isn't useful to us and causes
problems with old (pre-GEM) Intel drivers.
- Set Pango font options explicitly to enable font hinting.
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.
Positioning actors at non-integer positions produces bad looking
text. Therefore, do centering as x + round((a-b)/2) rather than
x + (a-b)/2. (This does mean that centering will be less accurate
if an actor is scaled up by a lot, but it's pretty reasonable
to assume that scaling only occurs during an effect and static
displays are unscaled.)
- include only <clutter/clutter.h>
- cogl_rectangle() takes x1/y1/x2/y2 instead of x/y/width/height
- cogl_color() renamed to cogl_set_source_color4ub()
- use explicit CoglMaterial in BigRectangle to combine a texture
and a color.
- Remove defensive calls to cogl_enable(0) - cogl_enable() no
longer exists (enable flags are part of the material)
- Use ClutterCairoTexture actor (from Clutter) rather than ClutterCairo
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