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
845fdda22c
keybindings: Make sure not to call meta_change_keygrab under Wayland
2014-05-03 12:50:19 -04: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
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
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
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
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
Rico Tzschichholz
ca75513880
prefs: Add center-new-windows setting
2014-04-25 15:26:24 +02: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
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
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
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
eed03d38b0
Update to latest xdg-shell protocol
2014-04-23 14:23:13 -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
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
Jason Ekstrand
e04e9aac39
Fix an uninitialized variable warning
2014-04-22 21:09:06 -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
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
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
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
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
adf0d08585
events: Clean up a bit
2014-04-21 12:15:23 -04:00
Jasper St. Pierre
813206393a
events: Handle move/resize grab ops as a first special case
2014-04-21 12:14:29 -04:00
Jasper St. Pierre
7c0a3dfeb8
window: Remove unused prototype
2014-04-21 12:14:29 -04:00
Jasper St. Pierre
cd4e6fcdee
display: Remove unused grab variables
2014-04-20 13:06:41 -04:00
Jasper St. Pierre
2f9c601ae4
display: Clean up end_grab_op
2014-04-20 13:06:41 -04:00
Jasper St. Pierre
bec3db3068
events: Add explicit break
...
This doesn't particularly matter, since we fall through into a default
case that does nothing right below, but this matches the other paths
and it prevents us from falling into a trap if we add other event types
below.
2014-04-20 13:00:51 -04:00
Jasper St. Pierre
cef2745bc0
window: Properly end grab ops started from a keybind / menu
...
If we start a grab op from a keybind / menu, we'll handle the
ButtonPress and drop the grab then, never giving the window a chance
to handle what it needs to do before the grab is dropped.
This means that if you use Alt+F7 to move a window around, move it
to a side-tiling or maximization area, and then left-click, it will
just hang there in the sky.
2014-04-20 13:00:51 -04:00
Jasper St. Pierre
064ef09c99
window: Remove is_window_root
...
The entire point of it was to check whether the window was on the
right screen. Since we don't handle multiple screens anymore, we
don't need to check anything anymore.
2014-04-20 13:00:51 -04:00
Jasper St. Pierre
9ca0349c2b
display: Use grab_op_is_moving_or_resizing
2014-04-20 13:00:51 -04:00
Jasper St. Pierre
f9305be450
display: Don't bother checking for mouse/keyboard separately
...
Just use our new is_moving_or_resizing method.
2014-04-20 12:03:25 -04:00
Jasper St. Pierre
6c9aa15814
display: Rename is_mouse_only to is_mouse
2014-04-20 12:03:24 -04:00
Jasper St. Pierre
d09116ebce
display: Rename meta_grab_op_is_mouse to is_moving_or_resizing
...
is_mouse actually checks for all combinations of moving/resizing
grab ops, which is quite confusing. Just rename it.
2014-04-20 12:03:24 -04:00
Jasper St. Pierre
beca90a689
display: Expose meta_grab_op_is_mouse_only
...
And use it properly in some event handling code.
2014-04-20 12:03:24 -04:00
Jasper St. Pierre
e55dd4e3f4
display: Rename META_GRAB_OP_WAYLAND_CLIENT to WAYLAND_POPUP
...
We're going to introduce other grab ops soon.
2014-04-20 12:03:24 -04:00
Jasper St. Pierre
258112d6a7
display: Remove COMPOSITOR from mouse/keyboard grab ops
...
Looking at the code paths where is_mouse / is_keyboard are used,
all of them should never be run when dealing with a COMPOSITOR
grab op, since they're filtered out above or the method is just
never run during that time.
It's confusing that COMPOSITOR is in here, and requires us to
be funny with other places in code, so just take it out.
2014-04-20 12:03:24 -04:00
Adel Gadllah
a378faf495
stack-tracker: Fix unitialized variable
2014-04-20 16:02:48 +02:00
Jasper St. Pierre
92340fd8da
display: Kill #if 0'd support for _NET_RESTACK_WINDOW requests
...
The code has been dead and broken for a long, long time now.
2014-04-18 10:12:11 -04:00
Jasper St. Pierre
a8d2dfd14f
seat: Don't require an event to repick()
...
We always pass NULL, and anywhere where we want to pass an event
should be handled internally.
2014-04-17 19:15:53 -04:00
Florian Müllner
a2fb2c05ae
window: Queue a fullscreen check when moving between monitors
...
We track changes to windows fullscreen state and stacking order
to determine a monitor's in-fullscreen state, but missed the
obvious case of moving a fullscreen window between monitors.
https://bugzilla.gnome.org/show_bug.cgi?id=728395
2014-04-17 18:30:16 +02:00
Florian Müllner
abd0ac2cc3
keybindings: Handle switch-to-workspace-{up,down,left,right} again
...
Commit 585fdd781c
not only removed the tabpopup, but set invalid
handlers (a.k.a. NULL) for those shortcuts; add back handling of
basic handling of those shortcuts by switching instantly without any
popups.
https://bugzilla.gnome.org/show_bug.cgi?id=728423
2014-04-17 17:05:38 +02:00