Jasper St. Pierre
10ac1000f7
cursor-renderer: We always use a MetaStage
2014-05-17 10:50:44 -04:00
Jasper St. Pierre
c81a0dede2
keybindings: Don't crash if we don't have any windows to activate
...
Pressing Alt+Tab when we have no windows should not crash your
desktop, especially when it's so easy to hit when trying to test
switching VTs.
2014-05-15 15:50:31 -04:00
Jasper St. Pierre
fc8a2b8a42
keybindings: Rename initial_selection to window
...
Since we removed the tabpopup, this name doesn't make much sense
anymore.
2014-05-15 15:50:31 -04:00
Jasper St. Pierre
2ae0a72dad
wayland: Don't try to autostart gnome-session
...
It won't work.
2014-05-15 14:16:38 -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
8d9653dece
pointer: Update the button count after repicking
...
The default focus interface uses the button count to determine
whether we should update the pointer focused surface. When releasing
an implicit grab, we need to send the button release events to the
implicitly grabbed surface, so we can't reset the focus surface too
soon. We already explicitly set the focus at the end of implicit
grabs, so counting the buttons after is perfectly fine.
2014-05-15 13:59:28 -04:00
Jasper St. Pierre
e2b7b26f28
wayland: Use meta_window_move to position xdg_popup windows
...
This makes sure we set the user rect as well, which is necessary to
have things not "snap back" to weird locations.
2014-05-14 12:01:11 -04:00
Jasper St. Pierre
71544fbf4e
display: Replace set_grab_op_cursor with update_cursor
...
Now that we don't have to regrab to change the cursor, since it's
simply the cursor on the root window, all we have to do is update
the cursor on the screen.
2014-05-14 09:20:49 -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
Jasper St. Pierre
33cb7f4a2c
wayland: Send a correct width / height for state changes
...
If we send out a configure notify for a window and then have some
other kind of state change, we need to make sure that we continue
to send out that new size, rather than the last size the client
sent us a buffer for.
In particular, a client might give us a 250x250 buffer and then
immediately request fullscreen. We send out a configure for the
monitor size and a state that tells it it's full-screen, but then
it takes focus, and since the client hasn't sent us a buffer for
the new size, we tell it it's fullscreen at 250x250.
Fix this.
2014-05-12 18:25:24 -04:00
Jasper St. Pierre
7732447abc
wayland: Update to latest xdg-shell protocol
2014-05-12 18:25:23 -04:00
Jasper St. Pierre
c49c37999c
wayland: Move appears-focused changed handling to window-wayland
2014-05-12 18:25:19 -04:00
Jasper St. Pierre
91f35d6a01
wayland: Use standard SINCE version definitions
2014-05-12 17:01:00 -04:00
Jasper St. Pierre
4334135c52
events: Make sure to reset current_time after handling events
...
Otherwise, we'll have a stale value leftover in current_time that
won't be reset until the next event.
2014-05-09 11:51:28 -04:00
Jasper St. Pierre
03c4de5590
events: Set display->current_time when we start processing the event
...
Otherwise, the time will be refetched during processing.
2014-05-09 11:51:28 -04:00
Jasper St. Pierre
7a109a18af
events: Move window button handling to window.c
...
Look at how clean GCD is now!!!
2014-05-08 15:34:27 -04:00
Jasper St. Pierre
d9b72b0f43
events: Clean up event replay code
2014-05-08 15:30:09 -04:00
Jasper St. Pierre
a7ea54bd7d
events: Swallow all events directly on windows
...
This is how the X11 mode works.
2014-05-08 15:28:06 -04:00
Jasper St. Pierre
df642b96e2
events: Replace a switch statement with a simple if test
2014-05-08 15:28:06 -04:00
Jasper St. Pierre
f56cc1f733
events: Remove extra check for certain grab op
...
We already explicitly test that there's no grab op right below.
2014-05-08 15:28:06 -04:00
Jasper St. Pierre
f5bff4b7f3
events: Move the overlay_key_only_pressed handling to keybindings.c
...
Now the switch statement is entirely about window operations.
2014-05-08 15:28:06 -04:00
Jasper St. Pierre
bbfdf5dd2a
events: Move keybindings event handling out of the giant switch
2014-05-08 15:28:06 -04:00
Jasper St. Pierre
9b95eda42a
events: Remove an unnecessary check
2014-05-08 15:28:06 -04:00
Jasper St. Pierre
2d225a3386
events: Don't check if we have the grab to raise / focus a window
...
It isn't necessary. As an X11 compositor, we'll only see the event
if we have the grab on the window, anyway.
This was causing issues moving windows as a Wayland compositor.
2014-05-08 14:19:22 -04:00
Jasper St. Pierre
7b3cdc8f96
display: Correct check for grab_window_buttons
...
When we're a Wayland compositor, we get all the events, no exceptions,
so we don't need to grab.
This was masking focusing and raising issues under nested that showed
up under native.
2014-05-08 14:19:22 -04:00
Jonas Ådahl
b6f9500ccc
wayland: Only send wl_output.scale event if supported by the client
...
'scale' was introduced in version 2, so only send such an event to
clients which has bound a new enough version of wl_output.
https://bugzilla.gnome.org/show_bug.cgi?id=729602
2014-05-07 22:09:30 +02:00
Giovanni Campagna
ea354e96cb
xprops: free the text list content too
...
A text list is an array of pointers into a buffer. Freeing the
array is not enough, we need to free the buffer too.
https://bugzilla.gnome.org/show_bug.cgi?id=729732
2014-05-07 19:04:54 +02:00
Giovanni Campagna
098c8908ed
MetaStackTracker: make sure all stack ops are freed eventually
...
If we apply a prediction immediately instead of queueing, we should
also free the operation immediately.
If we discard the prediction queue because we resync fully, we
need to free each operation too.
https://bugzilla.gnome.org/show_bug.cgi?id=729732
2014-05-07 19:04:54 +02:00
Giovanni Campagna
ab632e36a5
default: free the option context after parsing
...
We don't need it, we should free it.
https://bugzilla.gnome.org/show_bug.cgi?id=729732
2014-05-07 19:04:54 +02:00
Giovanni Campagna
1427d20922
MetaDisplay: free the wayland windows table at close
...
Like we do for the XID table.
https://bugzilla.gnome.org/show_bug.cgi?id=729732
2014-05-07 19:04:54 +02: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
Jasper St. Pierre
324d7d720d
keybindings: Don't mark a replayed keypress event as handled
...
This is needed so it goes to Wayland clients.
2014-05-07 09:30:22 -04:00
Jasper St. Pierre
413e39ecbb
keybindings: Fix <Super> key crash
...
If we exit early as not handled, then the normal process_event
handler will fire, and trigger the overlay-key binding. As that's
a special binding that doesn't have a handler, trying to trigger
that handler will crash mutter.
Instead of returning early, just check for xdisplay every time
we try to drive the X grab state machine. We really need a better
solution for this on the Wayland side.
2014-05-07 09:30:21 -04: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
Jasper St. Pierre
bca210db45
Revert "Update to latest xdg-shell protocol"
...
This reverts commit fd5c14550a
.
Again, pushed by accident, whoops.
2014-05-05 19:09:07 -04:00
Jasper St. Pierre
66d6f73af2
Revert "ui: Remove maybe_redirect_mouse_event"
...
This reverts commit 6c7a51378f
.
It seems we still have issues with GDK's grab tracking getting confused.
That's unfortunate.
2014-05-05 19:06:57 -04:00
Jasper St. Pierre
bc8799d7d7
constraints: Complete fix for size hints constrainment
2014-05-05 19:06:56 -04:00
Jasper St. Pierre
fd5c14550a
Update to latest xdg-shell protocol
2014-05-05 14:15:03 -04:00
Jasper St. Pierre
a5cca5296c
window: Make sure not to eat any events that end grab ops
...
We need to send the button press / button release that ended a grab
op to Wayland clients so their tracking don't get confused.
2014-05-05 14:15:03 -04:00
Jasper St. Pierre
f4ef4b79f9
constraints: Size increments need to be applied to the client rect
...
Not the frame rect.
2014-05-05 13:10:01 -04:00
Jasper St. Pierre
6c7a51378f
ui: Remove maybe_redirect_mouse_event
...
There's no cross-talk between grabs now that the backend fully manages
input properly.
2014-05-04 16:38:38 -04:00
Jasper St. Pierre
9c4908b44a
xwayland: Don't crash when the window disappears from under us
...
If we attach to a MetaWindow that disappears before the idle fires,
we'll notice that we can't associate the window properly again and
try to access data on the MetaWindow struct, which might crash.
Install a weak ref that ties the lifetime of the idle to the lifetime
of the MetaWindow.
It seems every GTK+ app does this for some reason at startup. This
is really unfortunate, since we'll have to create and destroy a new
MetaWindow really quickly.
2014-05-04 15:51:53 -04:00
Jasper St. Pierre
afaab8aef2
wayland-surface: Fix warnings
2014-05-04 15:33:38 -04:00
Jasper St. Pierre
845fdda22c
keybindings: Make sure not to call meta_change_keygrab under Wayland
2014-05-03 12:50:19 -04:00
Adel Gadllah
fa29a1a99e
Fix last commit
...
Actually do the changes from the review ... pushed old version of the
patch :/
2014-05-03 12:00:27 +02:00
Adel Gadllah
f9bffae9fd
wayland: Scale native surfaces for hidpi
...
Scale surfaces based on output scale and the buffer scale set by them.
We pick the scale factor of the monitor there are mostly on.
We only handle native i.e non xwayland / legacy clients yet.
https://bugzilla.gnome.org/show_bug.cgi?id=728902
2014-05-03 10:11:55 +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
5d310e06ba
display: Remove some more unnecessary NULL checks
...
Instead, replace them with another assert precondition.
2014-05-02 09:37:01 -04:00
Jasper St. Pierre
25a16c3379
Remove trailing whitespace
2014-05-02 09:34:48 -04:00
Florian Müllner
a6601e92aa
display: Don't grab transient's parent unconditionally
...
Since commit 6e8d1d79d
, move operations are always performed for
the (toplevel) parent of all transient, which is just plain silly
if the dialog is not actually attached to its parent (either because
the dialog is not modal or the setting is disabled).
2014-05-02 12:27:39 +02:00
Jasper St. Pierre
f3a2bb7779
window: Clean up old_rect handling a tiny bit
...
We need the old rect for two purposes: to find the x/y in a resize-only
action, and to pass into the constraints code for nefarious purposes.
The constraints code takes a frame rectangle, so we convert the original
client rect into a frame rect, but never convert it back since it's
unused for the rest of the function.
Instead of playing games with the variables, just have two,
separately-scoped variables. One is the client rect, the other is the
frame rect.
2014-05-01 19:50:39 -04:00
Jasper St. Pierre
73e2d7049a
window: Rearrange code a tiny bit
2014-05-01 19:50:38 -04:00
Jasper St. Pierre
a6353944f6
constraints: Remove a lie
...
The orig / new now are about the frame rect, not the inner window
rect.
2014-05-01 19:50:38 -04:00
Jasper St. Pierre
43d6088ebb
window: Change meta_window_move_resize_internal to take a MetaRectangle
...
We construct one anyway, and most callers already pass in a rectangle
the long way around, so why not change the internal API?
2014-05-01 19:13:33 -04:00
Jasper St. Pierre
e3001794f2
window-x11: Clean up formatting a bit more
2014-05-01 19:11:17 -04:00
Jasper St. Pierre
e97ca325e6
window-x11: Clean up a bit
2014-05-01 19:10:48 -04:00
Jasper St. Pierre
c9c6645284
window-x11: Fix a copy/paste error
...
We need to use the explicitly passed-in gravity here, rather
than the window's existing gravity.
2014-05-01 19:09:36 -04:00
Jasper St. Pierre
57bb297450
window-wayland: Fix interactive resizing from the top/left once more
...
Ugh. So in the fullscreen case, we need to make sure to specify that
it's a MOVE_ACTION so that we move to the saved position, but we
can't do that in the resizing case since we need to use the resized
rectangle.
The flags are really hurting us here. Perhaps we should make it the
client's responsibility to specify a complete rectangle which we
could resize to; then the weird-o logic would be self-contained in
each front-end.
I'm not convinced this covers all cases, especially when we could have
a dangling weird state pointer, but it fixes our existing two testcases.
2014-05-01 18:59:17 -04:00
Jasper St. Pierre
06ca99c3a3
window: Remove some ugly debug logging
2014-05-01 17:59:50 -04:00
Jasper St. Pierre
4b5593c67f
window: Make the x/y position in the requested_rect more accurate
...
For gravity-based resizing, we need to make sure that the requested
rectangle has the proper x/y position given by the gravity resize,
rather than the bogus root_x_nw / root_y_nw parameter.
Make the test for this more explicit.
2014-05-01 17:59:50 -04:00
Jasper St. Pierre
acb3dc6754
window: Move adjust_for_gravity to window-x11
...
This removes the weirdness about which edge cases are where in the
move_resize_internal API, and we now always pass in client top-left
coordinates.
2014-05-01 17:59:49 -04:00
Jasper St. Pierre
4c21a46452
window: Move the session restoration and post-manage move_resize to window-x11
2014-05-01 17:59:49 -04:00
Jasper St. Pierre
900ae2c1fa
window: Remove the borders parameter from adjust_for_gravity
...
We can simply use the existing cached borders.
2014-05-01 17:59:49 -04:00
Jasper St. Pierre
01b6445708
window: Simplify adjust_for_gravity
2014-05-01 17:59:49 -04:00
Jasper St. Pierre
292d502205
window: Fix typo in comment
2014-05-01 17:59:49 -04:00
Jasper St. Pierre
adf2e44a82
core: Remove a few unused meta_core functions
2014-05-01 17:59:48 -04:00
Jasper St. Pierre
d456e68375
keybindings: Fix another place we unfreeze on the wrong xdisplay
2014-04-30 09:32:51 -04:00
Jasper St. Pierre
03efa3ccbc
keybindings: Make sure to unfreeze the keyboard on the right xdisplay
...
This fixes keybindings getting "stuck" after being activated in
X11 compositor mode.
2014-04-30 09:32:51 -04:00
Jasper St. Pierre
2101c8357b
Move sync_request_* handling mostly to window-x11
2014-04-29 17:58:23 -04:00
Jasper St. Pierre
575963bee7
window: Turn grab_op_begin / grab_op_ended into vfuncs
...
And move the grab_resize_popup management to the X11 window class,
as this is only used under X11.
2014-04-29 17:58:22 -04:00
Jasper St. Pierre
7726001d43
window: Simplify resize_popup handling
2014-04-29 17:58:22 -04:00
Jasper St. Pierre
e382a4b560
window: Replace manual switch statement for a resizing grab op
2014-04-29 17:58:22 -04:00
Jasper St. Pierre
70713cc7db
window: Add some hooks for when grab ops begin / end on windows
2014-04-29 17:58:22 -04:00
Jasper St. Pierre
417090f3fa
window: Remove some superfluous uses of window->xwindow
2014-04-29 17:58:21 -04:00
Jasper St. Pierre
9fcc57cdec
core: Remove unused function
2014-04-29 17:58:21 -04:00
Jasper St. Pierre
7bf0c77193
window: Move _NET_WM_ALLOWED_ACTIONS setting to window-x11 as well
2014-04-29 17:58:21 -04:00
Jasper St. Pierre
f2328f1105
window: Move meta_window_move_resize_request to window-x11
2014-04-29 17:58:21 -04:00
Florian Müllner
d9a2443e53
Fix crash when cursor theme lookup failed
...
meta_cursor_reference_from_theme() may return %NULL on failure,
in which case we currently crash when trying to release it.
2014-04-29 22:20:03 +02:00
Jasper St. Pierre
b773898a60
window-wayland: Fix resizing from the top/left once more
...
Restoring the position in our move_resize_internal implementation
is too late. We need to do it at ack-time, before we hand off the
new position to the constraints code.
2014-04-28 18:22:55 -04:00
Jasper St. Pierre
8461b2c910
window: Move move_resize_wayland to window-wayland.c
...
The move/resize logic is still busted for top/left resizes... sigh.
2014-04-28 18:22:55 -04:00
Jasper St. Pierre
9b760dbbab
window: Remove unused condition
...
IS_WAYLAND_RESIZE will always result in a RESIZED result, at least.
2014-04-28 18:22:55 -04:00
Jasper St. Pierre
8b0747786a
window: Move X11 struts implementation to X11 codepath
2014-04-28 17:34:33 -04:00
Jasper St. Pierre
41235fcb86
keybindings: Remove now-unused meta_screen_grab_all_keys
2014-04-28 17:34:33 -04:00
Jasper St. Pierre
1d5b4e5b2f
display: Remove the same checks in end_grab_op
2014-04-28 17:34:32 -04:00
Jasper St. Pierre
6e8d1d79d1
display: Make sure to retrieve the toplevel transient for
...
If we have multiple modal stacked dialogs, move the top one, not
the immediate parent, which heavily confuses mutter.
2014-04-28 17:34:32 -04:00
Jasper St. Pierre
7cefe91c3c
display: Fix tiling when grabbing an attached dialog
...
It seems we used the wrong variable by accident
2014-04-28 17:34:32 -04:00
Jasper St. Pierre
1ef6a5542a
display: Remove extraneous checks for grab_window
...
We assert a few lines down anyway, so just move the asserts up
and kill the if statement.
2014-04-28 17:34:32 -04:00
Jasper St. Pierre
bc0f7def47
display: Clean up whitespace
2014-04-28 17:34:31 -04:00
Jasper St. Pierre
f0175d1234
window: Don't reset pending_compositor_effect too early
...
With our surface_mapped strategy, implement_showing might not
change whether the window has been shown or not, and thus we
might end up clearing pending_compositor_effect before the window
is mapped.
Only clear pending_compositor_effect when the effect has actually
been used.
2014-04-28 16:59:34 -04:00
Jasper St. Pierre
eb0c4db46d
keyboard: Don't use a grab interface for sending key events
2014-04-28 16:30:51 -04:00
Jasper St. Pierre
19e97ec567
keyboard: Remove start_grab / end_grab
...
It's unused.
2014-04-28 16:30:50 -04:00
Jasper St. Pierre
ce5c029509
window-wayland: Make sure to save where the position for server-initiated resizes
...
For the server-initiated resize case, like unmaximize or some forms
of tiling, we dropped the x/y of the server-assigned rectangle on the
floor, which meant the surface didn't move to where it needed to be in
that case. Now, save it internally, and combine it with the dx/dy passed
in during attaches to figure out where we actually need to be.
Make sure to only use it for when we send out a configure notify. We
should use the passed in rectangle for other scenarios, like a
client-initiated resize.
This fixes incorrect surface placement after unmaximization.
2014-04-28 16:23:38 -04:00
Jasper St. Pierre
647743aa5f
Revert "window-wayland: Don't enter the only-moving path for Wayland
...
resizes"
We're going to use the old code structure now.
This reverts commit 23ae11043f
.
2014-04-28 16:23:38 -04:00
Jasper St. Pierre
e94f169d4e
Revert "window-wayland: Make sure to save where the position for server-initiated resizes"
...
This is wrong for client-initiated resizes now.
This reverts commit e6b0525c70
.
2014-04-28 16:23:38 -04:00
Jasper St. Pierre
e6b0525c70
window-wayland: Make sure to save where the position for server-initiated resizes
...
For the server-initiated resize case, like unmaximize or some forms
of tiling, we dropped the x/y of the server-assigned rectangle on the
floor, which meant the surface didn't move to where it needed to be in
that case. Now, save it internally, and combine it with the dx/dy passed
in during attaches to figure out where we actually need to be.
This fixes incorrect surface placement after unmaximization.
2014-04-28 16:11:10 -04:00
Jasper St. Pierre
23ae11043f
window-wayland: Don't enter the only-moving path for Wayland resizes
...
We'll be adding additional code here for "correct" moving soon, so
we need to make sure not to do it for Wayland resizes.
2014-04-28 16:11:09 -04:00
Jasper St. Pierre
78657dafca
window-wayland: Clean up a bit
2014-04-28 16:11:09 -04:00
Jasper St. Pierre
0f47eae33a
window-wayland: Split an if statement in two
2014-04-28 16:11:09 -04:00
Jasper St. Pierre
2209eac2bf
constraints: Make meta_window_constrain take window geometry rects
...
Remove extend_by_frame and unextend_by_frame. Use a dumb hack in
window.c to translate into window geometry in back. We'll soon track
all rectangles in MetaWindow in terms of the window geometry.
2014-04-28 16:11:09 -04:00
Jasper St. Pierre
aed6d4fbb7
default: Remove the maximize effect
...
It looks awful, and doesn't work with Wayland at all for some
reason, which means that maximize seems to "hang" for half a
second. Just trash it.
2014-04-28 15:20:49 -04:00
Jasper St. Pierre
270c7abd3c
default: Remove the unmaximize implementation
...
It does nothing.
2014-04-28 15:20:48 -04:00
Jasper St. Pierre
e2bd15541b
default: Remove unused internal state tracking
2014-04-28 15:20: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
Adel Gadllah
4e584c2cf0
display: Don't call x11 backend code when running native
...
https://bugzilla.gnome.org/show_bug.cgi?id=729044
2014-04-27 20:24:15 +02:00
Jasper St. Pierre
d1619e4f53
wayland-pointer: Remove the conditional around the surface actor too
...
The actor should always exist.
2014-04-27 10:39:19 -04:00
Adel Gadllah
c8d0a66921
wayland-surface: Ignore bufferless damage
...
Instead of letting a buggy client kill us.
2014-04-27 16:18:09 +02:00
Adel Gadllah
dd4d6af185
wayland-surface: Only call process_damage when we have any damage
...
This fixes a crash when a client commits a surface
without attaching a buffer.
2014-04-27 16:12:02 +02:00
Adel Gadllah
657318d4d3
meta-wayland-pointer: Remove the surface->window conditional
2014-04-25 20:38:24 +02:00
Adel Gadllah
f051e05b0a
meta-wayland-pointer: Transform coordinates relative to the surface_actor
...
Not the window_actor ..
2014-04-25 20:36:46 +02:00
Rico Tzschichholz
ca75513880
prefs: Add center-new-windows setting
2014-04-25 15:26:24 +02:00
Jasper St. Pierre
63f1a10e33
compositor: Don't select for weird events on the COW/stage
...
Talking it over with Owen, we weren't sure why this was here.
At one point, we were creating a foreign stage window, so potentially
Clutter didn't select for its own events, but now we're using a standard
stage window, so this seems weird.
Why we did it on the COW, nobody knows. Maybe copy/paste bugginess?
2014-04-24 16:26:21 -04:00
Jasper St. Pierre
14f839c53c
window: Only grab/ungrab buttons/keys on X11 windows
2014-04-24 16:26:21 -04:00
Jasper St. Pierre
ebb6847bd1
ui: Don't use grab ops for grab negotation
...
Grab operations are now always taken on the backend connection, and
this breaks GTK+'s event handling.
Instead of taking a grab op, just do the handling ourselves. The
GTK+ connection will get an implicit grab, which means pointer /
keyboard events won't be sent to the rest of mutter, which is good.
2014-04-24 13:36:40 -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
925075ddaf
compositor: Don't select for stage events on the UI X11 connection
2014-04-24 12:12:53 -04:00
Jasper St. Pierre
41de208f31
compositor: Also ungrab the VCP when beginning a modal
...
XXX: This should not be needed. We need to figure out why
there's a grab on the UI connection.
2014-04-24 11:26:12 -04:00
Jasper St. Pierre
c8e3b52160
keybindings: Simplify
2014-04-24 11:26:11 -04:00
Jasper St. Pierre
2c53919462
keybindings: Remove two extra error traps
2014-04-24 11:26:11 -04:00
Jasper St. Pierre
a6f3534ff0
display: Set the cursor theme on the backend display as well
2014-04-24 11:26:11 -04:00
Jasper St. Pierre
490f1a6249
display: Simplify cursor theme handling
2014-04-24 11:26:10 -04:00
Jasper St. Pierre
5b83bfb1db
display: Make sure to ungrab the pointer before starting a grab op
...
Now that we grab devices on the X11 connection, we can run into
cross-connection issues. Since GTK+ frames are on the UI connection,
they'll get the passive grab when we click on them. Forcibly ungrab
on GTK+'s connection before attempting to take a grab on the backend
connection ourselves.
2014-04-24 11:26:10 -04:00
Jasper St. Pierre
1ef06207a4
keybindings: Add two extra checks for key grab binding
2014-04-24 11:26:10 -04:00
Jasper St. Pierre
18d609ad6d
window: Don't use clutter_stage_get_default
...
It doesn't work, for the same reasons.
2014-04-23 17:01:51 -04:00
Adel Gadllah
c95c501a5b
meta-wayland-surface: Clip damage to buffer dimensions
...
A client can send us damage that exceeds the buffer size, protect against that
by clipping the damage to the buffer's region.
2014-04-23 22:32:17 +02:00
Jasper St. Pierre
8c5da24401
keybindings: Fix keybindings
...
Attach them to the backend's X11 connection.
This breaks the overlay key state machine for native right now.
We'll fix it back up soon.
2014-04-23 16:29:34 -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
2435d132ac
Revert "Update to latest xdg-shell protocol"
...
This reverts commit eed03d38b0
.
This was pushed by accident.
2014-04-23 16:01:02 -04:00
Jasper St. Pierre
72c65cbff0
display: Take passive grabs on the backend connection
2014-04-23 15:43:34 -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
eed03d38b0
Update to latest xdg-shell protocol
2014-04-23 14:23:13 -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
61b714c666
compositor: Remove "exclusive is exclusive" codepath
...
We now handle input events in the backend.
2014-04-23 14:23:13 -04:00
Jasper St. Pierre
e9263d25b9
compositor: Take modal grabs through the backend as well
2014-04-23 14:23:12 -04:00
Jasper St. Pierre
d590626017
compositor: Select for input on the output window the right display
2014-04-23 14:23:12 -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
af515732b0
display: Clean up set_grab_op_cursor
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
1762436775
display: Remove the screen from set_grab_op_cursor
2014-04-23 12:15:12 -04:00
Jasper St. Pierre
4fd017d23d
display: Always grab the root window
...
This grab needs to move to the backend, where we won't be able to
discriminate between different windows
2014-04-23 12:15:12 -04:00
Jasper St. Pierre
2f6ce4783b
display: Remove grab_xwindow from the public API
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
Jason Ekstrand
e04e9aac39
Fix an uninitialized variable warning
2014-04-22 21:09:06 -04:00
Jasper St. Pierre
59fc9d832b
wayland: Clean up surface creation
2014-04-22 18:27:44 -04:00
Jasper St. Pierre
0bf5c831d5
wayland: Remove unused list of surfaces
2014-04-22 18:27:44 -04:00
Jasper St. Pierre
777a6d4570
surface: Merge version logic inline
2014-04-22 18:27:43 -04:00
Jasper St. Pierre
003ff3d255
wayland: Fix header file style
2014-04-22 18:27:43 -04:00
Jasper St. Pierre
88040d6b8a
wayland: Have a consistent _init pattern for subcomponents
2014-04-22 18:27:43 -04:00
Jasper St. Pierre
eaf85ddec9
wayland: Split outputs to another file
2014-04-22 18:25:34 -04:00
Jasper St. Pierre
fa2e1e4eda
wayland-seat: Clean up includes
2014-04-22 18:25:34 -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
2769683521
Rename MetaWaylandStage to MetaStage and put in compositor/
2014-04-22 16:56:02 -04:00
Jasper St. Pierre
6072e981a8
wayland: Kill extra includes to meta-wayland-stage.h
...
No idea why these are still included at all...
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
168ede9374
compositor: Create the MetaWaylandStage here
2014-04-22 16:56:01 -04:00
Jasper St. Pierre
a0d608e083
wayland: Remove the stage destroy hook
...
We assert fail / segfault when pressing the "X" button anyway, so
I don't think it does us too much good.
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
ca11b88fcd
screen: Remove no-op statement
...
This was at one time necessary to create the cursor tracker, but
now that it's global we don't need it anymore.
2014-04-22 16:56:01 -04:00
Jasper St. Pierre
20a0eb9809
Require the XSync and XShape extensions at build-time
...
It's been long enough. We can mandate support for these, at least
at build-time. The code doesn't actually compile without either
of these, so just consider that unsupported.
2014-04-22 14:17:09 -04:00
Jasper St. Pierre
d8dfe4e4ad
display: Remove the RENDER extension requirement
...
Surprisingly, it's completely unused across all of the codebase.
2014-04-22 14:17:09 -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
bb4896f1af
plugin: Don't pass events to Clutter
...
We do this ourselves in the backend
2014-04-22 12:44:33 -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
7c0d75e34f
cursor: Don't access the cursor tracker from the screen directly
...
Go through the get_for_screen getter.
2014-04-22 12:44:30 -04:00
Jasper St. Pierre
ee812e3fe0
cursor-tracker: Split a simple method out
2014-04-22 12:44:27 -04:00
Jasper St. Pierre
52cf9104d9
window: Make the Move / Resize window menu items behave like the keybind
...
The Alt+F7 and Alt+F8 keybinds for moving and resizing windows allow you
to move and resize the window off the screen, so allow the same for the
menu items as well, since they're marked with the same accelerator.
https://bugzilla.gnome.org/show_bug.cgi?id=728617
2014-04-22 10:26:03 -04:00