Commit Graph

139 Commits

Author SHA1 Message Date
Marina Zhurakhinskaya
39eb563687 Bug 574697 - Slide the workspaces back in if the user starts dragging a document or an application item in the expanded display mode
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.
2009-03-11 15:41:33 -04:00
Marina Zhurakhinskaya
8aa56e373f Bug 574691 – Stay in the overlay mode after drag and drop
Just calling launch() on the item instead of activate(), launches the item but doesn't close the overlay mode.
2009-03-10 13:37:01 -04:00
Marina Zhurakhinskaya
5af37f140e Bug 574117 - Allow paging through the application and document results in the overlay
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.
2009-03-09 16:52:11 -04:00
Colin Walters
8b1f732228 Make Escape key close More... modes before closing overlay entirely
This matches what I'd expect at least.
2009-03-06 13:06:39 -05:00
Owen W. Taylor
3066f60efc Handle applications without descriptions
ClutterText doesn't accept NULL for text, so pass in "" explicitly
if the description is null or undefined.

(Mentioned in Bug 573404)
2009-02-27 11:35:31 -05:00
Owen W. Taylor
cb4ad9a963 Fix behavior of More... links by adding a Link class
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
2009-02-26 18:07:25 -05:00
Marina Zhurakhinskaya
b39bc62171 Destroy workspaces background when exiting overlay mode
Otherwise, we kept adding new backgrounds which was breaking the overlay mode when it was re-entered.
2009-02-25 14:01:39 -05:00
Marina Zhurakhinskaya
009a8b3a04 Connect to 'text-changed' signal in the overlay search box
Replace connecting to 'notify::text' in the overlay search box
by connecting to 'text-changed' signal made available by ClutterText in Clutter 0.9.
2009-02-25 13:31:41 -05:00
Marina Zhurakhinskaya
95c87f87fa Bug 573078 – Add better transitions when expanding the item displays
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.
2009-02-25 13:23:12 -05:00
Owen W. Taylor
0f7abf96a7 Port to Clutter-0.9
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.
2009-02-23 14:53:06 -05:00
Marina Zhurakhinskaya
333fa611da Bug 572094 - Put sideshow sections into boxes, enable expanded item display for documents
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.
2009-02-20 11:57:30 -05:00
Marina Zhurakhinskaya
87f50c3f42 Fix up triggering search in the overlay.
Make sure to set this._searchQueued to true, so that we don't queue the search twice.

Remove an unused variable.
2009-02-20 11:53:25 -05:00
Jonathan Matthew
0eb4873ba0 Bug 572384 - can't select windows that are on all workspaces in the overlay
Workspace._onCloneSelected doesn't need to ask the window which
workspace it's on, it can just use its own workspaceNum field.
2009-02-20 00:02:49 +10:00
Colin Walters
7b2d333b2e Remove extraneous trailing paren accidentally introduced by c3c46786 2009-02-17 15:15:01 -05:00
Colin Walters
aaa846da17 Bug 571313 - Refocus search field every time overlay is shown
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.
2009-02-17 12:59:00 -05:00
Colin Walters
c3c4678635 Bug 571651 - Bind Alt-F1 to overlay
Previously it was bound to main menu, bind it to the overlay now.
2009-02-17 11:39:50 -05:00
Dan Winship
3d152f9c17 Fix the initial workspaces setup code. #571091
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
2009-02-16 14:35:18 -05:00
Colin Walters
85dae56a31 Bug 571203 - Handle spaces in overlay search
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.
2009-02-11 16:50:42 -05:00
Marina
2d3988c5fc Bug 570579: Redo the layout of overlay components
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.
2009-02-10 17:38:06 -05:00
Dan Winship
11561fd902 Abstract drag-and-drop a bit and add application/recent document DND. #569717 2009-02-10 11:20:48 -05:00
Dan Winship
e79c776c2e Add a wrapper around tweener to do some extra integration
Automatically removes tweens on destroyed actors, and provides
additional "animation started/stopped" callbacks (eg, for tracking
whether or not to show window clone titles)
2009-02-10 11:20:39 -05:00
Colin Walters
7d474b2217 Bug 51081 - Add startup notification information for application launching
Set the event timestamp and icon in application launch context to
support startup notification.
2009-02-10 10:59:28 -05:00
Jonathan Matthew
6dd302e5ce Bug 570583: handle tweens being overwritten during window effects
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.
2009-02-10 12:06:00 +10:00
Colin Walters
34f5adc9c0 Ignore newly added non-overlay windows
This prevents e.g. the popup menu from statusmenu from appearing
as a toplevel window.

