Jasper St. Pierre
ca4777f778
compositor: Make code a bit more understandable
2014-03-20 13:18:47 -04:00
Rui Matos
76dc0ca681
wayland: Exempt CLICKING grab ops when syncing wayland input focus
...
If we have a CLICKING grab op we still need to send events to xwayland
so that we get them back for gtk+ to process thus we can't steer
wayland input focus away from it.
https://bugzilla.gnome.org/show_bug.cgi?id=726123
2014-03-20 17:08:53 +01:00
Rui Matos
8968501031
wayland-seat: Don't send pointer enter/leave events during a GRAB_OP
...
meta_wayland_seat_repick() can be called in various cases while mutter
has a GRAB_OP ongoing which means we could be sending wrong pointer
enter/leave events.
https://bugzilla.gnome.org/show_bug.cgi?id=726123
2014-03-20 17:08:53 +01:00
Rui Matos
1b29113150
wayland: Set/unset wayland focus on mutter grab/ungrab operations
...
This ensures that we send the proper leave and enter events to wayland
clients.
Particularly, this solves a bug in SSD xwayland windows where clicking
and dragging on the title bar to move the window only works on the odd
turn (unless the pointer moves away from the title bar between
tries). This happens because xwayland gets a button press but doesn't
see the release so when it gets the next button press it discards it
because its pointer button tracking logic says that the button is
already pressed. Sending the proper wayland pointer leave event fixes
it since wayland clients must forget about button state at that point.
https://bugzilla.gnome.org/show_bug.cgi?id=726123
2014-03-20 17:08:53 +01:00
Jasper St. Pierre
15c59f9919
keybindings: Split out check for filter_keybinding
...
This is a small code cleanup for clarity.
2014-03-20 11:03:54 -04:00
Jasper St. Pierre
a53e094fcd
window: Move move_resize_internal logic to protocol-specific directories
2014-03-20 11:02:50 -04:00
Jasper St. Pierre
a377a1a110
window: Move client-type-specific managing / unmanaging to a vfunc
2014-03-20 10:51:32 -04:00
Jasper St. Pierre
74a1e00e30
window: MetaWindow is now abstract
2014-03-20 10:50:27 -04:00
Jasper St. Pierre
1c41f71eef
window: Add a type for Wayland windows
2014-03-20 10:50:27 -04:00
Jasper St. Pierre
63350c52cc
window: Remove code for static gravity resizes
...
It was never turned on for all the years it's been there.
2014-03-20 10:50:27 -04:00
Jasper St. Pierre
a1427c7130
Revert "Move MetaGroup to be X11-specific"
...
This reverts commit f940292cfe
.
Turns out MetaGroup was public API and was used by gnome-shell.
Ugh.
2014-03-19 09:12:48 -04:00
Jasper St. Pierre
f0c7b518e6
Don't generate sources in a subdirectory
...
This fixes srcdir != builddir issues.
2014-03-18 22:06:31 -04:00
Jasper St. Pierre
5fa5ace5e6
Move session to x11/
...
XSMP code is X11-specific, of course.
2014-03-18 22:04:36 -04:00
Jasper St. Pierre
044c06bff3
Don't include wayland/ by default either
2014-03-18 22:04:36 -04:00
Jasper St. Pierre
a3ccc4fd1c
Remove x11/ directory from default include path
2014-03-18 22:04:36 -04:00
Jasper St. Pierre
0a20f7458c
window: Remove support for _NET_WM_ICON_NAME
...
We don't seem to use it anywhere.
2014-03-18 22:04:36 -04:00
Jasper St. Pierre
9c94f8ae47
Move testasyncgetprop.c to x11/
2014-03-18 22:04:27 -04:00
Jasper St. Pierre
f940292cfe
Move MetaGroup to be X11-specific
2014-03-18 21:23:36 -04:00
Jasper St. Pierre
48a36356dd
window: Make window->desc a bit clearer
...
And remove the hack for the "broken GNU libc". It works fine on
my system here.
2014-03-18 21:23:34 -04:00
Jasper St. Pierre
f05983be42
window: Move type_atom to window-x11
2014-03-18 21:15:49 -04:00
Jasper St. Pierre
dfcefd3315
Remove meta_core_increment_event_serial
...
It's unused.
2014-03-18 21:12:37 -04:00
Jasper St. Pierre
3fe755e684
display: Fix a typo
2014-03-18 21:12:37 -04:00
Jasper St. Pierre
0eb86de807
Move Wayland protocols into src/wayland
2014-03-18 20:37:35 -04:00
Jasper St. Pierre
ff635bad3b
Clean up the source tree
...
Remove a lot of old, unmaintained files
2014-03-18 20:37:35 -04:00
Jasper St. Pierre
43a409dec4
window: Don't sync window geometry when we haven't shown it yet
2014-03-18 18:55:32 -04:00
Jasper St. Pierre
b087fce062
window-actor: Also always assume the plugin manager exists
...
Addendum to the above...
2014-03-18 18:31:07 -04:00
Jasper St. Pierre
420f322910
compositor: Assume the plugin manager always exists
2014-03-18 18:25:33 -04:00
Jasper St. Pierre
4bf6e0ae8c
compositor: Kill off an unused cursor variable
2014-03-18 18:25:33 -04:00
Jasper St. Pierre
97872e70a5
compositor: Fix variable name style in meta_shape_cow_for_window
...
This has bugged me forever...
2014-03-18 18:25:33 -04:00
Jasper St. Pierre
be57308663
compositor: Clean up
...
Remove a bunch of weird checks, random logs, unused variables
and other cruft that nobody cares about today.
2014-03-18 18:25:32 -04:00
Jasper St. Pierre
33f1bd96f5
compositor: Kill off modal_plugin
...
We only ever have one plugin, so don't bother recording which plugin
is modal, only whether we are modal or not.
2014-03-18 18:25:32 -04:00
Jasper St. Pierre
9ba49358e5
compositor: Remove meta_check_end_modal
...
"This is used when reloading plugins"
Yeah, no.
2014-03-18 18:25:32 -04:00
Jasper St. Pierre
8b2b65246a
Assume the compositor always exists
...
At one point, it was supported to run mutter without a compositor,
but we don't allow that any longer. A lot of code already assumes
display->compositor exists and doesn't check for a NULL pointer,
so just kill the rest of the checks.
2014-03-18 18:25:32 -04:00
Jasper St. Pierre
4fdbb466e1
meta-plugin: Remove some unused features
...
And don't use properties for no reason.
2014-03-18 18:25:31 -04:00
Jasper St. Pierre
da48b18188
window: Fix build
...
A bad rebase on top of some other GObject cleanups I had made
this go sour.
2014-03-18 16:45:53 -04:00
Jasper St. Pierre
a5f1790828
window: Rename wm_hints_urgent to urgent
...
The flag and setter is now decoupled from the WM_HINTS state.
2014-03-18 15:44:11 -04:00
Jasper St. Pierre
6efcf2526d
window: Move urgency to a setter
2014-03-18 15:44:11 -04:00
Jasper St. Pierre
d6a27195d3
Move more fields to MetaWindowX11
2014-03-18 15:44:11 -04:00
Jasper St. Pierre
8f151842fb
Start moving X11 implementation to its own subdirectory
...
This is specifically about managing X11 windows, not necessarily
running as an X11 compositor. By that I mean that this code is
still used for XWayland windows, and event handling is still and
modesetting / monitor management is still in core/.
This is also a fairly conservative move. We don't move anything
like screen.c or bell.c in here, even though those are really
only for X11 clients.
2014-03-18 15:44:11 -04:00
Jasper St. Pierre
6f7023bc6b
Start splitting the X11-specific stuff of MetaWindow out into a subclass
...
This is fairly simple and basic for now, with just skip_taskbar /
skip_pager, but eventually a lot of "WM policy" like this, including
move-resize, will be in subclasses for each individual surface.
2014-03-18 15:44:11 -04:00
Jasper St. Pierre
63b158e4da
window: Split out recalc of skip_taskbar / skip_pager
...
This will be our first attempt for the MetaWindowX11Private
2014-03-18 15:44:11 -04:00
Rui Matos
b3364cad3e
wayland: Update keyboard state unconditionally
...
In particular we need to know about all key events to keep the xkb
state reliable even if the event is then consumed by a global shortcut
or grab and never reaches any wayland client.
We also need to keep track of all pressed keys at all times so that we
can send an updated set or pressed keys to the focused client when a
grab ends.
https://bugzilla.gnome.org/show_bug.cgi?id=722847
2014-03-18 19:15:17 +01:00
Rui Matos
3502cfba34
wayland-keyboard: Split out a function to determine the evdev keycode
...
We will need to use this is in another place on the next commit.
https://bugzilla.gnome.org/show_bug.cgi?id=722847
2014-03-18 19:15:17 +01:00
Rui Matos
5cc6becb63
wayland-keyboard: Make sure we send an updated modifiers event
...
Any given clutter event carries the modifier state as it was before it
occured but, for the wayland modifiers event, we want the state
including the current event.
To fix this, we'll keep our xkb_state instance around instead of the
serialized mods.
https://bugzilla.gnome.org/show_bug.cgi?id=722847
2014-03-18 19:15:17 +01:00
Jasper St. Pierre
ae8f21a3dc
wayland-keyboard: Don't use our own tracking to detect autorepeat
...
Clutter already marks all autorepeat key events it as synthetic
key events. We can simply ignore these instead of relying on custom
key tracking code.
2014-03-18 19:15:17 +01:00
Jasper St. Pierre
3de58189c0
window: Remove an unused bit
2014-03-18 13:18:52 -04:00
Jasper St. Pierre
5270c469a3
window: Remove meta_window_set_gravity as "public" API
2014-03-18 11:24:24 -04:00
Jasper St. Pierre
7504f16e59
Replace wm_state_modal usage with META_WINDOW_TYPE_DIALOG
2014-03-18 11:24:24 -04:00
Jasper St. Pierre
cdb7947dd1
window: Remove meta_window_is_modal
...
It relies on EWMH concepts. Wayland simply has a MODAL_DIALOG type.
2014-03-18 11:24:24 -04:00
Jasper St. Pierre
cdfc6f5b53
window: Remove vfunc slots for signals
...
These aren't used currently, and we're going to be adding
more vfuncs.
2014-03-18 11:24:24 -04:00
Jasper St. Pierre
fcb2ab41b2
window: Remove another bogus comment
...
It's not referring to anything!
2014-03-18 11:24:16 -04:00
Jasper St. Pierre
f5bd7c5f50
window: Remove bogus comment
...
These fields haven't been around for quite some time.
2014-03-18 11:24:16 -04:00
Jasper St. Pierre
cb549154aa
window: Move meta_window_configure_notify to window-x11
2014-03-18 11:24:16 -04:00
Jasper St. Pierre
ada9610e30
Start hacking out use of xtransient_for
...
It won't work under Wayland.
2014-03-18 10:25:54 -04:00
Jasper St. Pierre
f11bf44525
stack: Flatten and simplify the default focus window logic
2014-03-18 10:25:54 -04:00
Jasper St. Pierre
1f15c85c00
window: Make window_is_terminal private
2014-03-18 10:25:54 -04:00
Jasper St. Pierre
8b4c5459c0
window: Remove transient_for_as_xid
...
It's unused, and it exposes an X11-specific property to API.
2014-03-18 10:07:07 -04:00
Jasper St. Pierre
d07d5d1328
common: remove documentation for dead grab ops
2014-03-17 16:18:11 -04:00
Jasper St. Pierre
535685742a
window: Export is_title_onscreen and shove_title_onscreen as well
...
This was fixed in the master version of the commit, but I forgot to
squash it on the Wayland branch.
2014-03-17 11:18:26 -04:00
Rui Matos
62e45b6d5e
wayland-pointer: Drop unused arg from focus grab interface method
...
https://bugzilla.gnome.org/show_bug.cgi?id=726123
2014-03-17 11:06:58 +01:00
Jasper St. Pierre
3c6dd5bf6d
window: Export a bunch of state flags as accessor methods
...
This is necessary to reimplement window menus in gnome-shell.
2014-03-15 09:49:56 -04:00
Jasper St. Pierre
0f85986340
Add a META_MAXIMIZE_BOTH
...
Which has the value of META_MAXIMIZE_VERTICAL |
META_MAXIMIZE_HORIZONTAL.
This is an obvious code cleanup.
2014-03-15 09:49:56 -04:00
Jasper St. Pierre
93ac0329db
weston-launch: Fix a typo causing mutter-launch to not work
2014-03-14 16:04:56 -04:00
Jasper St. Pierre
c539dfe0d7
weston-launch: Pass the DRM device to Cogl
...
Open the device from weston-launch, and pass it to Cogl/Clutter.
This is a preliminary cleanup for our login1 integration.
2014-03-14 14:13:05 -04:00
Jasper St. Pierre
a9d8107c3d
window: Replace meta_window_type_changed with meta_window_set_type
...
Which does the equality checking for us.
2014-03-13 17:14:28 -04:00
Jasper St. Pierre
a5d2c51392
window: Move recalc_type to window-x11.c
...
It's only used by the X11 codepath.
2014-03-13 17:14:28 -04:00
Jasper St. Pierre
d1ea17e6a4
meta-weston-launch: Adapt to Clutter's new evdev open callback
2014-03-13 12:47:11 -04:00
Jasper St. Pierre
b37ad66e9d
xdg-shell: Update for new state change mechanism
...
We're still not properly going through the request system. This
will require a dense investigation of the code, but it will happen
soon...
2014-03-12 23:42:55 -04:00
Matthias Clasen
c1f15348a5
Revert "weston-launch: Pass the DRM device to Cogl"
...
This reverts commit 857561baed
.
This broke the build, and was pushed prematurely.
2014-03-12 14:48:46 -04:00
Jasper St. Pierre
857561baed
weston-launch: Pass the DRM device to Cogl
...
Open the device from weston-launch, and pass it to Cogl/Clutter.
This is a preliminary cleanup for our login1 integration.
2014-03-11 18:01:21 -04:00
Jasper St. Pierre
a44cc9ef47
wayland: Fix build
2014-03-11 18:01:17 -04:00
Jasper St. Pierre
d47b7ba038
Add meta_activate_session
...
This will be used on startup to switch to the newly activated session.
2014-03-11 17:25:40 -04:00
Jasper St. Pierre
f21312e2fd
meta-weston-launch: Redraw and update the cursor when switching back
2014-03-11 17:25:40 -04:00
Jasper St. Pierre
394af33607
weston-launch: Allow activating our own VT by passing a negative value
...
This will be used to implement activate_session.
2014-03-11 17:25:40 -04:00
Jasper St. Pierre
7314cdac94
weston-launch: Always use sd_session_get_vt
2014-03-11 17:25:40 -04:00
Jasper St. Pierre
81025e37ea
weston-launch: Stat the path before opening it
2014-03-11 17:25:39 -04:00
Jasper St. Pierre
1bb9f1e333
weston-launch: Remove unused prototypes
2014-03-11 17:25:39 -04:00
Jasper St. Pierre
b11c75c1c9
weston-launch: Rearrange code slightly
...
We need to initialize the main loops before our callback is called, so
this makes it make a slight bit of more sense.
2014-03-11 17:25:39 -04:00
Jasper St. Pierre
757b626aee
wayland: Add a few comments, rename some strings
2014-03-11 17:25:02 -04:00
Jasper St. Pierre
fb3df5243f
main: Add a --display-server option
...
This is an explicit option to launch mutter as a display server,
rather than relying on weston-launch.
2014-03-11 16:33:42 -04:00
Jasper St. Pierre
e34792d9f0
wayland: Remove needless indirection
2014-03-11 16:00:43 -04:00
Jasper St. Pierre
f397c32192
wayland: Make set_selection private
...
It's unused outside of us.
2014-03-11 15:42:37 -04:00
Jasper St. Pierre
f79314d7b5
wayland: Fix destroying data sources
...
The resource is not embedded in the source, it's separate. We need
to get the user data here to not crash.
2014-03-11 15:30:17 -04:00
Jasper St. Pierre
55c61259d8
wayland: Use g_slice_new0
...
And fix a leak.
2014-03-11 15:30:17 -04:00
Jasper St. Pierre
5298cf0a3a
wayland: Pull in a fix for a FIXME from Weston
2014-03-11 15:30:17 -04:00
Jasper St. Pierre
f1dc1a0cbc
wayland: Fix drag grabs
...
We need to have the seat here. This makes weston-dnd not crash when
clicking on an item.
2014-03-11 15:30:16 -04:00
Owen W. Taylor
2cf80bc647
Fix identification of CSD windows when checking whether to force fullscreen
...
We try to exempt CSD windows from being forced fullscreen if they are
undecorated and the size of the screen; however, we also catch almost
all windows that *do* need to be forced fullscreen in this check, since
they also have decorations turned off.
Identify actual CSD windows by checking whether _GTK_FRAME_EXTENTS is set -
GTK+ will always set this on CSD windows even if they have no invisible
borders or shadows at the current time.
We explicitly turn off the legacy-fullscreen check for native wayland windows
so we don't start legacy-fullscreening them if the new
meta_window_is_client_decorated() is later made more accurate.
https://bugzilla.gnome.org/show_bug.cgi?id=723029
2014-03-11 13:02:19 -04:00
Owen W. Taylor
40c15f6e2a
Fix meta_window_titlebar_is_onscreen() for titlebar-less windows
...
Make the code correspond to the comment - the titlebar can't be
offscreen if there's no titlebar.
https://bugzilla.gnome.org/show_bug.cgi?id=723580
2014-03-11 13:02:19 -04:00
Jasper St. Pierre
a8849621c9
window: Always save the user_rect when resizing Wayland windows
...
The user_rect represents the unconstrainted window size, and lots
of code in mutter assumes it can resize to the user_rect at any
time. If we wait for an attach to ACK and save the user rect, we'll
see lots of flickering as code is resizing to the old user_rect
at any time.
2014-03-11 12:29:11 -04:00
Jasper St. Pierre
49c0be11d6
display: Rework event spewing
...
Make it a compile-time flag rather than a run-time flag, because
practically any time you're going to be debugging event spewing,
you're going to have to recompile anyway. Remove the WITH_VERBOSE_MODE
checks, too.
2014-03-11 10:24:13 -04:00
Jasper St. Pierre
9df8e831be
xwayland: Make sure to clear an existing surface if we have one
...
This fixes an assert fail when redecorating an X11 client.
2014-03-11 10:24:13 -04:00
Jasper St. Pierre
84c6b2a3fa
wayland: Remove an extra reset
...
We already reset the double-buffered state when we commit it, so this
is just superfluous.
2014-03-11 10:24:13 -04:00
Jasper St. Pierre
06cd669ccb
wayland: Fix bad copy-paste error in unset_fullscreen
...
This was causing memory corruption and a bad crasher with simple-egl.
2014-03-10 16:45:05 -04:00
Jasper St. Pierre
81eb7d9537
Add META_GRAB_OP_WAYLAND_CLIENT
...
Which is used for Wayland popup grabs.
The issue here is that we don't want the code that raises or focuses
windows based on mouse ops to run while a client has a grab.
We still keep the "old" grab infrastructure in place for now, but
ideally we'd replace it eventually with a better grab-op infrastructure.
2014-03-10 15:11:03 -04:00
Jasper St. Pierre
dd8d8e436d
wayland: Remove special code for modal grabs
...
Since we never pass any Clutter events to Wayland, it's not needed.
2014-03-10 15:10:44 -04:00
Jasper St. Pierre
d6b6b363ad
seat: Add support for smooth scrolling
2014-03-10 11:36:36 -04:00
Jasper St. Pierre
254e2e993c
seat: Redo scroll handling
...
To make way for smooth scrolling
2014-03-10 11:36:36 -04:00
Jasper St. Pierre
c595a9c29f
seat: Reduce indentation
2014-03-10 11:36:36 -04:00
Rui Matos
dfc7f7222b
wayland-keyboard: Remove unused modifier indexes
...
This was copied from weston where they're used for compositor
keybindings. Mutter has its own keybindings code which doesn't need
this.
https://bugzilla.gnome.org/show_bug.cgi?id=722847
2014-03-07 15:00:04 +01:00
Rui Matos
ef278eb547
meta-cursor-tracker: Initialize our position from MetaWaylandPointer's
...
Clutter's input device initial position defaults to (-1, -1) on most
backends but for the evdev backend we changed it to be inside the
stage to prevent the pointer from wandering outside the stage until it
first enters, after which our constraining callback won't let it go
out.
This makes us be in sync with the real position from the start.
2014-03-07 14:54:51 +01:00