Commit Graph

107 Commits

Author SHA1 Message Date
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
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
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
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
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
Milan Bouchet-Valat
17a4a3a949 use a global config dir (for app monitor)
Ensure a configuration dir exists, and provide its path as 'configdir' property of ShellGlobal. This will be used by ShellAppMonitor.
2009-04-29 11:05:03 -04:00
Marina Zhurakhinskaya
82cf98740a Bug 578178 – Show large previews for image files
Use the actual image from the file for expanded mode previews for image files. Use the pixbuf loader to set the appropriate image size as soon as the image is prepared, but before it is loaded, to avoid loading large images. Apply the pixbuf orientation setting so that the image is properly rotated. Preserve the original size of the image if its dimensions are smaller than the space available.

Make sure we provide the accurate available width for the details actor. This
width has to exclude the padding and border width. Also provide the available height for the details actor.
2009-04-28 15:35:36 -04:00
Colin Walters
59b12687d4 Bug 573322 - Do box layout in int
This fixes some centering issues, e.g. in the search area.

This patch is from Havoc Pennington.
2009-04-27 13:48:56 -04:00
Owen W. Taylor
0b81a4a7e9 Use Meta-2.27.gir when building the plugin gir
Use Meta-2.27.gir; Mutter in git.gnome.org now generates that
version.
2009-04-25 11:56:09 -04:00
Colin Walters
b632801c7c Rename ShellAppMonitor to ShellAppSystem
This makes it clearer that really we're now an API, not just a
monitor.
2009-04-22 15:34:14 -04:00
Owen W. Taylor
56644dfada Close file descriptors on re-exec
Use code copied from GLib to close all file descriptors before we reexec ourselves
on the restart Alt-F2 command. This fixes serious memory leaks when we have mapped
graphics buffers.

http://bugzilla.gnome.org/show_bug.cgi?id=579776
2009-04-22 15:08:07 -04:00
Sander Dijkhuis
7c8cb8450c Bug 578584 - Use the wallpaper for the overlay background
The overlay looks nicer with the root window pixmap drawn on the
background. It is scaled up to twice the size, with positioning
based on the rule of thirds.

The sideshow animations shown when entering or leaving the
overlay and toggling the extended view were implemented by
Marina Zhurakhinskaya. They replace the old method of having a
black rectangle behind the workspaces that partly covers the
sideshow during transitions.

configure.ac: Add gdk-x11, clutter-x11 and clutter-glx modules.
overlay.js: Add a root window pixmap actor, make sideshow width
    definitions more logical, replace the way the sideshow
    animates when entering or leaving the overlay.
workspaces.js: Remove the backdrop, add helper functions for the
    overlay transitions.
shell-global.[ch]: Add a method that creates an actor displaying
    the root window pixmap and returning clones of it.
2009-04-22 02:46:36 +02:00
Owen W. Taylor
3aeadee946 Set colormap on background pixmaps for a tray icons
We need to use gdk_drawable_set_colormap() before drawing with cairo
on a pixmap; otherwise cairo won't know what colors to use.
2009-04-18 17:09:11 -04:00
Owen W. Taylor
a0dcee1b81 Fix drawing of icons with alpha transparency
Icons with real alpha transparency weren't being drawn correctly
because the NaTrayIcon was being set redirected in addition to the
window holding it. And nothing drew the icon onto the window holding
it. Use the newly added na_tray_icon_set_composited() to fix.
2009-04-18 17:06:14 -04:00
Owen W. Taylor
58e718ac0c Allow more flexibility for NaTrayChild compositing
na-tray-child.[ch]: Add na_tray_child_set_composited() to allow the
 application to modify the behavior where gdk_window_set_composited(TRUE)
 is called for icons with alpha. Rename na_tray_child_is_composited() to
 na_tray_child_has_alpha() to better reflect the meaning and fix things
 so that it can be called at any time and not only after the icon is
 realized.
