Commit Graph

5394 Commits

Author SHA1 Message Date
Shivam Mishra
aeb971c33a windowManager: Block dynamic workspace updates while showing the popup
Pause dynamic workspace management while workspaceSwitcherPopup
is shown so as to eliminate infinite creation and destruction of
workspaces, thus preventing stuttering while trying to move a
window to last workspace.
Add _isWorkspacePrepended flag to make sure only a single workspace
is prepended at a time thus preventing the possibility of prepending
infinite workspaces while dynamic workspace management is on pause.
Prepend a new workspace by creating a new workspace instead of only
shifting the windows to next workspace so that the workspaceSwitcherPopup
may appear in sync with what's happening behind the scene and display
correct number of workspaces.

https://bugzilla.gnome.org/show_bug.cgi?id=712778
2015-03-27 14:13:27 +01:00
Sarvjeet
8897385714 Give user 48ms to read each character of a PAM message, earlier it was 16ms
User read time per character has been changed from 16ms to 48ms because the
message of information about last login is displayed for half a sec that is not
a good user experience. So time to read a character is increased to 48ms from 16ms.

https://bugzilla.gnome.org/show_bug.cgi?id=720885
2015-03-26 18:42:00 -05:00
Devyani Kota
e2a17fa8b4 workspacesView: Allow switching workspaces in overview with pageUp/Down
To switch workspace by keyboard in the overview, the user currently
has to use the normal keybinding. However as the vertical alignment
of workspaces makes them very similar to pages in the app picker, it
makes sense to also support the standard pageUp/pageDown keys.

https://bugzilla.gnome.org/show_bug.cgi?id=742581
2015-03-26 21:58:59 +01:00
Florian Müllner
14da6b68dc windowManager: Don't allow move-to-workspace for always-sticky windows
"Moving" a window to another workspace doesn't make sense when it cannot
be unstuck, and is potentially confusing if a new workspace is added at
the start/end - just don't do anything in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=746782
2015-03-26 12:19:33 +01:00
Florian Müllner
9a01a7ae07 workspacesView: Add missing semicolon 2015-03-26 00:05:38 +01:00
Rui Matos
c3bf4a325d Refresh all background instances after suspend if needed
NVIDIA drivers don't preserve FBO contents across suspend / resume
cycles which results in broken backgrounds. We can work around that by
forcing a refresh when coming out of suspend.

https://bugzilla.gnome.org/show_bug.cgi?id=739178
2015-03-24 11:45:04 +01:00
Florian Müllner
9934529a0b loginDialog: Move long session-list menus to the side
Currently the menu position below the button means that the menu
can extend to roughly half the screen height before ending up partly
off-screen. This is plenty of space for commonly installed sessions,
but some users have a significantly higher number of sessions in the
list. Move the menu to the side of the button in that case to maximize
the vertical space the menu may take up.

https://bugzilla.gnome.org/show_bug.cgi?id=734352
2015-03-23 20:25:21 +01:00
Florian Müllner
ef6e8f5bb2 legacyTray: Remove pointer barrier when the tray is hidden
https://bugzilla.gnome.org/show_bug.cgi?id=746579
2015-03-23 20:23:01 +01:00
Florian Müllner
2ce7a3baa6 legacyTray: Stack tray below modal dialogs
System modal dialogs should disable other UI while open, so make
sure the legacy tray does not appear on top of them.

https://bugzilla.gnome.org/show_bug.cgi?id=746323
2015-03-23 20:20:52 +01:00
Florian Müllner
f2c1a416bf legacyTray: Pass on keyboard events to the icon
There is currently no way to trigger an icon's right-click menu by
keyboard. While there's a good chance that the icon will ignore
<shift>F10 and similar shortcuts, passing on key events will at
least make it work for some icons ...

https://bugzilla.gnome.org/show_bug.cgi?id=746487
2015-03-22 09:33:33 +01:00
Florian Müllner
28ef88911c legacyTray: Try to set an accessible name for status icons
While legacy status icons lack a proper accessible name of their own,
we can try to find the corresponding application or the icon's window
title - hopefully most status icons provide at least one, so they
don't show up completely "blank" in screen readers.

https://bugzilla.gnome.org/show_bug.cgi?id=746487
2015-03-22 09:33:33 +01:00
Ray Strode
e5270cb6ec Revert "loginDialog: Don't arbitrarily pick a random session for the user"
This reverts commit 6d40cb98e7.

