Commit Graph

1826 Commits

Author SHA1 Message Date
Florian Müllner
7a6c25b3fb chrome: Ignore minimized windows when updating visibility
The current check for fullscreen windows ignores the window's
minimization state, so that chrome which is hidden in fullscreen
will always hide if the window on top of the window stack is
fullscreen, even if it is actually minimized.
Instead, skip minimized windows when looking for fullscreen windows.

https://bugzilla.gnome.org/show_bug.cgi?id=655446
2011-07-27 23:40:49 +02:00
Marina Zhurakhinskaya
0366e320af NotificationDaemon: only remove the source if notification sender is removed from DBus and the application is set
This ensures that we don't remove "notify-send" sources, senders of which are
removed from DBus immediately.
2011-07-27 17:16:05 -04:00
Dan Winship
7542e68b6f messageTray: improve bad-markup handling
_fixMarkup() was supposed to be ensuring that the markup we passed to
clutter was correct, but it was validating the syntax incorrectly, and
wasn't checking that the markup was valid (or even well-formed). This
is bad because if you pass bad pango markup to
clutter_text_set_markup(), it will g_warn and drop the string on the
floor.

Fix by fixing up the regexps, and then calling Pango.parse_markup() on
the result, and just xml-escaping everything if parse_markup() fails.

https://bugzilla.gnome.org/show_bug.cgi?id=650298
2011-07-27 09:29:03 -04:00
Dan Winship
4405d993c9 main: add logStackTrace(), for debugging
Add Main.logStackTrace(), to print a (javascript) stack trace, which
is often useful when debugging.

https://bugzilla.gnome.org/show_bug.cgi?id=654987
2011-07-20 15:45:58 -04:00
Rui Matos
361308eb1b Revert "wip: cross fade the window_group and window clones going in/out of the overview"
This reverts commit 1625591598.
2011-07-20 00:45:53 +01:00
Rui Matos
d894dedaf6 Revert "volume.js: make slider menu items activatable"
This reverts commit a50c30a4fd.
2011-07-20 00:45:29 +01:00
Rui Matos
d12dd1491f runDialog: catch exceptions from Gio.app_info_launch_default_for_uri()
An uncaught exception here would mean that the dialog wouldn't close.

https://bugzilla.gnome.org/show_bug.cgi?id=653700
2011-07-20 00:25:11 +01:00
Rui Matos
1625591598 wip: cross fade the window_group and window clones going in/out of the overview
https://bugzilla.gnome.org/show_bug.cgi?id=653868
2011-07-20 00:25:11 +01:00
Rui Matos
a50c30a4fd volume.js: make slider menu items activatable
Keeping the volume menu open after setting the desired volume isn't that
useful and forces a second click (or an Esc press) to dismiss it. Allow for
the sliders to be used with a single click-hold-move-release.

https://bugzilla.gnome.org/show_bug.cgi?id=649586
2011-07-20 00:25:11 +01:00
Jasper St. Pierre
80b98d8787 telepathyClient: Code cleanup
Move a function to where it's used and rename "_createSource"
to reflect that it creates *chat* sources.

https://bugzilla.gnome.org/show_bug.cgi?id=654791
2011-07-17 15:26:52 -04:00
Jasper St. Pierre
bf2ba83cd5 telepathyClient: Fix undefined variable
https://bugzilla.gnome.org/show_bug.cgi?id=654791
2011-07-17 15:26:52 -04:00
Maxim Ermilov
203dedfb3a viewSelector: Bind <Ctrl>+<Return> for open new window
https://bugzilla.gnome.org/show_bug.cgi?id=613082
2011-07-17 00:50:26 +04:00
Guillaume Desmottes
cecba0269f Approve audio/video channels
Support the old (StreamedMedia) and new (Call) API for now as the latter is
still used.

https://bugzilla.gnome.org/show_bug.cgi?id=653939
2011-07-15 17:12:41 +01:00
Dan Winship
0549f42030 panel, layout: clean up HotCorner handling
Move the HotCorner class from panel to layout, and make the panel
manage its own HotCorner.

