Commit Graph

674 Commits

Author SHA1 Message Date
Jasper St. Pierre
9d904f9a85 Increase typical icon size to 96
Since we want nice alt-tab applications for gnome-shell, we should up the
limit to 96. In the future, we probably want to get rid of the icon-cache,
and allow looking up a correctly sized icon directly from the window.

To prevent app breakage, set the legacy WM_HINTS pixmap size directly to
32x32.

https://bugzilla.gnome.org/show_bug.cgi?id=689651
2012-12-09 20:44:13 -05:00
Jasper St. Pierre
8830814d70 screen: Add a convenience method to focus the default window
This will be used for gnome-shell so that it can focus a window after
a keyboard grab or other things.

https://bugzilla.gnome.org/show_bug.cgi?id=689652
2012-12-07 13:01:49 -05:00
Florian Müllner
2282326f30 Add 'switch-applications' keybinding
Add an additional "switcher" keybinding for switching between
applications rather than windows (like the existing 'switch-windows'
and 'switch-group' bindings).
The purpose of the new keybinding is to be taken over by gnome-shell's
application-based alt-tab popup, so rather than actually implementing
an application switcher in mutter, let it duplicate the normal window
switcher when run standalone.

https://bugzilla.gnome.org/show_bug.cgi?id=688913
2012-12-05 18:45:22 +01:00
Florian Müllner
8703daccbe display: Make workspace parameter to get_tab_list() optional
Currently meta_display_get_tab_list() will only return windows on
a single workspace. Make the workspace parameter optional to allow
requesting windows from all workspaces.

https://bugzilla.gnome.org/show_bug.cgi?id=688913
2012-12-05 18:45:22 +01:00
Florian Müllner
3797ecaa65 display: Clean up meta_display_get_tab_list()
https://bugzilla.gnome.org/show_bug.cgi?id=688913
2012-12-05 18:45:22 +01:00
Jasper St. Pierre
c6fcc79e6a display: Kill a warning at shutdown
A small semicolon was causing us to always remove the focus
timeout ID.
2012-12-04 16:46:40 -05:00
Alban Crequy
e5b46747d6 Initialize window->user_rect in the initial placement
The window positioning is delayed in idle_move_resize() in case the application
resizes/maximizes its window quickly after its creation. The delayed
positioning uses window->user_rect because of bug 426519 comment 3 (see
meta_window_move_resize_now()).

user_rect was not set in the initial positioning, causing the delayed
positioning unable to know which monitor we use for this window. As a
consequence, the window could jump spontaneously from one monitor to another.

With this patch, the window does not jump anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=556696
2012-11-30 13:29:26 +00:00
Florian Müllner
6004197064 keybindings: Add is_builtin() method
https://bugzilla.gnome.org/show_bug.cgi?id=688202
2012-11-17 01:47:06 +01:00
Florian Müllner
aa43e715c0 keybindings: Add MetaKeyBinding for overlay-key
As the overlay key works differently from normal keybindings, it
requires special treatment. However, by adding a rudimentary
MetaKeyBinding for it, we will be able to confine the special
handling to mutter and treat it like any other keybinding in
the shell.

https://bugzilla.gnome.org/show_bug.cgi?id=688202
2012-11-17 01:47:06 +01:00
Florian Müllner
424fc5245a Add compositor hook to process keybindings selectively
Currently keybindings are blocked while the compositor holds a grab; if
we want a keybinding to be available anyway, we use captured ClutterEvents
to determine the KeyBindingAction the event would have triggered and
run our own handlers (ugh).
Instead, provide a hook to allow the compositor to filter out keybindings
before processing them normally, regardless of whether the compositor
holds a grab or not.

https://bugzilla.gnome.org/show_bug.cgi?id=688202
2012-11-17 01:47:05 +01:00
Rico Tzschichholz
90952ac5c8 Fix naming of "user_data" arguments for better introspection 2012-11-16 21:23:47 +01:00
Florian Müllner
bdf47aeac4 keybindings: Import keybinding files from Metacity
Fallback mode is going away, so we should stop depending on Metacity
for keybinding files for common bindings.

