Commit Graph

340 Commits

Author SHA1 Message Date
Colin Walters
230c91b6d4 Functionality in ShellAppMonitor for tracking active applications
Hook into the metacity core for notification of new/removed windows,
and use the WM_CLASS data to map these to applications.  This is
a first pass; we need further redudancy in the system.
2009-06-02 18:18:25 -04:00
Colin Walters
d7dcfe6a06 Make ShellAppMonitor and ShellAppSystem singletons 2009-06-02 17:21:50 -04:00
Colin Walters
275eba17db Remove a lot of obsolete code from old Sideshow (now Dash) 2009-06-02 13:13:51 -04:00
Dan Winship
3ed0c2dc1c Take advantage of trayicon transparency in gtk+ 2.16
Fall back to the old behavior with older gtk.

http://bugzilla.gnome.org/show_bug.cgi?id=582484
2009-06-02 10:36:07 -04:00
Colin Walters
278a44caf1 Rework internals of ShellAppMonitor to use Metacity library
The code here is significantly cleaner if we use the data Metacity
already has cached and validated, rather than talking to X directly.

Also some preparatory work for extending the monitor API by
clarifying the name of the (current) main entry point.
2009-06-01 14:19:47 -04:00
Colin Walters
0ea01b31af Make unknown seat-id from gdm-user-manager debug instead of warning
This makes running with G_DEBUG=fatal-warnings usable from an
ssh connection on systems which don't record ConsoleKit logins
for ssh sessions.
2009-06-01 14:19:47 -04:00
Dan Winship
c32e928fc6 Make Alt-Tab highlight iconified items (in the tasklist) too
Change the "overlay" actor to be a group of 4 actors that we can
rearrange so as to have a hole in the middle (to cover up the whole
screen except for the highlighted icon). For non-iconified windows, we
still highlight them the old way (raising them above the overlay),
because we don't want square highlights around shaped windows.
2009-06-01 11:10:46 -04:00
Dan Winship
939aed29d6 Make Alt-Tab a bit faster and nicer
Make the indicator in the pop-up move faster.

Quickly fade in the "overlay" window when starting, rather than
showing it abruptly. Destroy it right away rather than just hiding it
when the AltTabHandler is destroyed.

Fix the font size to be the same as the "Activities" button.

Fix a warning when tabbing past an iconified window.
2009-06-01 11:03:11 -04:00
Dan Winship
0e14789aca Fix Alt-Shift-Tab to not skip some windows
The % operator doesn't do the expected thing with negative numbers.
2009-06-01 10:57:46 -04:00
Dan Winship
a4904043a0 Remove some debugging cruft that shouldn't have ever been committed 2009-06-01 10:56:15 -04:00
Marina Zhurakhinskaya
386d6a5eb2 Fix showing image previews
Fix the call for getting the image previews by getting an instance
of TextureCache first and then calling load_uri_sync() on it.
2009-05-26 17:26:00 -04:00
Colin Walters
36775c9a58 Fix syntax error in previous patch
Also some style/logic cleanups pointed out by Marina.
2009-05-26 13:55:51 -04:00
Colin Walters
5416f53351 Bug 581944 - Fully rebase on ShellAppSystem, don't use Gio to load apps
To avoid loading applications from two different systems, use
ShellAppSystem solely.  This unifies the initial load and the
reload.

Extend ShellAppSystem to also load settings/preferences, and
ensure they appear in the search.
2009-05-26 10:52:56 -04:00
Owen W. Taylor
0c7b983b10 Fix Chrome group not to interfere with drag-and-drop
Drag and drop was not working since the (non-reactive, invisible)
chrome group was on top of most of the screen. Explicitly set
a 0x0 size on that group to resolve the problem.
2009-05-23 10:47:13 -04:00
Owen W. Taylor
7af940f7ea Fix icon caching - set size in cache key
We need to include the icon size in the data we pass to on_pixbuf_loaded()
so that we can include it in the key we use when caching the icon
Currently we save icons in the cache at size 0 but look them up at size 48
so no caching occurs.

http://bugzilla.gnome.org/show_bug.cgi?id=583503
2009-05-21 18:51:43 -04:00
Owen W. Taylor
7d913452f5 Point GJS_DEBUG_OUTPUT to stderr
Recent gjs changes have made it log most types of messages (including
log() calls) only to a configured log file and not to stderr. So,
set GJS_DEBUG_OUTPUT=stderr to make *stderr* the log file and get
our log() calls back.
2009-05-21 15:22:44 -04:00
Jon McCann
99e6004c66 Use full opacity for windows in workspace/window selector
The goal of the workspace view is to identify and select windows.  Transparency
results in the blending of the window and the background (and icons on the
desktop).  I think the transparency is counterproductive.

We used it in the initial mockups kind of as a lark - it wasn't well thought
out.