https://bugzilla.gnome.org/show_bug.cgi?id=740142
2015-03-18 12:44:37 -04:00
Ray Strode
ee360d8749 Revert "loginDialog: Better handle setting the active session"
This reverts commit 681861c8c7.

https://bugzilla.gnome.org/show_bug.cgi?id=740142
2015-03-18 12:44:37 -04:00
Rui Matos
4da2862f8f status/keyboard: Add a system settings concept to be used under GDM
g-s-d has been taking care of this for us but in a very hackish way
that causes dconf writes on every startup and also doesn't handle
dynamic updates to locale1's properties which has become a problem now
that GDM keeps its greeter session running in parallel with users'.

To take care of this properly, this commit introduces a settings
abstraction with both system and session implementations. The session
implementation just wraps access to the existing gsettings while the
system one gets its values from org.freedesktop.locale1's properties.

https://bugzilla.gnome.org/show_bug.cgi?id=746288
2015-03-17 18:13:02 +01:00
Ray Strode
b1de1ada25 gdm: fix empty user list on user switching
There's some vestigial code for hiding the user list
that runs at the same time its parent is hidden.

Only the parent should be hidden, at this point, so
there's situations where the user list hides and
never comes back.

This commit fixes that, by deleting the vestigial code.

https://bugzilla.gnome.org/show_bug.cgi?id=719418
2015-03-17 12:22:06 -04:00
Florian Müllner
1002bbc212 calendar: Fix body alignment for RTL locales
Since commit 75745fc23f, the bodyStack itself is no longer start-aligned
to not break custom body actors like chat notifications. However we still
want "normal" body actors start-aligned to get the correct RTL behavior.
2015-03-17 16:46:08 +01:00
Florian Müllner
15e42c4d5f messageTray: Stop including an actor with Notifications
We now stopped using notification actors directly for anything, so
we can simplify the Notification class significantly by turning it
into a purely informational object others can use to built their UI
representation from.

https://bugzilla.gnome.org/show_bug.cgi?id=746343
2015-03-17 16:07:17 +01:00
Florian Müllner
bb61dd4b44 telepathyClient: Provide a custom banner implementation
Since we stopped special-casing chat notifications to use the old
notification actor, we need to provide a notification banner to
maintain the inline chat functionality, so split out the UI from
the existing ChatNotification class.

https://bugzilla.gnome.org/show_bug.cgi?id=746343
2015-03-17 16:06:52 +01:00
Florian Müllner
2d4ba30ba2 messageTray: Always destroy banners when done displaying
Special-casing banners of resident notifications was really a
thinly veiled special case for chat notifications, as those were
still using the old notification actor which coupled the life-time
of the notification to its actor. This is no longer the case, so
we can do the sane thing and destroy banners once they are no
longer needed.

https://bugzilla.gnome.org/show_bug.cgi?id=746343
2015-03-17 15:48:37 +01:00
Florian Müllner
54f46e8486 Revert "messageTray: Special-case chat notifications to use the old actor"
This was really just a temporary hack to buy us more time to properly port
chat notifications to the new banners ...

This reverts commit cd5318baa7.

https://bugzilla.gnome.org/show_bug.cgi?id=746343
2015-03-17 15:48:37 +01:00
Florian Müllner
0ee762263a telepathyClient: Don't remove body on updates
Passing null as body always meant clearing the existing one. While this
mattered less with the old message tray which used the expanded actor,
the new message list in the calendar uses the unexpanded body. We clearly
don't want that to disappear on icon changes, so pass the existing one.

https://bugzilla.gnome.org/show_bug.cgi?id=746343
2015-03-17 15:48:37 +01:00
Florian Müllner
8b6e566728 popupMenu: Use .selected class for active item
Currently it uses .active, which matches the code more closely, but
is confusingly close to :active; so .selected it is ...

https://bugzilla.gnome.org/show_bug.cgi?id=745246
2015-03-17 15:43:49 +01:00
Florian Müllner
a504dd866b calendar: Minor cleanup
Commit b61cb92053 added a close method, use that instead of
explicitly emitting the corresponding signal.
2015-03-17 05:34:14 +01:00
Florian Müllner
dfc51ef243 messageTray: Minor cleanup
Chain up to the parent instead of setting up a second signal connection.
2015-03-17 05:34:14 +01:00
Florian Müllner
a25d2dc256 telepathyClient: Remove some more dead code 2015-03-17 04:14:44 +01:00
Florian Müllner
b2ae945cf2 telepathyClient: Remove some dead code
This has been unused ever since we stopped logging presence changes in
commit 4448b65a18 ...
2015-03-17 03:29:42 +01:00
Jasper St. Pierre
681861c8c7 loginDialog: Better handle setting the active session
We currently use the setActiveSession method to both mark a menu item as
selected, and also tell gdm about the current session the user selected.