https://bugzilla.gnome.org/show_bug.cgi?id=687672
2012-11-12 19:27:35 +01:00
Rui Matos
4cf461fffa display: Only process keyboard mapping events for the core X keyboard
The X server sends a XkbNewKeyboardNotify event for each keyboard
device when a new keyboard description is loaded. These days a typical
computer has several keyboard devices, e.g. xinput on this laptop
lists 8. Since the work we do on these events is relatively expensive
and we are only really interested in changes to the virtual core
keyboard we can skip other devices' events to cut on needless work.

https://bugzilla.gnome.org/show_bug.cgi?id=674859
2012-11-05 19:40:14 +01:00
Jasper St. Pierre
188d532438 display: Ignore DamageNotify in spew 2012-11-03 19:37:51 -04:00
Jasper St. Pierre
62dbaa89ca mutter: Don't call g_type_init
It has been deprecated upstream.
2012-11-02 11:45:11 -04:00
Florian Müllner
2cc0d31b17 window: Avoid spurious focus-window changes when showing desktop
When using the show-desktop shortcut with no desktop window, unshowing
will focus the second-most-recently-used window. If we find a desktop
window, it will be focused explicitly and everything works as expected;
however without a desktop window, we end up hiding the focus window,
which will use focus_default_window() with the not_this_one parameter
to move focus away. We used to get away with this, as the not_this_one
parameter was ignored until commit e257580b94, now with bug 675982
fixed, we need to explicitly handle the show-desktop case.

https://bugzilla.gnome.org/show_bug.cgi?id=686928
2012-10-26 15:52:32 +02:00
Florian Müllner
2717a02a8d screen: Ignore num-workspaces when using dynamic workspaces
On startup, workspaces are initialized according to the num-workspaces
preference. However when using dynamic workspaces, the actual number
of workspaces in use might be greater than the preference (when
replacing the window manager), forcing windows on those workspaces
to the first workspace.
To fix, ignore the preference completely when using dynamic workspaces
and try to restore the previous number of workspaces (as read from
_NET_NUMBER_OF_DESKTOPS).

https://bugzilla.gnome.org/show_bug.cgi?id=685439
2012-10-17 22:43:26 +02:00
Florian Müllner
07d8b9ce19 Revert "delete: Unbreak string freeze"
This reverts commit 09713c5fd4.

https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-10-16 14:47:37 +02:00
Jürg Billeter
1a521e10c3 display: Only manage the default X screen
https://bugzilla.gnome.org/show_bug.cgi?id=648156
2012-10-15 19:18:45 +02:00
Benjamin Berg
472662d099 Resize the guard window when the X screen is resized.
Fixes bug #670396. Without this fix the guard window may not
extend over the whole area of the screen after a XRandR
reconfiguration. The effect being that mouse events are
delivered to invisible windows.
2012-10-14 12:16:06 +02:00
Florian Müllner
59bc5b7975 display: (Optionally) delay focus changes in focus-follows-mouse mode
Moving focus immediately on crossing events as we currently do
in focus-follows-mouse mode may trigger a lot of unwanted focus
changes when moving over unrelated windows on the way to a target.
Those accidental focus changes prevent features like GNOME Shell's
application menu from working properly and are visually expensive
since we now use a very distinct style for unfocused windows.
Instead, delay the actual focus change until the pointer has stopped
moving.

https://bugzilla.gnome.org/show_bug.cgi?id=678169
2012-10-11 07:49:21 +02:00
Jasper St. Pierre
7a2c019514 window: Don't move the desktop window after monitor hotplug
If someone plugs in a new monitor, while all their regular windows
should move in absolute X coordinates to ensure they stay on the
same monitor, the desktop window should stay put.

