Commit Graph

79 Commits

Author SHA1 Message Date
Piotr Drąg 5ad82d05f9 Use Unicode in translatable strings
See https://developer.gnome.org/hig/stable/typography.html

https://bugzilla.gnome.org/show_bug.cgi?id=772211
2017-02-16 02:20:03 +01:00
Felipe Borges 0f9ac6088f window-list: Hide workspace indicator when there's 1 workspace
There's no need to show the workspace indicator at the right
corner of the window-list if there's just a single workspace
AND the workspace creation is static. This saves us a bit more
of space.

https://bugzilla.gnome.org/show_bug.cgi?id=777504
2017-01-20 16:31:16 +01:00
Jakub Steiner 5e545d2991 theme: window-list minimized button
- when a window is minimized, it's unfocused, thus the button
in the window list should remain raised

https://bugzilla.gnome.org/show_bug.cgi?id=775282
2017-01-20 14:45:30 +01:00
Florian Müllner f99b42e732 window-list: Update icon on app changes
We currently assume that the application associated with a particular
window is fixed. While this holds true for almost every application,
there are some cases of multi-app-packages like LibreOffice where
windows may change the properties used for application matching at
runtime. Catch those cases to make sure we display the correct icon
when the window shifts applications.

https://bugzilla.gnome.org/show_bug.cgi?id=771731
2016-09-20 18:06:08 +02:00
Florian Müllner db3e910b76 build: Say good-bye to intltool
intltool is unmaintained nowadays while upstream gettext gained
support for everything we used it for, so make the switch.