Stick the panel's HotCorner into the Activities button actor (rather
than separately floating above it), so that hover tracking on the
button works properly without needing hacks in HotCorner.

https://bugzilla.gnome.org/show_bug.cgi?id=645759
2011-07-14 15:31:25 -04:00
Dan Winship
50f248ec5b panel: make ActivitiesButton a PanelMenu.Button
The fact that everything in the top bar except the activities button
was a menu made various things difficult. Simplify this by making the
activities button be a menu too, but just hack it up a bit so that the
menu associated with the button never actually appears.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=645759 (Clicking on
Activities with menu up leaves a funny state) and its semi-dup 641253
(panel keynav between Activities and menus is quirky).
2011-07-14 15:31:25 -04:00
Dan Winship
544bdb4fb1 panel: abstract ActivitiesButton into its own class
https://bugzilla.gnome.org/show_bug.cgi?id=645759
2011-07-14 15:31:25 -04:00
Dan Winship
896d8e830c chrome: don't show visibleInOverview chrome when the screensaver is active
visibleInOverview chrome was visible even when the screensaver was
active. Although we may eventually need visibleInScreenSaver, that
should be a separate flag.

Fix this by tracking the screensaver active state, and hiding the chrome
when the screensaver is active.

https://bugzilla.gnome.org/show_bug.cgi?id=654550
2011-07-14 12:51:18 -04:00
Dan Winship
5f86e29830 screenSaver: bugfixes
Fix the signal handling; you can't use this.connect('ActiveChanged')
to connect to a D-Bus signal after replacing the signal methods with
the lang.signals versions. Just leave it using the D-Bus signal names,
just like it uses the D-Bus method names.

Also, remove the "_" from "_screenSaverActive", to match what
AutomountManager checks for, and remove getActive(), since it's not
needed.

https://bugzilla.gnome.org/show_bug.cgi?id=654550
2011-07-14 12:51:18 -04:00
Guillaume Desmottes
90db743cc9 Turn RoomInviteSource to a more generic source
All the approving source will be basically the same.

https://bugzilla.gnome.org/show_bug.cgi?id=653939
2011-07-14 09:47:36 +02:00
Colin Walters
fe82897064 statusMenu: Fix typo in user switching commit 2011-07-13 17:43:23 -04:00
Florian Müllner
a92b7342ba message-tray: Move check for _actorDestroyed into _setCount()
As _updateCount has been designed to be overwritable by subclasses,
move the check for _actorDestroyed into _setCount(), to fix the
problem described in commit 5f6ac33d5 in derived types as well.
2011-07-13 22:27:15 +02:00
Florian Müllner
86818e9c52 autorun-manager: Fix 'destroy' handler of resident source
If the resident source is destroyed, it should be recreated
immediately, so that it is available when another volume is
mounted. However, we only connect to the 'destroy' signal
on the original source, not on newly created ones. As a result,
the resident source only works twice, after that it shows up
without icon and an empty notification.

Fix by always connecting to the source's 'destroy' signal.
2011-07-13 21:43:30 +02:00
Florian Müllner
5f6ac33d59 message-tray: Don't update message count after destruction
When trying to update the message count after a summary icon has
been destroyed, the label to display the count is no longer valid
and trying to set its text results in some Clutter warnings.
2011-07-13 20:48:44 +02:00
Cosimo Cecchi
b4f5e4206d automount: handle the drive-eject-button signal
The implementation is untested, as the signal is not emitted from the
Gdu GVfs volume monitor yet.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:36 -04:00
Cosimo Cecchi
5133c3e010 automount: emit sounds when a drive is connected/disconnected
https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:36 -04:00
Cosimo Cecchi
0b77ea422a mount-operation: implement ask-password for mounting encrypted volumes
https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:36 -04:00
Cosimo Cecchi
5c1dd4ea18 autorun: prefer Safe Removal over eject/unmount if possible
Basically do what NautilusPlacesSidebar does with the drive/volume/mount
eject/unmount/stop priorities.