na-tray.c: Adapt to na_tray_child_is_composited() rename.

http://bugzilla.gnome.org/show_bug.cgi?id=579454
2009-04-18 17:05:14 -04:00
Owen W. Taylor
bb92791bd3 Sync whitespace with gnome-panel version of NaTray*
Propagate line-wrapping and other white-space changes from gnome-panel
to our copy of NaTrayChild and NaTrayManager.
2009-04-18 16:49:07 -04:00
Owen W. Taylor
c8fd1f99d5 Use single include for gtk+
Merge from gnome-panel

2008-12-09  Vincent Untz  <vuntz@gnome.org>

        * na-tray-manager.[ch]: use single include for gtk+
2009-04-18 16:49:07 -04:00
Owen W. Taylor
5963a00fc5 fix compilation warnings
Merge from gnome-panel

2008-12-09  Vincent Untz  <vuntz@gnome.org>

        * na-tray-child.c: (na_tray_child_realize): fix compilation warnings
2009-04-18 16:49:07 -04:00
Owen W. Taylor
5efb616acc Remove translatable string in a warning
Merge from gnome-panel

2008-12-09  Vincent Untz  <vuntz@gnome.org>

        * na-tray-child.c: (na_tray_child_size_request): remove translatable
        string in a warning
2009-04-18 16:49:07 -04:00
Dan Winship
b153e4ed0f When using -g, reset terminal state on exit
Fixes various problems where gnome-shell would kill gdb and then leave
the terminal in a broken state.
2009-04-13 11:58:05 -04:00
Colin Walters
df1e051207 Check the type of GMenu items we get to avoid a crash
We can't assume they're entries, and in this case they were
actually directories.
2009-04-08 10:54:27 -04:00
Colin Walters
0a9226f7f2 Add a menu display to applications
ShellAppMonitor now depends on gmenu to load menus.

Use the menu data from ShellAppMonitor to show a menu list.

GenericDisplay implementations can now have a sidebar area.  We
handle keystrokes such as left/right explicitly.

Some internal API changes to account for the fact that a display
can have another filter in addition to the search.
2009-04-07 17:07:35 -04:00
Siegfried Gevatter
0857377f82 Add support for respawning Compiz
If you start gnome-shell while Compiz is running, respawn it instead
of Metacity when gnome-shell ends.

http://bugzilla.gnome.org/show_bug.cgi?id=578148
2009-04-06 20:35:51 -04:00
Siegfried Gevatter
22835b35e7 Catch exception raised when Xephyr can't be found
If Xephyr isn't installed currently src/gnome-shell raises
an exception which isn't at all obvious without looking at
the source. This commit catches the exception and replaces
it with a more informative error message.
2009-04-06 10:42:05 -04:00
Dan Winship
2ea5012535 Disable gdmuser debugging messages (unless "gdm" is set in GNOME_SHELL_DEBUG)
http://bugzilla.gnome.org/show_bug.cgi?id=577855
2009-04-03 14:33:39 -04:00
Marina Zhurakhinskaya
5fbc0d4a56 Bug 577338 – Show item details on click in the expanded view
Change the overlay behavior to display more details about an item on single
click and launch it on double click.

When the item is clicked on in the expanded view, the details are shown in the
area on the right that is allocated for showing details. The details pop-up is
not shown for the item that was clicked on, but it is shown for other items on
hover and for the item that was clicked if the mouse pointer is moved back to
it.

Both hovering and single clicking results in the details pop-up being shown in
the regular view. (Single clicking actually doesn't do anything in the regular
view, but the details pop-up is shown due to hovering within the time it takes
to perform a single click.)

The overlay now uses 3 columns on the wide screen for displaying items in the
expanded view. This allows keeping the size of the details area the same for
expanded and regular views.

Add shell_get_button_event_click_count() to shell-global.[hc] to retrieve
the click count for button press and release events.