http://bugzilla.gnome.org/show_bug.cgi?id=582647
2009-05-20 17:07:37 -04:00
Colin Walters
d024dbd779 Bug 582248 - Async loading of pixbufs and icon caching
Add a ShellTextureCache class which loads (and can cache)
pixmap->texture conversions.  This fixes a problem with the
async code in ClutterTexture that it was lower priority
than animations, and also ensures we're really only
loading these pixbufs once in the icon case.
2009-05-20 11:22:56 -04:00
Dan Winship
10afe46195 Add an initial implementation of the sidebar
This still needs design love, and none of the current widgets should be
considered finalized, but it shows the basic ideas.

http://bugzilla.gnome.org/show_bug.cgi?id=581774
2009-05-15 17:04:18 -04:00
Dan Winship
bc558306a4 Improve the framework for managing shell UI
Adds an explicit "chrome" layer for the panel (and later the sidebar),
managing the input region and struts for them, and hiding them when
fullscreen windows are present or the user enters the overlay.

http://bugzilla.gnome.org/show_bug.cgi?id=581771
2009-05-15 16:12:53 -04:00
Colin Walters
ff7940b87f Recursively flatten menus
This is a quick-fix which at least shows entries from nested
menus such as Wine.  It also enables us to load "settings.menu".
2009-05-14 13:04:37 -04:00
Dan Winship
deaf0e4e1a Make switch-workspace faster (the same as the other wm ops) 2009-05-13 15:24:32 -04:00
Milan Bouchet-Valat
bea595d143 Fix occasional crash in lists handling in ShellAppMonitor
We need to reset the popularity GSList* at start, and everytime we load data about a another activity. This also implies fixing the typo about (activity != -1).

Thanks to Dan Winship. http://bugzilla.gnome.org/show_bug.cgi?id=582215
2009-05-12 13:46:47 -04:00
Dan Winship
675fe56176 Use transition:"easeOutQuad" for switch_workspace, just like everywhere else
the overshoot-and-bounce-back effect (easeOutBack) gets annoying after a while
2009-05-11 16:21:39 -04:00
Dan Winship
0f2860b588 Don't temporarily show minimized windows while switching workspaces 2009-05-11 13:06:42 -04:00
Marina Zhurakhinskaya
e365a0ba7a Press in the Activities button when the overlay is entered
In addition to pressing the Activities button, the overlay can be entered
by pressing the System key or Alt+F1. We want the button to look pressed in
in these cases too.
2009-05-08 16:27:14 -04:00
Dan Winship
062e1aa78b Reorganize overlay hiding/showing code
Rather than having main.js manage this, put it into overlay.js, and
have the overlay object emit signals that other code can watch to do
things when the overlay is showing/shown/hiding/hidden.
2009-05-07 16:41:07 -04:00
Dan Winship
17fb280884 js/ui/panel.js: Lang.bind-ify 2009-05-07 09:54:21 -04:00
Dan Winship
397a105638 js/ui/Makefile.am: add altTab.js
http://bugzilla.gnome.org/show_bug.cgi?id=581541
2009-05-06 08:29:52 -04:00
Dan Winship
84d469c1f9 Deal with thumbnail failure correctly
If a file already has a failed thumbnail indicator, don't try to
thumbnail it, and if thumbnailing fails, create a failed thumbnail
indicator. (In particular, so that if thumbnail creation times out, we
don't keep retrying and eventually timing out every time the user
opens the overlay.)

http://bugzilla.gnome.org/show_bug.cgi?id=568081
2009-05-05 17:33:43 -04:00
Dan Winship
7fc4560e86 Add gstreamer deps for Ubuntu to gnome-shell-build-setup.sh
http://bugzilla.gnome.org/show_bug.cgi?id=579739
2009-05-05 17:05:59 -04:00
Marina Zhurakhinskaya
d67c88e4dc Bug 577380 - Use the default application for the mime type to open the document
Using appExec for the last application that registered the document was failing
in certain cases, such as for the Open Office for which the application
execution string is being registered as "soffice %u" in ~/.recently-used.xbel.
In general, using the default application for the mime type seems to be a more
predictable way to open documents. We still fall back to using the appExect
for the last application if the default application for a given mime type was
not found.
2009-05-05 15:51:56 -04:00
Dan Winship
88e68dec21 Let small windows appear at full size in the overlay if there is room
Previously we forced all windows to shrink at least as much as the
workspace itself did. Now we allow to shrink by a smaller amount (or
not at all) if they'll still fit within their allotted slot.

http://bugzilla.gnome.org/show_bug.cgi?id=571192
2009-05-05 15:35:04 -04:00
Milan Bouchet-Valat
9b632e8873 Fix GConf handling in ShellAppMonitor
This solves several issues:
- use built-in default so that app monitoring is enabled when schemas are not installed
- don't start/stop timers without checking their previous state
- unreference the default GConfClient
- use #define for the GConf key path
2009-05-05 14:39:51 -04:00
Owen W. Taylor
ba55264525 Set ShellTrayManagerChild.manager when creating a child structure
Just because ShellTrayManagerChild had a 'manager' field, I shouldn't
have assumed it was actually being set; fixes a crash with tray icons
that don't support RGBA visuals.
2009-05-05 14:07:11 -04:00
Vincent Untz
ff9a42c9b6 Do not use libgnome-shell.la for mutter plugin
Unless we're running gnome-shell from the source directory, we shouldn't
use the .la file as the mutter plugin. Instead, we use the dynamic
library.