svn path=/trunk/; revision=185
2009-02-04 22:40:24 +00:00
Colin Walters
b7a0a5e769 Merge branch 'statusmenu'
svn path=/trunk/; revision=183
2009-02-04 18:45:38 +00:00
Dan Winship
48e578ddaa Small fix for when a new window is added just before leaving the overlay
svn path=/trunk/; revision=182
2009-02-04 18:24:20 +00:00
Dan Winship
3392bef5c7 Call GenericDisplayItem's main actor '.actor' instead of '._group'.
As seen in #569717. Also fix up some indentation.

svn path=/trunk/; revision=181
2009-02-04 15:22:35 +00:00
Dan Winship
4850ea608f Track window adds/removes in the overlay. #568983
svn path=/trunk/; revision=180
2009-02-04 14:50:50 +00:00
Marina Zhurakhinskaya
e9826ecb45 Add a 'More' control to the applications display in the overlay
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
2009-02-03 22:58:33 +00:00
Owen Taylor
5f5a41b54e Remove left-over comment
Remove comment in frame-ticker code about dynamically adjusting
FRAME_RATE - we no longer do that.

svn path=/trunk/; revision=178
2009-02-03 21:25:27 +00:00
Dan Winship
4117739abb Don't do window transitions while the overlay is active. Part of #568983.
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
2009-02-03 18:25:34 +00:00
Dan Winship
87a3088719 sort imports consistently; everything-but-our-javascript, alphabetically,
then a blank line, then all of our javascript, alphabetically

svn path=/trunk/; revision=176
2009-02-02 23:02:16 +00:00
Dan Winship
489f3306e6 Fix a crash deleting a workspace, and another crash if the user tries to
select a workspace after deleting it.

svn path=/trunk/; revision=174
2009-02-02 20:54:33 +00:00
Dan Winship
f35ee1a5a0 oops, remove Workspace._makeDesktopRectangle, it's unused now
svn path=/trunk/; revision=173
2009-01-29 21:25:35 +00:00
Dan Winship
5def603e86 Move window clone functionality into its own class
svn path=/trunk/; revision=172
2009-01-29 21:21:50 +00:00
Dan Winship
7ca77dccc9 Do window dragging in the stage, not in the original workspace's actor
svn path=/trunk/; revision=171
2009-01-29 21:21:23 +00:00
Dan Winship
54337ee6a9 Two dragging-related fixes
- 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
2009-01-29 21:20:37 +00:00
Dan Winship
a80c18bc4e Use BigBox rather than TidyGrid to organize the panel. #568712
svn path=/trunk/; revision=168
2009-01-27 20:29:37 +00:00
Dan Winship
c86ce82921 fix a bug in the snap-back animation by turning it into a less-noticeable bug
svn path=/trunk/; revision=166
2009-01-27 20:05:55 +00:00
Owen Taylor
9b89ba6270 Allow windows to be dragged to other workspaces
* 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
2009-01-23 19:21:20 +00:00
Marina Zhurakhinskaya
b2fbf5a2d8 shell-global.c: remove a log message about missing 'Categories' key in the desktop file, as this key is not required
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
2009-01-22 21:28:19 +00:00
Colin Walters
5280decb59 Bug 568625: Ignore extra whitespace in search
svn path=/trunk/; revision=162
2009-01-21 22:37:02 +00:00
Colin Walters
ce36eafc2f Bug 568624: Make overlay search case insensitive
svn path=/trunk/; revision=161
2009-01-21 22:36:53 +00:00
Dan Winship
90bce45ec6 fix workspaces padding a little. (it's still not quite right)
svn path=/trunk/; revision=160
2009-01-21 21:59:58 +00:00
Marina Zhurakhinskaya
9949d75fcc Get categories from the desktop files for all applications
and use them when finding matching applications for the search in the overlay mode.

svn path=/trunk/; revision=159
2009-01-21 21:50:57 +00:00
Dan Winship
0d612b7954 Highlight the current workspace in the overlay view
Needs cooler-ness.

svn path=/trunk/; revision=158
2009-01-21 21:12:49 +00:00
Dan Winship
136ce3257d Clean up Workspace animation. #567865
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
2009-01-21 20:35:20 +00:00
Owen Taylor
ff5f960978 Adapt to new Tweener frame ticker API
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
2009-01-20 18:32:25 +00:00
Dan Winship
9a00ab1594 add a missing ";"
svn path=/trunk/; revision=155
2009-01-20 18:20:41 +00:00
Colin Walters
12b10342e0 Fix closing of loop variable which caused error messages
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
2009-01-20 16:13:41 +00:00