Jasper St. Pierre
e49bbe2ed8
cursor-tracker: Don't require a screen
...
This allows us to do initialization earlier and not have to poke into
Wayland internals from the cursor tracker.
2014-07-22 11:10:14 -04:00
Adel Gadllah
6ee5a1437c
x11: Move event filter to backend connection
2014-07-19 18:51:26 +02:00
Adel Gadllah
029673d0ee
Revert "backend-x11: Take the touch grab on the stage window"
...
This reverts commit 3b85e4b2b9
.
This breaks touch support; reverting would break wayland
(is what this patch tried to fix; we should find a better solution
that works on both).
2014-07-17 17:18:08 +02:00
Jasper St. Pierre
3b85e4b2b9
backend-x11: Take the touch grab on the stage window
...
So we don't get assert fails when touching the screen on mutter nested.
2014-07-14 17:24:31 -04:00
Jasper St. Pierre
55354f5c38
Take the touch grab in MetaBackendX11
...
This means that it won't trigger when we're running as a Wayland
compositor, which will cause a few warnings and possibly more
brokenness.
2014-07-14 09:41:10 -04:00
Jasper St. Pierre
eb952819c2
monitor: Don't use wl_output_transform in our APIs
...
Invent our own API so we can build without Wayland headers.
2014-07-13 11:35:01 -04:00
Jasper St. Pierre
d7d8c92a9a
Remove unused Wayland includes
2014-07-13 11:35:01 -04:00
Carlos Garnacho
704cae1de3
backend: Use the most recent event time on replayed touch events
...
When a touch sequence is passively grabbed and later rejected, events
will be replayed on the next client in propagation order, although those
events (either transformed to pointer events or not) will contain the
original timestamps, this will make grabs fail with InvalidTime if triggered
from the replayed ButtonPress/TouchBegin handler.
In order to work around this, store the most recent event time (presumably
gotten from the XI_TouchEnd caused by the passive grab being rejected), and
use that time on the events being replayed afterwards and grabs, so we don't
possibly fail with InvalidTime if those events result in a compositor grab.
2014-07-08 11:21:29 -04:00
Carlos Garnacho
faf55c4627
backend-x11: Ensure touch event coordinates are translated to the stage's
...
Now that those events are going to be received, coordinates translation
should also happen on those.
2014-07-07 19:17:03 -04:00
Carlos Garnacho
f351c5d304
backend-x11: Remove pointless goto
...
The function is not as complex as needing that, plus it always jumped
anytime bypass_clutter is TRUE, so make all conditional code depend on
that.
2014-07-07 19:15:48 -04:00
Jasper St. Pierre
63bca17ab6
backend-x11: Only spoof the event when we're passing it to Clutter
...
There's no need to do so otherwise.
2014-07-07 19:13:31 -04:00
Jasper St. Pierre
af135c0b0b
monitor-manager: Rename output_id to winsys_id
...
The output_id is more of an opaque identifier for the monitor, based on
its underlying ID from the windowing system. Since we also use the term
"output_id" for the output's index, rename our use of the opaque cookie
"output_id" to "winsys_id".
2014-07-01 13:24:34 -04:00
Jasper St. Pierre
110c79d10e
monitor-manager: Rename output_id to output_index
...
The term "output_id" is already used as an opaque ID.
2014-07-01 13:01:02 -04:00
Jasper St. Pierre
b9d867cb86
monitor-manager: Remove duplicate variable definition
2014-07-01 13:00:57 -04:00
Jasper St. Pierre
6af944fe2c
native: Add a warp_pointer implementation
...
Use the new clutter_evdev_warp_pointer method to implement it.
2014-06-11 16:42:05 -04:00
Jasper St. Pierre
806a666950
Make the native backend build-optional
2014-05-29 12:43:08 -04:00
Florian Müllner
d380d30ef4
Update (allow-none) annotations
...
The annotation has been deprecated in favor of (nullable) and/or
(optional).
2014-05-28 21:55:03 +02:00
Jasper St. Pierre
b704659899
backend: Add an XIWarpPointer wrapper
...
This makes Alt+F7 / Alt+F8 work respectively under X11 nested mode.
For the native backend implementation, we'll need a special Clutter
function, so don't implement that for now.
2014-05-27 14:28:35 -04:00
Jasper St. Pierre
47b3336ffa
monitor-manager-xrandr: Make sure to XFlush the XUngrabServer
...
Otherwise, the server may not receive our request, meaning that
we'll hang onto the server grab forever.
2014-05-22 17:39:46 -04:00
Jasper St. Pierre
8e5cfccf49
Revert "launcher: Put in some markers to help diff make a readable patch"
...
The markers have fulfilled their purpose.
2014-05-19 15:09:23 -04:00
Jasper St. Pierre
dcf64ca167
launcher: Replace mutter-launch with logind integration
...
This uses David Herrmann's new logind sessions interface to retrieve
fds for input devices, rather than using a custom setuid helper to do
the management. This vastly simplifies the interface.
This requires systemd v210, at least.
https://bugzilla.gnome.org/show_bug.cgi?id=724604
2014-05-19 15:09:23 -04:00
Jasper St. Pierre
f93fc1506b
launcher: Put in some markers to help diff make a readable patch
2014-05-19 15:09:22 -04:00
Jasper St. Pierre
4ee8fb8154
launcher: Pause Clutter during VT switches
2014-05-19 15:09:20 -04:00
Jasper St. Pierre
446b75907e
launcher: Remove the "VT-switched lock"
...
We'll replace it by pausing the Clutter master clock.
2014-05-19 15:03:06 -04:00
Jasper St. Pierre
480a853263
x11: Add simple cursor renderer
2014-05-17 13:27:16 -04:00
Jasper St. Pierre
3a0de6a4f1
cursor: Correct switching between fallback and backend cursors
...
When switching from the stage cursor to the native cursor, we
forgot to repaint the stage to get rid of the old cursor. Fix
this by having the abstract cursor renderer class track whether
we're using the backend, rather than doing chain-up shenanigans.
2014-05-17 13:27:15 -04:00
Jasper St. Pierre
fb9f22c02f
cursor-renderer-native: Don't move the cursor when we don't need to
2014-05-17 10:58:49 -04:00
Jasper St. Pierre
10ac1000f7
cursor-renderer: We always use a MetaStage
2014-05-17 10:50:44 -04:00
Jasper St. Pierre
5b17c72047
backend: Create the cursor renderer after the monitor manager
...
The native cursor renderer needs to connect to the monitor manager's
signals.
2014-05-15 14:16:37 -04:00
Jasper St. Pierre
c8f3820956
backend-x11: Always pass None for the cursor
...
This means we fall back to what's defined on the root window, which
will give us our properly set cursor.
2014-05-13 16:20:03 -04:00
Jasper St. Pierre
f57b0726a0
cursor-tracker: Remove the grab cursor
...
We expect that meta_screen_set_cursor while grabbed will properly
set the cursor on the root window. Make sure this works by simply
always using the root cursor when we have an active grab.
2014-05-13 16:20:03 -04:00
Jasper St. Pierre
da175bca52
cursor-tracker: Use a separate cursor for xfixes cursor tracking
2014-05-13 16:20:03 -04:00
Giovanni Campagna
aed671810c
MetaIdleMonitorDBus: unref the objects after exporting them
...
The object manager already has a reference.
https://bugzilla.gnome.org/show_bug.cgi?id=729732
2014-05-07 19:04:54 +02:00
Giovanni Campagna
2ca2c18c2a
MetaMonitorConfig: don't always restore the previous config when opening the laptop lid
...
Only do it if the current configuration was actually created
as the result of closing the laptop lid.
https://bugzilla.gnome.org/show_bug.cgi?id=725637
2014-05-06 21:28:41 +02:00
Giovanni Campagna
01cd4b2ba0
MetaMonitorConfig: don't keep a previous config with the wrong outputs
...
We can only apply a configuration if its outputs match the connected
ones, so discard the current configuration if the set of output changes
(for example for hotplug), otherwise we will crash trying to apply
the bogus previous configuration.
https://bugzilla.gnome.org/show_bug.cgi?id=725637
2014-05-06 21:27:50 +02:00
Adel Gadllah
31c925c602
wayland: Add basic hidpi support
...
Advertise the scale factor on the output and transform pointer and damage
events as well as input and opaque regions for clients
that scale up by themselves i.e use set_buffer_scale.
We do not scale any 'legacy' apps yet.
https://bugzilla.gnome.org/show_bug.cgi?id=728902
2014-05-03 10:11:51 +02:00
Jasper St. Pierre
25a16c3379
Remove trailing whitespace
2014-05-02 09:34:48 -04:00
Jasper St. Pierre
9607513e62
backend-x11: Fix cursor position under nested
2014-04-28 13:29:45 -04:00
Jasper St. Pierre
18730f2a5e
backend-x11: Take grabs on the stage window
...
This means that grabs will be reported with respect to the
stage window, and that our event coordinates will be more
correct under nested.
2014-04-28 13:29:31 -04:00
Jasper St. Pierre
c5d4f4a245
backend-x11: Split out event translation to another method
...
Keep the indentation from getting too hairy.
2014-04-24 12:12:54 -04:00
Jasper St. Pierre
a027937ccc
backend-x11: Set the proper coordinates on the spoofed device event
...
When we click on a window with a passive grab, then the event_x
and event_y will be relative to that window, instead of relative to
the stage, which means that picking will be wrong.
Forcibly using root_x / root_y breaks nested mode. Nested mode is
a testing mode that should be replaced by a DRI3-enabled Xephyr,
though. It's getting too hairy to support properly.
2014-04-24 12:12:54 -04:00
Jasper St. Pierre
01a773ed5a
backend-x11: Don't use clutter_stage_get_default
...
It turns out Clutter doesn't actually set the stage as the default
when creating a new one, so this creates a new stage that then dies.
2014-04-23 16:01:02 -04:00
Jasper St. Pierre
97074ccdad
backend-x11: Fix leak of the event data
2014-04-23 15:43:34 -04:00
Jasper St. Pierre
6111bb9dec
backend-x11: Adapt a consistent naming scheme for the event struct
2014-04-23 15:43:34 -04:00
Jasper St. Pierre
e9eb3c32a9
compositor: Move event spoofing code to MetaBackendX11
...
This is now where we handle device events.
2014-04-23 14:23:13 -04:00
Jasper St. Pierre
fdd43fc2d9
backend-x11: Add KeyPress / KeyRelease to mask
2014-04-23 14:23:12 -04:00
Jasper St. Pierre
4cbf420b4b
idle-monitor-xsync: Clean up includes
...
Conflicts:
src/backends/x11/meta-idle-monitor-xsync.c
2014-04-23 13:27:11 -04:00
Jasper St. Pierre
fd373948d2
idle-monitor-xsync: Retrieve your xdisplay from the backend
2014-04-23 13:27:11 -04:00
Jasper St. Pierre
1dc8a7eca3
monitor: Remove handle_xevent as a generic method
2014-04-23 12:15:12 -04:00
Jasper St. Pierre
861cfc23df
x11: Make sure to handle RANDR events from the right connection
2014-04-23 12:15:12 -04:00
Jasper St. Pierre
86368e7e07
backend: Add grab_device / ungrab_device
...
This makes sure that we take active grabs on the correct connection.
Passive grabs are still broken.
2014-04-23 12:15:12 -04:00
Jasper St. Pierre
f42184ded8
display: Pull the grab cursor from the cursor tracker
...
This might look silly, but just wait...
2014-04-23 12:15:12 -04:00
Jasper St. Pierre
98a1573bee
cursor: Save the original MetaCursor a cursor came from
...
So we can recreate it as a server-side cursor
2014-04-23 12:15:12 -04:00
Jasper St. Pierre
c6296aa17f
cursor: Make load_cursor_on_server public
2014-04-23 12:15:12 -04:00
Jasper St. Pierre
b501ca5a24
cursor: Remove cursor tracker from API
2014-04-23 12:15:11 -04:00
Jasper St. Pierre
10ac86b950
backend: Clean up slightly
2014-04-23 12:15:11 -04:00
Jasper St. Pierre
def097359c
cursor-renderer: Remove bogus assert
2014-04-23 10:24:26 -04:00
Jasper St. Pierre
6c743dad88
xrandr: Rewrite to be based on the X11 display connection
2014-04-23 10:24:26 -04:00
Jasper St. Pierre
274047c3f8
backend-native: Make sure to chain up to the parent post_init
2014-04-23 10:24:26 -04:00
Jasper St. Pierre
5752079cbb
launcher: Finish the rename
...
Not sure how I missed this one...
2014-04-22 18:25:22 -04:00
Jasper St. Pierre
7014dc5368
launcher: Rename methods a bit
2014-04-22 17:42:25 -04:00
Jasper St. Pierre
fdaeb0cf9c
launcher: Fix indentation
2014-04-22 17:42:13 -04:00
Jasper St. Pierre
59415bf49f
launcher: Unconditionally set the FD
...
We only open weston-launch if we're in the native backend,
so we don't need to check here.
2014-04-22 17:42:13 -04:00
Jasper St. Pierre
3c3b94921f
launcher: Move activate_session abstraction into the launcher code
...
login1 has a separate ActivateSession request, so put it here so
that we don't have to modify any backend code.
2014-04-22 17:42:13 -04:00
Jasper St. Pierre
0d9fa24be4
launcher: Fix up includes
2014-04-22 17:42:13 -04:00
Jasper St. Pierre
9a98ec81d7
Rename meta-weston-launch to meta-launcher
...
We're going to replace this with a login1 implementation soon enough.
2014-04-22 17:41:48 -04:00
Jasper St. Pierre
d0142d6ab6
backend: Remove unnecessary include
2014-04-22 17:00:53 -04:00
Jasper St. Pierre
dd440e64da
backends: Add a native cursor renderer
2014-04-22 16:56:02 -04:00
Jasper St. Pierre
a1ba480c8a
cursor-renderer: Rewrite HW cursors to be cleaner
2014-04-22 16:56:02 -04:00
Jasper St. Pierre
93600d6166
cursor-renderer: Fix HW cursors
...
We need to make sure that we update the HW cursor if we disable
it for some reason.
2014-04-22 16:56:02 -04:00
Jasper St. Pierre
33f3ca7fba
weston-launch: Go through the MetaBackend to force-update the cursor
2014-04-22 16:56:02 -04:00
Jasper St. Pierre
d27e267382
cursor: Retrieve the GBM device from the MetaBackend
...
Not the MetaCursorTracker.
2014-04-22 16:56:02 -04:00
Jasper St. Pierre
91784d87b6
Move the painting of the cursor on the stage out of the cursor renderer
...
This logic is now well-contained the stage. This is the start of us
moving to backend-specific cursor renderers.
2014-04-22 16:56:02 -04:00
Jasper St. Pierre
e21677c782
cursor-renderer: Kill a warning
...
This can happen during early initialization. We should have a
better initialization plan.
2014-04-22 16:56:01 -04:00
Jasper St. Pierre
326740e00f
Move the cursor renderer to the backend
2014-04-22 16:56:01 -04:00
Jasper St. Pierre
eac6e9ed41
cursor-tracker: Improve symmetry between two paths
2014-04-22 16:56:01 -04:00
Jasper St. Pierre
4ea9a28eee
cursor-renderer: Remove the MetaScreen
...
It's unused.
2014-04-22 16:56:01 -04:00
Jasper St. Pierre
28666da6a1
backend-x11: Simplify XSync initialization handling a bit
2014-04-22 14:17:08 -04:00
Jasper St. Pierre
a17b86dfbe
native: Install our pointer constrainment hook after Clutter initializes
...
Otherwise, the evdev device manager won't be around.
2014-04-22 12:44:33 -04:00
Jasper St. Pierre
d9450c46b9
cursor: Always use names for cursors
...
Rather than sometimes using names and sometimes using glyphs.
2014-04-22 12:44:33 -04:00
Jasper St. Pierre
e80c37f857
cursor: Don't require an xdisplay to load cursors on the client
2014-04-22 12:44:33 -04:00
Jasper St. Pierre
ef44cc5a53
cursor-tracker: Have one global cursor tracker
...
Now that we have a global MetaScreen, we can simply have a global
MetaCursorTracker as well. Keep the get_for_screen() API around for
compatibility, though.
2014-04-22 12:44:33 -04:00
Jasper St. Pierre
ee812e3fe0
cursor-tracker: Split a simple method out
2014-04-22 12:44:27 -04:00
Jasper St. Pierre
3d091e514d
backend: Poll events from the host X11 server ourselves
...
I was accidentally pulling events from the Xwayland server under
nested for the idle monitor, which is wrong. Whoops.
2014-04-22 10:26:03 -04:00
Jasper St. Pierre
b6a80934d6
backend: Move pointer constrainment code to native backend
2014-04-21 21:05:23 -04:00
Jasper St. Pierre
75b5d15598
backend: Clarify comment
2014-04-21 21:05:23 -04:00
Jasper St. Pierre
c44b1d730d
backends: Move MonitorManager creation to MetaBackend as well
2014-04-21 20:25:21 -04:00
Jasper St. Pierre
48dc544bef
backends: Move most of the code from meta_backend_init into the subclasses
2014-04-21 20:25:21 -04:00
Jasper St. Pierre
31d744195d
backends: Build MetaBackend subclasses for each backend
2014-04-21 20:25:21 -04:00
Jasper St. Pierre
00ea9bf14b
backends: Start on an initial MetaBackend object
...
This isn't great so far -- all we did is put the idle monitors here
instead. We'll soon have separate backend subclasses for the two
backends.
2014-04-21 20:25:21 -04:00
Jasper St. Pierre
f3ee9be4cb
idle-monitor: Use the XSync idle monitor under X11 nested
2014-04-21 20:25:20 -04:00
Jasper St. Pierre
2d6bcf3885
monitor-manager: Remove debugging META_DEBUG_MULTIMONITOR hook
...
It's outdated and incorrect: META_TYPE_MONITOR_MANAGER is now an
abstract class.
2014-04-21 20:25:20 -04:00
Jasper St. Pierre
d189ddcc86
Split out the code that renders the code into a MetaCursorRenderer
...
Right now, this is the same exact same mess it's always been, but
it will be fixed up soon with backend-specific renderers.
2014-04-21 20:25:20 -04:00
Jasper St. Pierre
18770aaa63
cursor: Add an explicit getter for the gbm device
...
We want to move this to a new MetaCursorRenderer class.
2014-04-21 20:25:20 -04:00
Jasper St. Pierre
2748661f63
pointer: Remove our own position tracking
...
Use the coords inside ClutterInputDevice instead.
2014-04-18 12:26:31 -04:00
Jasper St. Pierre
ae0853ed86
seat: Move cursor storage to MetaWaylandPointer
2014-04-17 19:15:52 -04:00
Jasper St. Pierre
57cc68096b
cursor-tracker: Kill unused variable
2014-04-17 16:23:37 -04:00
Jasper St. Pierre
d7ee5cf33d
cursor: Remove the theme_cursor cache
...
It's unused.
2014-04-17 13:03:27 -04:00
Bastien Nocera
d53e04f4c8
Name all timeouts and idles
...
Better names can be used once we make more use of them.
https://bugzilla.gnome.org/show_bug.cgi?id=727979
2014-04-10 18:59:46 +02:00
Colin Guthrie
c2b9155979
MonitorXrandr: Mask a BadValue error on VirtualBox.
...
https://bugzilla.gnome.org/show_bug.cgi?id=707563
2014-04-09 12:19:11 -07:00
Robert Ancell
f68d65a5ae
xrandr: Use specified output property name for backlight control
...
Backlight controls are set using the "BACKLIGHT" XRANDR output property.
This should be "Backlight" according to the XRANDR spec [1].
Some drivers (Intel) export both properties and some only the specified property (nvidia).
Users of drivers that only export the specified property cannot change their backlight using XRANDR.
[1] http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt section 9.1
https://bugzilla.gnome.org/show_bug.cgi?id=723606
2014-04-09 12:17:58 -07:00
Giovanni Campagna
42f267bb50
MonitorManager: make sure to pass the right sizes to vararg functions
...
A gulong is not enough to get 64 bits in all arches, so we must
cast it, or we can corrupt the stack.
This was downstream bug bugzilla.redhat.com/show_bug.cgi?id=1002055
https://bugzilla.gnome.org/show_bug.cgi?id=707267
2014-04-09 12:14:26 -07:00
Giovanni Campagna
e215f3f5eb
monitor-config: prevent assert that at least one output is connected
...
Apparently some connector technologies don't distinguish between
on and off, and there might be valid use cases for running without
any connected monitor.
In that case, just avoid any configuration at all.
https://bugzilla.gnome.org/show_bug.cgi?id=709009
2014-04-09 12:13:32 -07:00
Jasper St. Pierre
c1e3a6b742
idle-monitor: Actually get the check for is_wayland_compositor correctly
...
If we're a Wayland compositor we shouldn't be taking this path, ever.
2014-04-01 16:05:53 -04:00
Jasper St. Pierre
dcd83b7365
idle-monitor-native: Remove another copy/paste error
...
Don't overwrite the watch with a new malloc'd variable.
2014-04-01 16:01:06 -04:00
Jasper St. Pierre
617b00dfbd
idle-monitor-native: Reindent
2014-04-01 15:52:11 -04:00
Jasper St. Pierre
94692414cb
idle-monitor-native: Fix copy/paste bug
2014-04-01 15:52:11 -04:00
Jasper St. Pierre
ab6bc76bfd
Move edid-parse to backends/
2014-04-01 14:35:04 -04:00
Jasper St. Pierre
67b6737b27
backend: Fix warning
2014-04-01 14:04:53 -04:00
Jasper St. Pierre
29396014fd
backend: Fix the nested mode
2014-04-01 13:56:40 -04:00
Jasper St. Pierre
899d4d8477
monitor-manager: Move default get_edid_file / read_edid to base class
...
These are also used by the native manager.
2014-04-01 10:24:34 -04:00
Jasper St. Pierre
bce1d5117b
Start creating different subdirectories for each backend
2014-03-31 23:44:47 -04:00
Jasper St. Pierre
d5552cc372
Rename meta-xrandr-shared to meta-display-config-shared
2014-03-31 23:44:47 -04:00
Jasper St. Pierre
fd392cc1e7
Remove "xrandr" from the name of the generated DBus files
...
It's about generic display config, not XRandR specifically.
2014-03-31 23:44:47 -04:00
Jasper St. Pierre
5bcc78498f
Move MetaLauncher to meta-backend
2014-03-31 23:44:46 -04:00
Jasper St. Pierre
89b931435d
Move meta_clutter_init into a new file
...
We'll use this to get the initialization between the Wayland and
X11 compositor codepaths back in sync.
2014-03-31 23:44:25 -04:00
Jasper St. Pierre
20547e3b63
Move weston-launch to backends/
...
It's about display servers, not Wayland integration.
2014-03-31 22:48:34 -04:00
Jasper St. Pierre
229360b248
Start molding out a new src/backends/ dir
...
Right now this just has all of the files in one directory. We'll
be introducing more structure to this in the future, and build
a proper backend system.
2014-03-31 22:11:00 -04:00