summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* wayland: add support for pointer barrierswip/wayland-workGiovanni Campagna2013-10-036-37/+567
| | | | | | | | Use the clutter pointer constrain callback and a lot of copypasted code from Xorg to implement reactive pointer barriers and pointer barrier events. https://bugzilla.gnome.org/show_bug.cgi?id=706655
* display: shortcut get_time_roundtrip() when running as a wayland compositorGiovanni Campagna2013-10-031-13/+20
| | | | | | | | | | | | | In wayland, we can make some assumptions about the behavior and configuration of the X server (which is Xwayland), including on the time it uses, and that way avoiding a roundtrip (potentially deadly, if by chance the X server is also blocking on us or needs us to flush the wayland socket buffer). Note that we bypass get_current_time() entirely, as it is assumed the function is called always to translated CurrentTime into a real value. https://bugzilla.gnome.org/show_bug.cgi?id=707466
* wayland: use the timestamps from eventsGiovanni Campagna2013-10-032-9/+2
| | | | | | | | Clutter has learned to use monotonic times for the events, and so does X (at least Xwayland, which is an implementation we know and we can rely upon), so the values are directly comparable. https://bugzilla.gnome.org/show_bug.cgi?id=707466
* wayland: sync the keymap from X to waylandGiovanni Campagna2013-10-036-53/+226
| | | | | | | | | | | | | When X clients change the keyboard map, the also update a property on the root window. We can notice that and rebuild our data structures with the new values, as well as inform the wayland clients. This is a terrible hack, and it's not how we want to implement things in 3.12, but it's enough to have the same keyboard layout in the shell, in X clients and in wayland clients in 3.10, until we decide on the fate of the keyboard g-s-d plugin. https://bugzilla.gnome.org/show_bug.cgi?id=707446
* wayland: implement global and window keybindingsGiovanni Campagna2013-10-033-19/+112
| | | | | | | | | | Synthetize XInput events from ClutterEvents in MetaWaylandKeyboard, and pass them to the keybindings infrastructure for early handling, so that we can activate them even if the currently focused window is not an X11 one (or if there is no focused window, or we're modal) https://bugzilla.gnome.org/show_bug.cgi?id=706963
* [NOT FOR REVIEW] Add the ability to attach a debugger at initGiovanni Campagna2013-10-031-0/+3
|
* MetaIdleMonitor: protect the monitor instance while calling destroy notifyGiovanni Campagna2013-09-261-0/+2
| | | | | | | | | | | | | The destroy notify for a DBus watch holds a reference to the IdleMonitor, but the IdleMonitorWatch object doesn't (it knows all watches will be destroyed before the monitor is, so it doesn't need one). This means that the DBus watch reference can be the only one keeping the IdleMonitor alive (expecially true for device idle monitors, which are only used by g-s-d/cursor), and that means that calling the destroy notify freezes the monitor (and the next X calls access garbage). https://bugzilla.gnome.org/show_bug.cgi?id=708420
* constraints: don't apply fullscreen workarounds for CSD windowsGiovanni Campagna2013-09-261-3/+5
| | | | | | | | If you maximize a CSD window on a monitor without struts, it ends up taking the whole monitor size, but it doesn't mean that the application wants to fullscreen. https://bugzilla.gnome.org/show_bug.cgi?id=708718
* MetaCursorTracker: fix compilation in big endian archesGiovanni Campagna2013-09-261-1/+1
| | | | | | | The enum name was wrong. Patch originally by Dan Horák <dan@danny.cz> https://bugzilla.gnome.org/show_bug.cgi?id=708813
* Bump version to 3.10.0.13.10.0.1-waylandGiovanni Campagna2013-09-252-1/+9
| | | | Update NEWS
* MetaWindowActor: fix updates with multiple size changes in one frameGiovanni Campagna2013-09-251-11/+17
| | | | | | | | We must set x11_size_changed even if we are frozen, as every window size change makes the X server drop the pixmap, and we might lose the information at the next thaw() if the window changes size twice in one frame (so we would keep drawing with the old pixmap until something else causes another resize)
* Bump version to 3.10.03.10.0-waylandGiovanni Campagna2013-09-242-2/+6
| | | | Update NEWS
* configure: update dependencies for clutter packagesGiovanni Campagna2013-09-201-2/+2
| | | | | | | | Make sure that clutter is at the right minimum version for the API we use, and that it is built with the right configure flags, by checking for subpackage .pcs too. https://bugzilla.gnome.org/show_bug.cgi?id=708210
* Bump version to 3.9.923.9.92-waylandGiovanni Campagna2013-09-172-1/+34
| | | | Update NEWS
* Cherry-pick translation updates from masterGiovanni Campagna2013-09-1716-3696/+4104
|
* Fix distcheckGiovanni Campagna2013-09-171-2/+0
| | | | Remove a warning that makes us fail with -Werror
* MonitorConfig: fix hole filling in the laptop lid automatic configurationGiovanni Campagna2013-09-161-2/+5
| | | | | | | | | Need two passes, because the order we traverse the array is alphabetical on connector name, not left to right, so we might see a monitor on the right before we get the offset from disabling the primary monitor. https://bugzilla.gnome.org/show_bug.cgi?id=707473
* MonitorConfig: remove holes generated by disabling the laptop lidGiovanni Campagna2013-09-161-6/+19
| | | | | | | | No, holes in the framebuffer are not a good a thing: windows can get lost there, and the user can get very confused. Instead, compact the monitors that where previously after. https://bugzilla.gnome.org/show_bug.cgi?id=707473
* MetaIdleMonitor: fire immediately watches that are already expiredGiovanni Campagna2013-09-161-1/+28
| | | | | | | | | | | | | | | | | | The XSync semantics mandate that alarms already expired will not fire until the counter is reset and the alarm triggered again, so clients traditionally called get_idle_time() first to see if they should install the alarm. This is inherently racy, as by the time the call is handled by mutter and the reply received the idle time could be different. Instead, if we see that the watch would have fired in the past, fire it immediately. This is a behavior change, but it's a compatible one, as all legacy clients are calling get_idle_time() first, and it was perfectly possible for the idle time counter to trigger the alarm right after the get_idle_time() call. https://bugzilla.gnome.org/show_bug.cgi?id=707302
* mutter-launch: fix for more systemd API changesGiovanni Campagna2013-09-161-1/+12
| | | | | | | Modern systemd changed the semantics of sd_session_get_tty() to return the full path, rather than just the tty name. Reviewed by Ray Strode in IRC.
* wayland: remove some wl_signal usageGiovanni Campagna2013-09-167-16/+0
| | | | | | It was a left-over from the initial code import from weston. https://bugzilla.gnome.org/show_bug.cgi?id=707863
* wayland: implement stacked popupsGiovanni Campagna2013-09-161-23/+60
| | | | | | | | Allow multiple popups from the same clients to be stacked under the same pointer grab. This is necessary to implement submenus. https://bugzilla.gnome.org/show_bug.cgi?id=707863
* wayland: heavily refactor pointer grabsGiovanni Campagna2013-09-167-400/+356
| | | | | | | | | | | | Grabs are now slice allocated structures that are handled by whoever starts the grab. They contain a generic grab structure with the interface and a backpointer to the MetaWaylandPointer. The grab interface has been changed to pass full clutter events, which allowed to remove the confusion between grab->focus and pointer->focus. Invidual grabs are now required to keep their focus, and choose whoever gets the events. https://bugzilla.gnome.org/show_bug.cgi?id=707863
* wayland: implement support for popup surfacesGiovanni Campagna2013-09-166-37/+211
| | | | | | | | Popup surfaces are mapped into override_redirect surfaces of a DROPDOWN_MENU type, with the addition of a special pointer grab. https://bugzilla.gnome.org/show_bug.cgi?id=707863
* wayland: implement transient hints for wayland clientsGiovanni Campagna2013-09-165-71/+102
| | | | | | | wl_shell supports a set_transient() map request that is equivalent to setting WM_TRANSIENT_FOR in X11, so implement that. https://bugzilla.gnome.org/show_bug.cgi?id=707401
* MetaWaylandSurface: cache the surface type until the first commitGiovanni Campagna2013-09-162-53/+81
| | | | | | | | | | | Once the sizing is properly wired up, we need to make sure that the size at the initial map is correct, and not always 0, 0 because the buffer is not yet converted into a CoglTexture by MetaShapedTexture, otherwise we end up sending out configure events at 1 x 1. To do so, we cache the surface type in the initial state until the first commit. https://bugzilla.gnome.org/show_bug.cgi?id=707401
* wayland: implement resizing and maximization for wayland clientsGiovanni Campagna2013-09-168-325/+505
| | | | | | | | | | | | To properly resize clients, we need to send them configure events with the size we computed from the constraint system, and then check if the new size they ask is compatible with our expectation. Note that this does not handle interactive resizing yet, it merely makes the API calls work for wayland clients. https://bugzilla.gnome.org/show_bug.cgi?id=707401
* display: include wayland clients in the tab listGiovanni Campagna2013-09-163-0/+38
| | | | | | | | Make sure that meta_display_list_windows() returns wayland windows too, by keeping a separate hash for wayland clients. This fixes a crash in the alt-tab code of gnome-shell. Reviewed by drago01 in IRC.
* MetaShapedTexture: don't intersect a region with an uninitialized clipGiovanni Campagna2013-09-161-9/+13
| | | | | | | | If we skip getting the clip rectangle because we don't have an allocation or a texture, don't intersect with the visible region. This avoids a pixman warning of an invalid rectangle. Reviewed by drago01 in IRC.
* Fixup previous MetaCursorTracker commitGiovanni Campagna2013-09-161-1/+1
| | | | I had it fixed locally, then it was lost in a bad rebase.
* wayland: disable extended barriers supportGiovanni Campagna2013-09-161-1/+1
| | | | | | | We don't have actual pointer barriers implemented, so this is a quick workaround to trigger the fallback paths in the shell, for the hot corner and the message tray. To be reverted after 3.10
* MetaCursorTracker: add support for loading cursors from the themeGiovanni Campagna2013-09-166-116/+115
| | | | | | | | | Not only this way we get the right Adwaita cursor as the default (instead of shipping our own in png format), but we also add support for all MetaCursors as root cursor (which most important should allow us to have I-beams in shell entries) https://bugzilla.gnome.org/show_bug.cgi?id=707573
* wayland: implement HW cursorsGiovanni Campagna2013-09-165-81/+587
| | | | | | | Use the DRM API and libgbm to upload cursor buffers to the appropriate HW plane, saving on GL calls and compositing. https://bugzilla.gnome.org/show_bug.cgi?id=707573
* MonitorManager: add a KMS backendGiovanni Campagna2013-09-167-6/+1006
| | | | | | | | | Using the new Cogl API to actually modeset (because we can't use the DRM API directly without controlling buffer swap), we can finally have a KMS monitor backend, which means full display configuration when running on bare metal. https://bugzilla.gnome.org/show_bug.cgi?id=706308
* mutter-launch: Use the correct binary name for the help message as wellAdel Gadllah2013-09-151-1/+1
|
* mutter-launch: Use correct binary name in error messagesAdel Gadllah2013-09-151-4/+4
|
* MonitorConfig: fix memory leakPavel Vasin2013-09-141-0/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=708070
* shaped-texture: Fix memory leakPavel Vasin2013-09-141-0/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=708070
* window: Fix memory leakPavel Vasin2013-09-141-0/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=708070
* workspace: Add missing chain-up for finalize()Pavel Vasin2013-09-141-0/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=708070
* Drop man pages for removed utilitiesKalev Lember2013-09-124-130/+1
| | | | | | | | Commit 8c1c77482db263a7dcc04051a9694f30a852b702 removed mutter-message, mutter-theme-viewer, and mutter-theme-viewer; this drops their man pages as well. https://bugzilla.gnome.org/show_bug.cgi?id=706579
* Fixup previous commitGiovanni Campagna2013-09-121-1/+1
| | | | Had a wrong cursor name.
* display: add support for more cursor typesGiovanni Campagna2013-09-124-8/+49
| | | | | | | | | These cursors are used by gnome-shell, supporting them allows to reduce GDK usage in the shell. Also, make meta_screen_set_cursor() public. https://bugzilla.gnome.org/show_bug.cgi?id=707919
* mutter-launch: adapt to systemd API changeGiovanni Campagna2013-09-111-2/+4
| | | | | | | | | The API was changed during the patch review. (Yes, we were depending on API which was sitting in a patch not yet reviewed... you know, vertical integration!) https://bugzilla.gnome.org/show_bug.cgi?id=707929
* wayland: die when gnome-session asks us toGiovanni Campagna2013-09-111-0/+7
| | | | | | | | At logout, we want to die when gnome-session tells us. Previously, we were relying on the X server going down (killed by GDM at the end of the session), but we can't use that in wayland. https://bugzilla.gnome.org/show_bug.cgi?id=706421
* wayland: don't require Clutter backend variables to be set from outsideGiovanni Campagna2013-09-111-0/+8
| | | | | | | When running under mutter-launch, we can assume we're running on bare metal, and set the clutter backend appropriately. https://bugzilla.gnome.org/show_bug.cgi?id=706421
* Stop messing with process groupsGiovanni Campagna2013-09-112-6/+4
| | | | | | | We can be launched by gnome-session now, which implies gdb must be attached from outside, and the Ctrl-C problem is gone. https://bugzilla.gnome.org/show_bug.cgi?id=706421
* Set DISPLAY and WAYLAND_DISPLAY for dbus activated services and for ↵Giovanni Campagna2013-09-112-2/+39
| | | | | | | | | autostarted apps Call the appropriate method on gnome-session so that autostarted and bus activated apps see the X server and wayland socket. https://bugzilla.gnome.org/show_bug.cgi?id=706421
* Don't translate debug logs and warningsGiovanni Campagna2013-09-1110-44/+42
| | | | | | | | | Warnings that are going to the journal should be not translated: they're not user visible, and translating them would just make bug reporting harder (as now the developers need to understand what the warning is saying) https://bugzilla.gnome.org/show_bug.cgi?id=707897
* Fix regression in mutter-wayland translationsGiovanni Campagna2013-09-1126-26/+64
| | | | | | | | | Switching meta/util.h to gi18n.h was wrong, mutter is a library and needs gi18n-lib.h, but that cannot be included from a public header (since it depends on config.h or command line options), so split util.h into a public and a private part. https://bugzilla.gnome.org/show_bug.cgi?id=707897