https://bugzilla.gnome.org/show_bug.cgi?id=681159
2012-10-07 13:23:04 -03:00
Owen W. Taylor
c02e1b6f56 Remove unused public window-property functions
Simplify the set of window-property functions to remove the
unused functions:

 meta_window_reload_properties_from_xwindow()
 meta_window_reload_properties()

And to make:

 meta_window_reload_property()

static. The code is considerably simplified by removing the
plural variants.

https://bugzilla.gnome.org/show_bug.cgi?id=587255
2012-10-03 23:35:35 -04:00
Florian Müllner
5eb72743dd util: Guard against older zenity versions
Plenty of ugly here, but it works; revert when the zenity version
we depend on stops being bleeding-edge (or we can assume a zenity
version that does not error out on unknown options).

https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 15:09:43 +02:00
Florian Müllner
ae1be578ba util: Use a sad face in the force-quit dialog
https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 15:09:42 +02:00
Florian Müllner
7e1e9320bc utils: Request a modal dialog when transient_for is set
https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 15:09:42 +02:00
Florian Müllner
09713c5fd4 delete: Unbreak string freeze
Quotes should definitively part of the translation, but we are in
string freeze now - revert this when we get a string freeze approval
or after the freeze ends.

https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 11:21:39 +02:00
William Jon McCann
909cd82bea Minor improvements to the not responding dialog
https://bugzilla.gnome.org/show_bug.cgi?id=684306
2012-09-19 11:15:06 +02:00
Florian Müllner
0593df8fe0 display: Add API to set wm_name / wm_keybindings
As plugins can now define their own keyboard shortcuts via
meta_display_add_keybinding(), it makes sense for them to
expose those shortcuts to System Settings, so add some API
to set the properties gnome-control-center uses to pick up
wm keybinding settings.

https://bugzilla.gnome.org/show_bug.cgi?id=671010
2012-09-18 12:53:28 +02:00
Tomeu Vizoso
079822c3f4 screen: Allow NULL out arguments in meta_screen_get_size 2012-09-05 16:40:01 +02:00
Jasper St. Pierre
bfacd9d420 keybindings: Correct annotations for meta_keybindings_set_custom_handler
We need @handler to be marked as (allow-none). At the same time,
give the function a more useful docstring.
2012-09-04 17:07:58 -03:00
Florian Müllner
6a32fa9452 keybindings: Fix unsetting of overlay-key
Commit 802c1ac427 fixed updating the overlay key on settings
changes, but missed the case where the setting was set to an
empty value to disable the overlay key altogether.

https://bugzilla.gnome.org/show_bug.cgi?id=682993
2012-08-29 23:20:49 +02:00
Florian Müllner
b422b6f06e keybindings: Silence a compiler warning
https://bugzilla.gnome.org/show_bug.cgi?id=682993
2012-08-29 23:20:49 +02:00
Alexander Larsson
c3a6de749b Don't include markup in app not responding dialog
We escaped the <tt> markup, making it visible in the ui.
2012-08-28 16:42:30 +02:00
Florian Müllner
6c3985220e keybindings: Add MetaKeybindingAction for overview-key
Currently gnome-shell hardcodes <super> as overlay key when it has
a keyboard grab. In order to fix this, add a corresponding keybinding
action.

https://bugzilla.gnome.org/show_bug.cgi?id=665547
2012-08-16 09:40:47 +02:00
Florian Müllner
802c1ac427 prefs: Update overlay-key on settings changes
When changing the overlay-key setting, the change only takes effect
on restart - there are actually two bugs involved:
  (1) the test whether the key has changed is located in the
      else part of a test for string settings (and overlay-key happens
      to be a string settings ...)
  (2) with (1) fixed, a change signal is emitted, which triggers a
      reload of all keybindings - unfortunately, the actual value
      of overlay-key is only read on startup, so the key is reloaded
      using the old value
Fix both issues by replacing the custom handling of the overlay-key
with the regular handling of string preferences.

