summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-05-19backend/x11: add support for setting randr 1.5 monitorstile-monitor-5Dave Airlie3-1/+120
This interface allows us to propogate back the constructed monitors to randr using the randr 1.5 protocol. Apps should pick it up from there.
2015-05-19monitors: construct tiled monitors infoDave Airlie2-3/+127
The monitors info structure is created from the tiled outputs and this is used as the central storage for info about a monitor as opposed to the output state. It appears at least the EDID mm w/h is for the whole monitor and not per tile.
2015-05-19monitors: add tiled support to the linear configDave Airlie1-14/+99
This makes sure when we generate a linear config, that tiles get placed in the correct position relative to each other.
2015-05-19monitors: change find_primary to return an indexDave Airlie1-13/+13
This will make it easier to add tiling support.
2015-05-19monitors: adds expose tile info as a property over dbus interfaceDave Airlie1-0/+14
This just adds 8 uint32s as a property to the dbus protocol. This will be used by gnome-desktop to get the tile info.
2015-05-19backend: add output tile info retrieval.Dave Airlie3-0/+98
this just adds backend support for retrieving the tile information from X11 (randr 1.5) and native backends. It stores the tiling information into the output struct.
2015-05-19backends/x11: add a flag to denote randr 1.5 is in use.Dave Airlie2-0/+14
If the server reports randr 1.5, just cache the information for later patches to use.
2015-05-19wayland: use monitors info for outputs instead of kms outputsDave Airlie1-45/+41
Wayland shouldn't use KMS outputs, it should use the monitor infos to show its outputs, this will make tiled monitors work with wayland.
2015-05-18xwayland: Ensure we've got an owner when setting the X selection ownerCarlos Garnacho1-3/+3
Otherwise we may end up claiming the X selection when there's no wayland selection owner.
2015-05-18xwayland: remove unused struct fieldCarlos Garnacho1-1/+0
2015-05-15wayland: Add X11/wayland selection interoperationCarlos Garnacho6-0/+968
This piece of code hooks in both wl_data_device and the relevant X selection events, an X11 Window is set up so it can act as the clipboard owner when any wayland client owns the selection, reacting to SelectionRequest events, and returning the data from the wayland client FD to any X11 requestor through X properties. In the opposite direction, SelectionNotify messages are received, which results in the property contents being converted then written into the wayland requestor's FD. This code also takes care of the handling incremental transfers through the INCR property type, reading/writing data chunk by chunk. https://bugzilla.gnome.org/show_bug.cgi?id=738312
2015-05-15wayland: refactor MetaWaylandDataSourceCarlos Garnacho2-41/+205
Expose it partly (in internal headers anyway), and pass a vtable for the data source functions, the wayland vfuncs just delegate operations on the wl_data_source resource. The resource has been also made optional, although it'll be present on all data sources from wayland clients. The ownership/lifetime of the DnD data source has also changed a bit, belonging now to the MetaWaylandDataDevice like the selection one does, as we can't guarantee how long it will be needed after the grab is finished, it will be left inert and replaced the next time DnD is started at worst. This allows the creation of custom/proxy data sources, which will turn out useful for X11 selection interoperation. https://bugzilla.gnome.org/show_bug.cgi?id=738312
2015-05-12xrandr: Fix copy/paste typo in connector type heuristicsJasper St. Pierre1-1/+1
2015-05-08input-settings-x11: Honor default value for click method settingRui Matos1-2/+10
Now that xf86-input-libinput exposes default values we can honor the gsettings value. https://bugzilla.gnome.org/show_bug.cgi?id=746290
2015-05-08input-settings-x11: Factor out a get_property() helperRui Matos1-10/+39
We'll need to get the value of some properties. Fail if the number of items returned is less than we expect and warn if it exceeds it so that we can easily find out if items are added to a property later and fix it.
2015-05-01wayland: Fix c&p typo in wl_listener notify callbackCarlos Garnacho1-1/+1
The corresponding wl_notify field for destroy_data_device_icon() is drag_grab->drag_icon_listener, otherwise we're fetching a pointer that's slightly off where we want.
2015-04-30Bump version to 3.17.1Florian Müllner2-1/+14
Update NEWS.
2015-04-30core/events: Invalidate monitor cache when we're a wayland compositorRui Matos1-0/+1
When running as an X11 compositor we do this for every event we see on the X event stream. As a wayland compositor we don't go through that code path but since we see all events we can easily do this on motion events. In fact, we don't even need this caching when we're a wayland compositor since we can always find where the pointer is without a round trip but we're sharing the current monitor logic with the X path so let's keep it as is for now. https://bugzilla.gnome.org/show_bug.cgi?id=748478
2015-04-28monitor-manager-kms: Avoid a couple of potential crashesRui Matos1-1/+4
The drm API can return NULL and we could end up using uninitialized memory if the driver private struct isn't cleared.
2015-04-28monitor-manager-kms: Read crtc props after determining the crtc IDRui Matos1-4/+4
Otherwise we can't read the properties.
2015-04-27core: Remove unused functionJasper St. Pierre2-16/+0
2015-04-27window-wayland.[ch] => meta-window-wayland.[ch]Jasper St. Pierre5-5/+5
This finishes off the meta- prefix for wayland/.
2015-04-27monitor-manager-kms: Add support for underscanJasper St. Pierre3-15/+122
2015-04-27monitor-manager-xrandr: Set the underscan border properties, tooJasper St. Pierre1-2/+24
2015-04-27MonitorManager: Add support for overscan compensationTomeu Vizoso4-4/+78
Some DRM drivers have added a consistent set of properties that allow compensating for the overscan that some TVs do, without the user being able to disable.
2015-04-27Move atomnames.h to x11/Jasper St. Pierre5-13/+8
This should *not* be part of the public API.
2015-04-27monitor-config: Allow loading from a system fileJasper St. Pierre1-9/+28
2015-04-27events: Ignore some event types when reseting idle timeRui Matos1-0/+9
These events don't result from actual hardware events so we shouldn't use them to reset idle time. https://bugzilla.gnome.org/show_bug.cgi?id=748541
2015-04-25Properly implement wl_shell_surface's poor surface commit semanticsJasper St. Pierre1-24/+39
2015-04-23xwayland: plug some leaks in stop functionRay Strode1-1/+6
This commit makes sure the lockfile and display name are freed in meta_xwayland_stop. https://bugzilla.gnome.org/show_bug.cgi?id=748380
2015-04-23xwayland: rename lockfile to lock_fileRay Strode2-12/+12
The missing underscore is inconsistent with the coding style of the surrounding code. https://bugzilla.gnome.org/show_bug.cgi?id=748380
2015-04-23xwayland: don't unlink lock file twice in stop functionRay Strode1-2/+0
The stop function currently manually constructs the lock filename from the display number and also calls unlink on the same, already known lock filename from the manager struct. This commit gets rid fo the manual construction in favor of the saved lock filename. https://bugzilla.gnome.org/show_bug.cgi?id=748380
2015-04-23xwayland: free lockfile in start function on errorRay Strode1-1/+4
Right now we just leak the lockfile. https://bugzilla.gnome.org/show_bug.cgi?id=748380
2015-04-23xwayland: use out label for cleanup in start functionRay Strode1-7/+11
The start function has a few exit paths that need to perform clean up of the lock file. This commit consolidates those exit paths at the end using an out label and gotos. https://bugzilla.gnome.org/show_bug.cgi?id=748380
2015-04-23wayland: Add and implement set/unset_modal for the gtk_surface interfaceJonas Ådahl4-12/+44
Add set_modal ond unset_modal to the gtk_surface interface. When a surface is modal, the compositor can treat it differently from non-modal dialogs, for example attach it to the parent window if any. There is currently no changes to input device focus; it is up to the client to ignore events to the parent surface that is wanted. This bumps the gtk_shell version to 2. https://bugzilla.gnome.org/show_bug.cgi?id=745720
2015-04-23wayland: Kill clients who try to bind an incompatible gtk_shell versionJonas Ådahl2-0/+19
gtk_shell is not backward compatible, and clients binding to it should check whether the advertised version is the same as the client supports. https://bugzilla.gnome.org/show_bug.cgi?id=745720
2015-04-23wayland: Sync protocol/gtk-shell.xml from GTK+Jonas Ådahl1-0/+1
Had added a new capability enum value. https://bugzilla.gnome.org/show_bug.cgi?id=745720
2015-04-17backends/x11: Fix set_scroll_buttonOndrej Holy1-1/+1
There is copy&pasted code in set_scroll_button, which is apparently wrong, because it is trying to set scroll method instead of the scroll button... https://bugzilla.gnome.org/show_bug.cgi?id=747967
2015-04-15backend: Apply the right settings to the right input devicesCarlos Garnacho1-3/+28
Since 8769b3d55, the checks performed on which update_* function was called for each device got quite more lax, leading to failed asserts on code that assumed the previous behavior. Change update_[mouse|touchpad|trackball]_* to bail out early if the device received has not the right type, and remove the asserts. https://bugzilla.gnome.org/show_bug.cgi?id=747886
2015-04-14screen: Add public method to get neighboring monitorFlorian Müllner3-8/+29
The existing private get_monitor_neighbor() function returns a MetaMonitorInfo, which is private as well. Add a public wrapper that returns a monitor index instead, as we do for other public monitor-related methods. https://bugzilla.gnome.org/show_bug.cgi?id=633994
2015-04-14Bump version to 3.16.1Florian Müllner2-1/+19
Update NEWS.
2015-04-14input-settings: Silence a glib criticalRui Matos1-1/+3
The scroll-wheel-emulation-button key is 'i' in the schema but it also specifies a minimum range of 0 so using get_int() and casting is safe.
2015-04-14input-settings: Ensure that we always apply the same set of settingsRui Matos1-82/+83
This makes the hotplug and coldplug paths the same so that we don't miss out on any setting. https://bugzilla.gnome.org/show_bug.cgi?id=747434
2015-04-13cursor-tracker: Emit cursor-changed when XFixes tells us about itJasper St. Pierre1-0/+1
Otherwise, we won't update the cursor in the magnifier / screen recorder under X11.
2015-04-10wayland: Rework synchronized state application semanticsJonas Ådahl1-76/+98
When a parent of a subsurface gets it state applied (either by a wl_surface.commit, wl_subsurface.set_desync or a recursive wl_surface.commit on a parent surface), the pending position state of the subsurface should be applied. If the subsurface is in effective synchronized mode (i.e. if its in explicit synchronized mode or any of its parent surfaces is a subsurface in explicit synchronized mode), the cached state should also be applied at this point, including its subsurface children, recursively. https://bugzilla.gnome.org/show_bug.cgi?id=743617
2015-04-02wayland-keyboard: Disconnect from backend signals on releaseRui Matos1-0/+5
Otherwise we'll access freed memory in the handlers. The wayland keyboard is released when the seat loses the keyboard capability which happens when leaving the VT so if there are keymap changes while switched away from the VT we would crash. https://bugzilla.gnome.org/show_bug.cgi?id=747263
2015-04-01frame: Always use the client window's visual for our frameJasper St. Pierre1-25/+1
Since the frame is the window that's redirected, there's no reason for it to match the root window. There *is*, however, a big incentive to match the window's visual, since not doing so might trigger automatic redirection. On a specific platform, we construct a depth-32 root window, and stick a depth-24 child window inside it. The frame ends up being created depth-32, not depth-24, so we get automatic redirection.
2015-04-01wayland: try 50 times to create lock file again for login screenRay Strode1-2/+4
since commit 8c16ac47c1b88fc48ad8ea621a75a86e028a2764, we started creating the login screen on display 1024 instead of display 0. This defeats this logic in try_display: display++; /* If display is above 50, then something's wrong. Just * abort in this case. */ if (display > 50) In practice it doesn't matter much since we only have one login screen in most setups, but we should still fix the bug. This commit introduces a separate counter to keep try of 50 tries, rather than assuming "display number == number of tries". https://bugzilla.gnome.org/show_bug.cgi?id=746545
2015-03-31xwayland: Don't leak the launcherJasper St. Pierre1-1/+1
2015-03-31wayland: Fix damage of infinite regionsJonas Ådahl1-7/+13
To avoid integer overflow when scaling "infinite" regions (0, 0) (INT32_MAX, INT32_MAX), intersect with the surface rect before scaling, instead of intersecting with the buffer rect afterwards. https://bugzilla.gnome.org/show_bug.cgi?id=746510