We follow this pattern:
- always prefer Safely Remove if available (i.e. drive.stop())
- fallback to ejecting the mount/volume/drive if that's not possible
- finally, fallback to unmounting the mount if even eject is not
  available

This also means we don't care about the distinction between
Stop/Eject/Unmount at this level. Disk Utility (or Nautilus) are
available for those who want that degree of control, but the common case
here should do the most useful action without presenting the choice.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:36 -04:00
Cosimo Cecchi
e1c687184e mount-operation: implement ask-question
Use a system modal dialogs for mount operation questions.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:36 -04:00
Cosimo Cecchi
297d1356a2 mount-operation: add a ShellMountOperation implementation
Ideally, this would be an entirely-JS implementation, but we have a
couple of issues with gjs and gobject-introspection to work around, so
we need a ShellMountOperation class for the time being.

This first commit implements the show-processes dialog, with a system
modal style very similar to the EndSession dialog.
Implementations of ask-question and ask-password will follow shortly.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:36 -04:00
Cosimo Cecchi
98327b0c13 automount: only autorun volumes marked as allowed
Port code from g-s-d to mark volumes as allowed for autorun, and check
for it when running the notification.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:35 -04:00
Cosimo Cecchi
6786aee5ed autorun: integrate with the shell sniffer process
If possible, use the results from the sniffer process in order to have
less-generic alternatives to the file manager in the proposed autorun
choices.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:35 -04:00
Cosimo Cecchi
436dd6ee8c autorun: follow per content-type gsettings preferences for autorun
Autorun preferences can be fine-tweaked at the content-type level from
the System Settings 'Removable Media' panel.
Use those settings to figure out the default action for newly-mounted
mounts.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:35 -04:00
Cosimo Cecchi
acc053302d automount: add an AutomountManager class
The AutomountManager class is the low-level counterpart of the
previously introduced AutorunManager, and takes care of extracting the
list of valid mounts from a GVolume or a GDrive and mounting them,
provided a number of conditions and requirements are met.

AutomountManager also keeps track of the current session availability
(using the ConsoleKit and gnome-screensaver DBus interfaces) and
inhibits mounting if the current session is locked, or another session
is in use instead.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:35 -04:00
Cosimo Cecchi
534b371d42 autorun: add an AutorunManager class
AutorunManager is a class that takes care of displaying and managing
notifications and UI for storage devices.

When a mount appears and a number of conditions are satisified, a
transient notification will be displayed to immediately interact with
the device. AutorunTransientDispatcher is the object that takes care of
showing/hiding the notification sources as devices appear/disappear.

Likewise, current mounts are kept in a list and presented within a
list in a resident notification, handled by AutorunResidentSource.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:35 -04:00
Cosimo Cecchi
6004e3d2e1 screensaver: factor out a ScreenSaverProxy helper class
This class will be shared between StatusMenu and the upcoming
AutomountManager classes.

https://bugzilla.gnome.org/show_bug.cgi?id=653520
2011-07-13 14:39:35 -04:00
Colin Walters
c632074ba7 statusMenu.js: Ensure screensaver is locked before switching users
Somewhat similar to (see bug 637540), we need to lock the screensaver
*before* asking GDM to switch.

https://bugzilla.gnome.org/show_bug.cgi?id=654565
2011-07-13 14:32:26 -04:00
Florian Müllner
fda4fc674d power: Remove _checkError()
On error, we tried to kill and respawn gnome-power-manager, but
as of commit c5676900 the DBus interface provided by g-s-d's power
plugin is used, so the respawning does not have any effect.

https://bugzilla.gnome.org/show_bug.cgi?id=654300
2011-07-13 19:45:29 +02:00
Giovanni Campagna
5819dd3a5a NetworkMenu: take out an item from More... when another is destroyed
When one of the networks in the main menu is removed and we have
a More... submenu, we can take the first out from the submenu and
show it in the main menu.