https://bugzilla.gnome.org/show_bug.cgi?id=681906
2012-08-16 09:40:47 +02:00
Florian Müllner
10d53fc7d2 window: Do not restore tiling on unmaximize
When we consider tiling a special case of maximization, it makes
more sense to always unmaximize to the normal state rather than
restoring a previous tile state.

https://bugzilla.gnome.org/show_bug.cgi?id=677565
2012-07-16 22:18:47 +02:00
Florian Müllner
eb1292ea99 window: Handle changes of the attach-modal-dialogs preference
Currently we decide whether a modal dialog should be attached or not
when mapping it, i.e. we don't pick up preference changes that happen
while the dialog is up. It's not really a big deal given that modal
dialogs are usually transitory, but it's easy enough to add a bit of
extra polish ...

https://bugzilla.gnome.org/show_bug.cgi?id=679904
2012-07-16 22:15:13 +02:00
Jasper St. Pierre
e257580b94 workspace: Respect the not_this_one parameter passed in
In the case of focus-follows-mouse, we need to ensure that we
do not select a certain window after closing another one.

https://bugzilla.gnome.org/show_bug.cgi?id=675982
2012-07-16 15:21:54 -04:00
Matthias Clasen
760a36aeee Reduce amount of markup in translated messages
Markup in messages is fragile and tends to break in translations.
This patch reduces the amount of markup as far as possible.

https://bugzilla.gnome.org/show_bug.cgi?id=679660
2012-07-14 20:48:29 -04:00
Debarshi Ray
5d57a2594d constraints: Remove unused variable 2012-07-14 15:03:54 +02:00
Florian Müllner
0fe0534c85 constraints: Center modal dialogs on their parent
... rather than attaching them to the parent's title bar.

https://bugzilla.gnome.org/show_bug.cgi?id=674499
2012-07-14 03:30:56 +02:00
Jasper St. Pierre
e6ed29f0e2 keybindings: Use G_DEFINE_BOXED_TYPE
https://bugzilla.gnome.org/show_bug.cgi?id=673824
2012-07-13 00:00:42 -04:00
Pavel Vasin
255347f876 constraints: fix mem leak in meta_window_constrain()
MetaFrameBorders leaked when orig_borders != NULL and
window->fullscreen == TRUE

https://bugzilla.gnome.org/show_bug.cgi?id=679153
2012-07-08 11:56:31 -04:00
Jasper Lievisse Adriaanse
e4ae7d7b1b *BSD build fix: Include sys/wait.h as described in POSIX specs 2012-07-08 17:47:24 +02:00
Florian Müllner
0a50488bef window: Also use hide-titlebar-when-maximized when tiled
Side-by-side tiling is conceptually very close to maximization
("half-maximized"), so it makes sense to also hide the titlebar
in this state if requested by the application.

https://bugzilla.gnome.org/show_bug.cgi?id=679290
2012-07-03 12:21:54 +02:00
Rico Tzschichholz
78c966321a prefs: add get_/set_ignore_request_hide_titlebar ()
Enables the possibility to ignore GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED
to prevent hiding the titlebar of applications even if they
requested so.

https://bugzilla.gnome.org/show_bug.cgi?id=678947
2012-07-01 19:25:08 +02:00
Giovanni Campagna
f65b7c59d3 Make it possible to reimplement move-to-workspace keybindings from plugins
Export the necessary functions so that a plugin that wishes to do
so can reimplement those keybindings without loss of functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=674104
2012-06-25 23:11:24 +02:00
Giovanni Campagna
e31f55e146 Make meta_workspace_get_neighbor() public
There is no need for this function to be private, and it can
greatly simplify gnome-shell code handling workspace switch.

https://bugzilla.gnome.org/show_bug.cgi?id=674104
2012-06-25 23:07:19 +02:00
Jasper St. Pierre
1478510392 mutter: Use the default plugin by default
https://bugzilla.gnome.org/show_bug.cgi?id=678238
2012-06-25 13:52:47 -04:00