https://bugzilla.gnome.org/show_bug.cgi?id=769077
2016-08-19 22:17:07 +02:00
Jakub Steiner 59aa0f66f3 panel style changes
- based on a patch by rudolf@palaticky.com
- having three css locations with hardcoded colors,
  what could possibly go wrong in the future. :(

https://bugzilla.gnome.org/show_bug.cgi?id=756807
2016-05-10 15:51:49 +02:00
Jakub Steiner 2935848954 window-list button colors
- not sure I win the override game

https://bugzilla.gnome.org/show_bug.cgi?id=756807
2015-10-26 15:34:52 +01:00
Florian Müllner c23580bd56 window-list: Set appropriate label-actors on buttons
Independent from the grouping mode, the window-list currently shows
up as a series of "push buttons" in screen readers, which is obviously
not useful, so point to the correct labels.

https://bugzilla.gnome.org/show_bug.cgi?id=755223
2015-09-21 22:39:38 +02:00
Florian Müllner 4cde6facc9 window-list: Use font-relative size in classic style
Commit 85b7049376 fixed this for the regular session, but forgot to also
update the classic style.
2015-09-04 19:56:23 +02:00
Florian Müllner 6062284ac4 window-list: Don't consider skip-taskbar windows for app sorting
It is odd to consider windows that are not shown in the window list
for app sorting, in particular when switching between grouped and
ungrouped mode, and when a long-lived window like the DESKTOP is
present.

https://bugzilla.gnome.org/show_bug.cgi?id=753055
2015-07-30 18:24:19 +02:00
Florian Müllner 85b7049376 window-list: Use font-relative sizes for width/height
Just like the top bar, the window list should scale according to
the font scaling factor, so convert the existing pixel sizes into
font-relative ones.

https://bugzilla.gnome.org/show_bug.cgi?id=703585
2015-06-19 23:49:01 +02:00
Florian Müllner 61ec98f504 window-list: Reposition on height changes
The window list position depends on both the monitor geometry and the
list height, however changes to the latter are currently ignored. For
the time being this doesn't matter due to the list's fixed height, but
we are about to scale the list with the text, so reposition the list
on height changes.

https://bugzilla.gnome.org/show_bug.cgi?id=703585
2015-06-19 23:49:01 +02:00
Florian Müllner b97c111bde window-list: Expand window buttons vertically
The window-list's fixed height currently allows us to get away without
expanding buttons, however this won't be the case anymore once we start
adapting the list with the text scaling. So fix up the code to do what
was always the intention anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=703585
2015-06-19 23:49:01 +02:00
Rui Matos 903a3b25cb window-list: Fix WorkspaceIndicator's popup menu position
By default, PanelMenu.Button creates a popup menu with arrow side TOP
which is wrong in our case and can mess up BoxPointer's positioning.

We can work around that easily by creating the menu ourselves with the
correct arrow side.

https://bugzilla.gnome.org/show_bug.cgi?id=746365
2015-03-24 12:58:07 +01:00
Florian Müllner 8bad8a3b63 window-list: Don't use 'panel-menu' class in bottom panel
Menus in the top bar have some margin at the bottom, to prevent
menus to extend all the way to the bottom edge as the expand; we
obviously don't want the same behavior in the window-list at the
bottom, so stop pretending to be a top bar menu.

https://bugzilla.gnome.org/show_bug.cgi?id=745952
2015-03-10 14:27:16 +01:00
Florian Müllner 7afdb541ce window-list: Adjust to trayBox removal
The point of that code is to keep the window-list underneath
modals' lightboxes if possible (i.e. unless the OSK is shown).
The trayBox was a natural pick back in the day, but the panel
will do just as well ...

https://bugzilla.gnome.org/show_bug.cgi?id=745304
2015-02-27 20:17:31 +01:00
Rui Matos c0170ff945 window-list: Check if the window title is set
MetaWindow.title might be NULL, particularly for Wayland clients where
setting the title is a request separate from window creation. We
shouldn't try to set StLabel's text prop in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=745064
2015-02-24 21:09:02 +01:00
Florian Müllner 93a1fd0b60 window-list: Fix for "app-less" windows
While rare, it is possible to have a window not associated with any app
(not even a fake window-based one). We currently throw an error when
trying to set the icon for such a window, so handle this case and
use a fallback icon instead of the app icon.

https://bugzilla.gnome.org/show_bug.cgi?id=743401
2015-02-20 18:28:32 +01:00
Florian Müllner 04ec4de375 window-list: Remove message tray handling
Notification banners are now displayed at the top, and the summary
moved into the date and time drop down - the bottom is ours now,
no more special sauce needed to interact with it gracefully.
2015-02-20 17:57:02 +01:00
Florian Müllner adc68889b7 window-list: Keep panel below modal dialogs when possible
Currently the window-list will be stacked above system modal dialogs,
which means it is not dimmed like the rest of the desktop and remains
accessible to interaction. We cannot do any better when showing the
on-screen keyboard, as we need to keep ourselves above to not end up
covered by the OSK, and the keyboard itself is stacked above modal
dialogs to allow its use for input. However we can at least fix the
case when not using the OSK.

https://bugzilla.gnome.org/show_bug.cgi?id=740722
2015-01-15 13:56:57 +01:00
Florian Müllner 8b59c031d5 window-list: Do not hardcode overrides schema
Classic mode uses a different overrides schema, so make sure we use the
correct setting instead of hardcoding the usual org.gnome.shell.overrides
schema.

https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-12-19 15:15:44 +01:00
Sylvain Pasche a3f352d0c3 window-list: Option to show the window list on all monitors
A new setting "show-on-all-monitors" (false by default) is available to
show window lists on all connected monitors.
The Extension object monitors conditions that require the list of
windows to be rebuilt. The WindowList and Button classes have a new
"perMonitor" property that indicates they should handle windows on
their own monitor only.

https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-12-19 15:15:44 +01:00
Sylvain Pasche e80b790b78 window-list: Refactor {Window,App}Button shared code into BaseButton
BaseButton is a new class that shares the common logic of WindowButton
and AppButton. AppButton is passed to AppContextMenu so that it can reuse
code from the now public getWindowList() method.

https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-12-19 15:15:44 +01:00
Sylvain Pasche 5c2d13ec51 window-list: Move messageTray patching to the WindowList class
Move messageTray patching form the Extension object to the WindowList
class. Moreover, only do the patching if the window list is on the bottom
monitor. This refactoring will make it easier to have several instances
of WindowList (one on each monitor).

https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-11-26 20:00:50 +01:00
Sylvain Pasche 5fc66444b6 window-list: Refactoring to use an Extension object
Move the global state into a new Extension object. This is in
preparation for adding more logic to the Extension object.

https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-11-26 20:00:50 +01:00
Sylvain Pasche 57bfb9400e window-list: _pointerInTray was renamed to _pointerInNotification in bug 695800
https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-11-26 20:00:50 +01:00
Sylvain Pasche 4a1f49586d window-list: Disconnect drag and drop handlers
https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-11-26 20:00:49 +01:00
Florian Müllner e372c5ace8 window-list: Avoid flashing when using auto-grouping
Currently when using auto-grouping, the list is ungrouped each
time a window is closed, and then possibly re-grouped on the next
allocation - as a result, there is a brief "ungroup flash" if the
list is supposed to remain grouped.
Avoid this by computing the width the ungrouped list would have
rather than by actually ungrouping it.

https://bugzilla.gnome.org/show_bug.cgi?id=738286
2014-10-11 00:06:59 +02:00
Florian Müllner 614d1c9697 window-list: Fix spacing in app buttons 2014-10-07 20:01:56 +02:00
Florian Müllner 70056ba56e window-list: Don't unnecessarily add/remove window buttons
Since commit 191c7ccc24, we check whether we already have a window
in the list before re-adding it on MetaWorkspace::window-added.
We can do something similar on MetaWorkspace::window-removed to
avoid some extra work when a window is moved between workspaces
rather than destroyed.
2014-10-07 18:57:45 +02:00
Florian Müllner 4af36f41fa window-list: Don't use Meta.get_window_actors() directly
The list returned may contain windows that are being destroyed.
The ShellGlobal method filters those out, so use that instead; we
should eventually stop looking at window actors when we want windows,
but for now this is the easy and safe thing to do.
2014-10-07 17:19:00 +02:00
Florian Müllner 60ea0fb172 Stop using deprecated GSettings:schema property 2014-10-07 14:38:12 +02:00
Florian Müllner 191c7ccc24 window-list: Do not add sticky windows more than once
When a window's on-all-workspaces property changes to true, the
workspaces the window was not located on will emit the ::window-added
signal for the window; however we don't want multiple buttons for
the same window, so filter out the extra calls.

https://bugzilla.gnome.org/show_bug.cgi?id=736398
2014-09-11 12:13:10 +02:00
Florian Müllner 5616a6deae window-list: Expand workspace button for Fitts'ability
The workspace button used to extend to the bottom edge, which of
course is A Good Thing (tm) - commit ec8f269107 broke this when
it added an additional container to the hierarchy, expand the
button again to bring back the old mouse-friendly behavior.

https://bugzilla.gnome.org/show_bug.cgi?id=708247
2014-09-03 14:50:35 +02:00
Florian Müllner db04866ca2 window-list: Use Infinity instead of special-casing 0
This should fix the problem addressed in the last commit without
breaking 0 as stable sequence.
2014-05-27 19:27:43 +02:00
Florian Müllner f93234e442 window-list: Fix stupid thinko
Without special casing the start value of 0, we did not reduce
to the minimum stable sequence of app windows, but 0.
2014-05-27 19:06:22 +02:00
Florian Müllner d8eb2273c0 window-list: Sort buttons by stable sequence
Currently the initial set of buttons is in stack/MRU order. To
avoid shuffling around the list each time it is disabled/re-enabled
(lock screen) or the group-mode settings changes, sort it by the
stable sequence.

https://bugzilla.gnome.org/show_bug.cgi?id=719933
2014-04-29 19:08:26 +02:00
Florian Müllner f007807ea1 window-list: Don't shift message tray when on different monitors
The message tray is moved to the bottom-most monitor when there are
monitors below the primary monitor; in that case, we need to leave
the tray alone.

https://bugzilla.gnome.org/show_bug.cgi?id=728288
2014-04-17 18:34:25 +02:00
Giovanni Campagna a42dcee6ec WindowList: allow switching windows with mouse scroll
This is something that gnome-panel supported, and apparently
some users would like to have it back, so restore this feature
on our window list too.

https://bugzilla.gnome.org/show_bug.cgi?id=723693
2014-02-19 17:21:45 +01:00
Florian Müllner 3cde65e85e window-list: Call destroy() on menus instead of their actors
PopupBaseMenu provides a destroy() method that will destroy the menu
actor and make sure that the menu will be removed from the corresponding
PopupMenuManager (if any). We miss the latter when we destroy the menu
actor directly, so use the menu method instead.

https://bugzilla.gnome.org/show_bug.cgi?id=724688
2014-02-18 21:12:16 +01:00
Florian Müllner b87ddf1195 window-list: Only have a single context menu at any time
Depending on the number of windows, AppButtons use different right-click
menus ("Minimize" vs. "Minimize all").
As the menu for the multiple-windows case remains the same, it is created
and added just once. However this means that in the single-window case,
the corresponding PopupMenuManager will track two menus for the same
source actor, resulting in various misbehaviors.
Fix these issues by adding and removing the app context menu appropriately,
so that the PopupMenuManager tracks a single menu at any time.

https://bugzilla.gnome.org/show_bug.cgi?id=724688
2014-02-18 21:12:16 +01:00
Florian Müllner c2fe2b5505 window-list: Sync hover after closing menus
StButton takes the hover state into account to decide whether a
series of events should be considered a click. So when dismissing
a menu by clicking on a different window/app button, its menu
cannot be triggered before leaving and re-entering the button
(and thus syncing the hover state).
Fix this by always syncing the hover state after a grab is dropped.

https://bugzilla.gnome.org/show_bug.cgi?id=724688
2014-02-18 21:12:16 +01:00
Florian Müllner c9a4d15f05 window-list: Filter skip-taskbar windows
Applications now track all their windows, not just the ones that are
expected to show up in the window list. So to restore the previous
behavior, we now have to filter out windows with the skip-taskbar
hint ourselves.

https://bugzilla.gnome.org/show_bug.cgi?id=724134
2014-02-11 17:58:14 +01:00
Florian Müllner 9c6c00f8a3 window-list: Restrict right-click actions to windows in list
While the list of windows in the left-click menu is filtered by
workspace, the minimize/maximize/close actions in the right-click
menu apply to all application windows on all workspaces.
This is fairly confusing, so restrict the actions to only apply
to windows that do appear in the left-click list.

https://bugzilla.gnome.org/show_bug.cgi?id=724134
2014-02-11 17:58:14 +01:00
Florian Müllner 9c23b52c1e window-list: Update keyboard position on fullscreen changes
The visibility of the window list changes when a monitor enters or
exits fullscreen, so we should update the OSK position accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=723693
2014-02-06 19:51:19 +01:00
Giovanni Campagna ff64bb5432 Revert "window-list: fix overview animation"
This reverts commit bf789608df.
Pushed by mistake.
2014-02-05 17:28:16 +01:00
Giovanni Campagna bf789608df window-list: fix overview animation
Animate showing and hiding the window list when toggling the
overview (with a translation on and off the screen). Don't actually
change the visible status of the actor, because we don't want
to change struts.
2014-02-05 17:27:36 +01:00
Giovanni Campagna 2bf50a76ed window-list: fix font-style of notifications
Notifications are reparented to the bottom panel when there is
one, so they would inherit the bold font. Avoid that.
2014-02-05 01:08:45 +01:00
Giovanni Campagna 66216993e0 window-list: import gettext for the right domain
Default _ is gettext from gnome-shell domain, which doesn't have
the strings we need.
We could use mutter's, but translators already did their job
on pretty much all supported languages, so...
2014-02-05 00:50:27 +01:00
Giovanni Campagna 68adf77012 window-list: update for gnome-shell changes
Shell.WindowTracker.is_window_interesting() was removed, and
replaced with the skip_taskbar MetaWindow property.
2014-02-05 00:42:25 +01:00