Closes: bgo#581327
2009-05-05 16:02:39 +02:00
Vincent Untz
dedc1e096a Fix distcheck 2009-05-05 16:00:41 +02:00
Milan Bouchet-Valat
4ef655ffce Don't print useless error message when app monitor config file does not exist
This warning was printed even when app monitoring was disabled. It's not needed anyay since we'll warn on saving if an error occurs.
2009-05-04 16:45:42 -04:00
Owen W. Taylor
b7d3640b49 Add missing include of <stdlib.h>
gnome-shell-plugin.c needs stdlib.h for exit()
2009-05-04 14:28:07 -04:00
Owen W. Taylor
3327a198e1 Add size negotiation to the tray icons
* Rename ShellGtkWindowActor to ShellGtkEmbed, and make it require
  a ShellEmbeddedWindow rather than a general GtkWindow.

* Add ShellEmbeddedWindow subclass of GtkWindow that bypasses most
  of the GtkWindow complexity for size negotiation, and calls out
  to a clutter actor instead; also automatically handle reparenting
  the GtkWindow into the stage window.

* Use the reworked ShellGtkEmbed in ShellTrayManager, this simplifies
  the code a bit, and more importantly results in the tray icons
  having the correct size negotiation, rather than having a fixed
  24x24 size.

http://bugzilla.gnome.org/show_bug.cgi?id=580047
2009-05-04 14:24:05 -04:00
Owen W. Taylor
20e755023b Clean up underscores in function and variable names
Try to fix all places where we accidentally used foo_bar instead
of fooBar for function names, function parameters, and variables.

(Lucas Rocha pointed out one example.)

http://bugzilla.gnome.org/show_bug.cgi?id=581141
2009-05-04 13:50:49 -04:00
Dan Winship
63eea7dc20 Merge branch 'tab' 2009-05-04 13:01:22 -04:00
Dan Winship
81dbf5118f Implement MetaAltTabHandler
This is a fairly simple implementation, not all that different from
plain metacity's. Further improvements could be made to
js/ui/altTab.js in the future.

http://bugzilla.gnome.org/show_bug.cgi?id=580917
2009-05-04 13:01:03 -04:00
Owen W. Taylor
432ad0f451 Avoid clobbering the root window event mask
Calling gdk_window_get_events() then gdk_window_set_events() will
remove "exotic" X event masks that GDK doesn't know about like
SubstructureRedirectMask. A window manager that doesn't select
for SubstructureRedirectMask on the root window is no longer
really a window manager, so various Bad Things were happening.

We can just piggy-back on Mutter selecting for PropertyNotify
events on the root window, so removing the code works fine.

http://bugzilla.gnome.org/show_bug.cgi?id=580572 (reported by Mike Bursell)
2009-05-01 19:40:12 -04:00
Owen W. Taylor
4664fac566 Improve comments about startup notification
Do a better job at describe the problems in docDisplay.js related
to not reading the desktop files and finding StartupNotify=true.
Also, fix a typo.

http://bugzilla.gnome.org/show_bug.cgi?id=580658
2009-05-01 16:21:00 -04:00
Owen W. Taylor
bb69afc830 Set the workspace when launching apps
main.js: Add create_app_launch_context() with code from appDisplay;
  additionally set the workspace on the launch context to the current
  workspace so that the application launches on the right workspace
  even if the user switches before the app starts.

appDisplay.js docDisplay.js: Use Main.create_app_launch_context()

http://bugzilla.gnome.org/show_bug.cgi?id=580658 (Reported by Igor Vatavuk)
2009-05-01 15:18:51 -04:00
Dan Winship
4a5873dd22 Create a more extensible/organized strut/input_area management system.
Now code can call Main.addShellActor(actor) to declare that that actor
is part of the shell, and so it should (a) be protected by wm struts, and
(b) be part of the stage input area, and then that code automatically
deals with updating if the actor changes size or visibility.
2009-04-30 14:57:13 -04:00
Milan Bouchet-Valat
63821f1ae7 use application monitoring to show most used apps in the menu
The menu is filled with apps that are know to ShellAppMonitor, and then with default apps if there are not enough of them.
2009-04-29 11:05:03 -04:00
Milan Bouchet-Valat
216db2bb12 add GConf option to disable app monitoring
This option only disables timers, so that already collected is still provided to e.g. appDisplay. IMO that's required for privacy concerns...
2009-04-29 11:05:03 -04:00
Milan Bouchet-Valat
f4f92a879c application monitoring base object
The new ShellAppMonitor object is responsible for tracking active applications and store statistics.

http://bugzilla.gnome.org/show_bug.cgi?id=570899
2009-04-29 11:05:03 -04:00