Since gdm is ultimately in charge of the state, we should decouple this
and simply ask gdm to set the session, and have the menu item reflect
what gdm thinks is the current session.

This prevents state getting mismatched and oscillations from happening,
where we get in a loop of constantly telling gdm what the session is.

https://bugzilla.gnome.org/show_bug.cgi?id=740142
2015-03-16 17:47:27 -04:00
Jasper St. Pierre
6d40cb98e7 loginDialog: Don't arbitrarily pick a random session for the user
gdm should be in charge of telling us the default session, and it
should pick one for the user if she doesn't already have one.

https://bugzilla.gnome.org/show_bug.cgi?id=740142
2015-03-16 17:47:27 -04:00
Ray Strode
5650355da5 gdm: fix handling of removed smartcard at startup
If a smartcard is missing from the reader when we start up,
and the system is configured to disable password authentication,
then we need to ask the user to insert their smartcard.

This commit fixes that.

https://bugzilla.gnome.org/show_bug.cgi?id=740143
2015-03-16 13:45:50 -04:00
Florian Müllner
96c8870820 viewSelector: Mirror open-app-view edge drag gesture for RTL
It makes sense for the gesture to reflect the position of the
activities button / dash. In RTL locales, those are located on
the right rather than the left, so make the gesture apply to
the opposite edge in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=737502
2015-03-15 19:41:44 +01:00
Clément Guérin
6380526c12 screenshot: fix off-by-one selection size
Selecting the whole screen made a (scr_w-1,scr_h-1) sized screenshot.

https://bugzilla.gnome.org/show_bug.cgi?id=746223
2015-03-14 16:04:23 -07:00
Clément Guérin
fa4f6c4561 screenshot: use integer coordinates
This fixes the shivery selection rectangle when making a region
screenshot.

https://bugzilla.gnome.org/show_bug.cgi?id=746223
2015-03-14 16:04:23 -07:00
Cosimo Cecchi
a5b7eaec1a legacyTray: add a pointer barrier to activate the tray
Allows easier access to the tray by just pushing the cursor against the
edge.

https://bugzilla.gnome.org/show_bug.cgi?id=746026
2015-03-14 14:26:29 -07:00
Carlos Garnacho
ff1b76f4c7 keyboard: Listen to MetaBackend::last-device-changed for OSK changes
Instead of listening to a dbus property exported by g-s-d, listen to the
MetaBackend signal telling the last interacted device, and make sure we
only show the keyboard for touchscreens.

https://bugzilla.gnome.org/show_bug.cgi?id=745977
2015-03-13 21:08:51 +01:00
Florian Müllner
775a2ea051 legacyTray: Add to ctrl-alt-tab
While legacy status icons are notoriously bad with regard to
accessibility (well, among many other things), we should still
make them available via ctrl-alt-tab ...

https://bugzilla.gnome.org/show_bug.cgi?id=746022
2015-03-13 17:12:10 +01:00
Florian Müllner
cb3d5c2b51 Use dedicated icons for top bar/windows in ctrl-alt-tab
The previously used ones were quite a stretch, so now that we got
dedicated ones, let's use them.
2015-03-13 17:12:10 +01:00
Florian Müllner
777616d8b0 calendar: Permanently hide dismissed events
Currently dismissed events will simply reappear when browsing
back and forth between dates, which is clearly broken. Instead,
hide events that have been dismissed permanently. For now, we
simply store a list of ignored IDs ourselves, until we get API
in evolution-data-server to reliably store custom per-event
properties.

https://bugzilla.gnome.org/show_bug.cgi?id=744927
2015-03-13 15:53:41 +01:00
Piotr Drąg
921a9071a1 NetworkAgent: use existing strings to avoid breaking the string freeze 2015-03-12 22:23:57 +01:00
Giovanni Campagna
90a08ba0b6 NetworkAgent: differentiate between user-initiated actions and automatic connections
If the action was initiated by the user, we want to show the
modal dialog immediately, while if the action was initiated by
NM autoconnection policy we first show a notification and then
show the dialog when needed.

https://bugzilla.gnome.org/show_bug.cgi?id=660293
2015-03-12 13:33:38 -07:00
Rui Matos
4e52ed9df7 status/keyboard: When per-window, choose the first IS for new windows
This was libgnomekbd's behavior and seems to be prefered by users.