https://bugzilla.gnome.org/show_bug.cgi?id=647175
2011-07-13 01:33:47 +02:00
Giovanni Campagna
67736642f3 Fix methods that take array arguments
Length parameter is no longer required in current GJS. Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=654349
2011-07-11 20:13:35 +02:00
Guillaume Desmottes
09f3c87d20 Allow other clients to preempt the channels we are handling
This is needed if we are handling an incoming text channel and then user tries
to open a chat with the same contact using Empathy. In this case, the Shell
should delegate the channel back to Empathy and just continue observing it as
it does for usual outgoing channels.

Depends on telepathy-glib 0.15.3 as
tp_base_client_set_delegated_channels_callback() has been added in this
version.

https://bugzilla.gnome.org/show_bug.cgi?id=654237
2011-07-11 14:43:14 +02:00
Marc-Antoine Perennou
6d53d43766 PopupSwitchMenuItem: don't override switch by creating it twice
Due to an accidental addition line in commit c8670819, all switches in popup
menus accidentally gave the appearance that they were turned off.

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>

https://bugzilla.gnome.org/show_bug.cgi?id=654267
2011-07-09 19:26:24 -04:00
Neha Doijode
153768ef7f NotificationDaemon: remove source if notification sender is removed from DBus
We don't want sources that are no longer associated with a running application
to stick around in the message tray.

Message tray sources were removed when the associated application’s state
changed to Shell.AppState.STOPPED . This caused sources for applications
that were still running, but did not have any open windows to be removed.
Instead, we should use the notification’s sender removal from DBus as an
indicator for when to remove the associated source from the message tray.

https://bugzilla.gnome.org/show_bug.cgi?id=645764
2011-07-08 21:24:42 -04:00
Jonny Lamb
de348a4c49 telepathyClient: send typing notifications
If we're typing we want to send composing. If we empty the entry we
want to send active. If we're typing but don't type any more for
COMPOSING_STOP_TIMEOUT seconds, we want to send paused. Simple.

This behaviour was stolen from Empathy where it has won many awards.

https://bugzilla.gnome.org/show_bug.cgi?id=650196

Based on patch from Jonny Lamb <jonnylamb@gnome.org>
Signed-off-by: Alban Crequy <alban.crequy@collabora.co.uk>
2011-07-07 16:31:22 +01:00
Guillaume Desmottes
fda8ffd9ef Display the number of unread messages in the notification icon
https://bugzilla.gnome.org/show_bug.cgi?id=654139
2011-07-07 15:48:33 +02:00
Guillaume Desmottes
6cb707cc4f messageTray.js: raise an exception only if parseInt(count) returns NaN
0 is a valid value for count so we should accept it.

https://bugzilla.gnome.org/show_bug.cgi?id=654139
2011-07-07 15:47:12 +02:00
Guillaume Desmottes
998c5f17fc Approve room invitations
We use to rely on Empathy for this but as we plan to allow users to be
connected on IM without having Empathy running the Shell should do it now.

https://bugzilla.gnome.org/show_bug.cgi?id=653740
2011-07-07 11:18:46 +02:00
Jasper St. Pierre
40f4e92461 messageTray: Use the count to display the number of unread notifications
https://bugzilla.gnome.org/show_bug.cgi?id=649356
2011-07-06 18:43:39 -04:00
Jasper St. Pierre
c727da823b messageTray: Add an enumerable count for sources to use
https://bugzilla.gnome.org/show_bug.cgi?id=649356
2011-07-06 18:43:31 -04:00
Florian Müllner
8d1b7962d8 workspace: Fix layout errors caused by window zoom
Commit 64b2b4a7d4 changed the monitor layout handling, resulting
in some layout errors due to a subtle change in memory handling:
when zooming a window in the overview, the available zoom area is
calculated by subtracting the panel height from the primary monitor
area. This area used to be a copy of the monitor rect, but as now
the rect itself is returned, zooming a window on the primary monitor
repeatedly modifies the monitor rect, leading to layout errors in
various parts of the shell.
Fix by using a copy when calculating the available zoom area.

https://bugzilla.gnome.org/show_bug.cgi?id=654105
2011-07-06 22:06:45 +02:00
Dan Winship
80eb5bf535 js: belatedly add layout.js to Makefile 2011-07-06 11:18:29 -04:00