Add selectedItemDetails public variable actor to the generic display to
contain the details of the selected item and be shown in the overlay when
it is in the expanded view mode.

Fix the bug when the sideshow section would loose selection in the expanded
view if it did not have any items, and would not regain it if it was repopulated
with some items (e.g. when the search string changes).

The sideshow no longer takes overlay parent and width as constructor arguments.
It is added to the overlay inside the overlay code and manages its own width
instead (which is ok, since it is pretty much a private class within overlay).

Clean up the way selection is moved when an item is launched in order to have
selection on click and activation on double click be implemented in a similar
fashion. An unneeded _activatedItem variable in generic display was removed,
and the selected item is activated instead when necessary. The flow of processing
signals changed so that generic display no longer waits for the selection from
a different sideshow section to be removed before selecting an item that was
clicked on. This removed the need for doActivate() function.
2009-03-31 14:12:33 -04:00
Sander Dijkhuis
2b9b600710 Bug 574702 - Give the panel a gradient background and shadow
The panel looks nicer when it is drawn as a semi-transparent gradient
above the background color.

shell-global.[ch]: Add a function that creates vertical gradient actors.
panel.js: Change the look of the panel and put the tray in a framed box.
overlay.js: Extend the overlay background to behind the panel.
2009-03-24 15:20:16 -04:00
Owen W. Taylor
afceea3fe6 Add a built-in screencast recording facility
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
2009-03-20 16:53:50 -04:00
Dan Winship
8087e6aee6 make gnome-shell runnable from an install 2009-03-12 10:04:47 -04:00
Dan Winship
e01efd3635 Make "make distcheck" work, and verify that we're disting all the javascript 2009-03-12 10:04:25 -04:00
Colin Walters
c570795ac7 exit () on JavaScript exceptions
This is better than being in a wedged state.  See the comment
for more argument.
2009-03-10 17:53:05 -04:00
Dan Winship
508d6021da Fix another s/$(libdir)/$(META_LIB_DIR)/ when building Shell-0.1.typelib 2009-03-10 13:03:20 -04:00
Dan Winship
ab663d62e4 Remove references to files that no longer exist 2009-03-10 13:01:04 -04:00
Dan Winship
1048ae898b fix CLEANFILES: it's Shell-0.1.gir, not Shell-1.0.gir 2009-03-10 13:00:36 -04:00
Dan Winship
d7a23b7e31 Bug 573413 – libmozjs linking broken on Ubuntu
Patch gnome-shell.in to work around Ubuntu xulrunner bug in the same
way our .jhbuildrc does
2009-03-10 11:19:38 -04:00
Dan Winship
6676260308 Don't try to respawn metacity and the panel if we didn't kill them.
Also, don't crash out of the python script if metacity-clutter crashes
2009-02-26 13:08:42 -05:00
Dan Winship
84aec28575 Make the gnome-shell script work without needing "jhbuild run" 2009-02-25 14:37:16 -05:00
Colin Walters
629c35bd2a Only try to kill gnome-panel if it's running
This avoids crashing if it's not.
2009-02-25 12:54:14 -05:00
Dan Winship
54a9b5ae4e Move LIBGL_ALWAYS_INDIRECT code to the right place 2009-02-24 14:59:32 -05:00
Dan Winship
67092f807e Fix setting of LIBGL_ALWAYS_INDIRECT
(Previous commit mistakenly only set it in verbose mode due to a cut and
paste error.)
2009-02-23 16:45:38 -05:00
Dan Winship
0763f5bc42 Replace start-in-Xephyr/start-replace with a new single "gnome-shell" script
The new script runs in "replace" mode if you pass --replace, or if there
isn't already a panel running, and in "Xephyr" mode otherwise.
2009-02-23 16:16:20 -05:00
Owen W. Taylor
1fe32e30f5 Improve font appearance
- 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.
2009-02-23 14:53:18 -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