https://bugzilla.gnome.org/show_bug.cgi?id=746037
2015-03-12 17:55:47 +01:00
Florian Müllner
01b51cd081 calendar: Only allow closing events on the current day
The design calls for differentiating between dismissable reminders
and permanent events, based on whether the selected date is "today"
or some other day.

https://bugzilla.gnome.org/show_bug.cgi?id=744927
2015-03-12 17:10:11 +01:00
Florian Müllner
d1efc274e5 calendar: Factor out a proper EventMessage class
While messages in the EventsSection are currently simple enough to
use the generic Message baseclass, the design calls for events to
only be dismissable on the current day. We will need a subclass to
implement this behavior cleanly, so add one.

https://bugzilla.gnome.org/show_bug.cgi?id=744927
2015-03-12 17:10:11 +01:00
Florian Müllner
d48d787c1e calendar: Minor cleanup
As the design calls for slightly different behavior for the current
day, move the _isToday() function out of MessageListSection to have
it available elsewhere as well ...

https://bugzilla.gnome.org/show_bug.cgi?id=744927
2015-03-12 17:10:11 +01:00
Florian Müllner
e4ad31a5dd calendar: Close messages on clear
Currently the clear action in the section header simply removes all
messages from the section. While the result looks exactly as if the
close button of each individual message had been clicked, the messages
are not actually closed - after a restart (or some other condition that
triggers a reload), the messages simply reappear, which is confusing.
Do the expected thing instead, and make clear close all messages in the
section.

https://bugzilla.gnome.org/show_bug.cgi?id=746027
2015-03-12 17:10:11 +01:00
Florian Müllner
b61cb92053 calendar: Add public close() method
Currently a message can only be closed by its close button. However
as we want to make a section's clear action synonymous with clicking
the close button of each individual message in the list, we will need
to expose the close action, so add a corresponding method.

https://bugzilla.gnome.org/show_bug.cgi?id=746027
2015-03-12 17:10:11 +01:00
Florian Müllner
e72450f5d8 calendar: Only show close button on messages that can be cleared
Currently closing all messages is subtly different from clearing
a section, which is confusing. Start making the behavior more
predictable by only showing a close button in the message when
the section's clear button would remove it.

https://bugzilla.gnome.org/show_bug.cgi?id=746027
2015-03-12 17:10:11 +01:00
Giovanni Campagna
8b5a44e119 Search: be resilient against buggy search providers
If a search provider returns a meta without a name, don't crash
constructing the actor.

https://bugzilla.gnome.org/show_bug.cgi?id=745861
2015-03-11 13:47:48 -07:00
Giovanni Campagna
b0be6b8678 RemoteSearch: don't complete a search that was cancelled
This closes a race between setTerms and a slow GetInitialResultSet.
The bug manifests as follows:
- initial search for a short string
- previous results === undefined, call GetInitialResultSet
- user types more, cancel previous search in setTerms()
- mainloop, then _gotResults([])
- previous results === [], !!previous results === true
- therefore call GetSubsearchResultSet with an empty list of results
- _gotResults() from GetSubsearchResultSet is empty
- much later, return from GetInitialResultSet is discarded by
  cancellable
- user unhappy because what he searched for is not there

After this fix, the flow is:
- initial search for a short string
- previous results === undefined, call GetInitialResultSet
- user types more, cancel previous search in setTerms()
- mainloop, but no _gotResults
- previous results === undefined, call GetInitialResultSet again with
  longer string
- some time later, return from first GetInitialResultSet is discarded
  by cancellable
- soon after, return from second GetInitialResultSet comes with good
  results
- user happy

https://bugzilla.gnome.org/show_bug.cgi?id=745861
2015-03-11 13:47:48 -07:00
Florian Müllner
bb73547acf calendar: Sync pointer after a message is removed
If a different message ends up underneath the pointer at the end
of the removal animation, it won't receive an enter event until
the pointer is moved, and thus its hover state will not be correct.
Fix it up manually with an explicit pointer sync.

https://bugzilla.gnome.org/show_bug.cgi?id=746019
2015-03-11 21:15:53 +01:00
Florian Müllner
4c7eae7ef2 calendar: Also update expanded body if necessary
As we use two separate body actors for expanded and unexpanded
notifications, updating only one of them on notification updates
is not enough - if the notification has already been expanded,
we need to update the second label as well.
2015-03-11 01:47:49 +01:00