Alexander Larsson
df4f4c14c7
do_move_region_bits_on_impl needs to copy from overlapping native windows too
...
It can happen that another native window is re-shaped over the region to
be moved, this will not destroy the data (since we're unsetting the background
when we reshape), but it will mean we need to read from this window.
We already used INCLUDE_INFERIORS, but that only handle subwindows. We fix
this by doing the copy on the toplevel, offsetting the copy to compensate for
this.
2009-04-02 10:15:20 +02:00
Alexander Larsson
6b15e248fa
move_region_on_impl - shortcut if region is empty
2009-04-02 10:15:20 +02:00
Alexander Larsson
ed9cd90b72
Fix various problem with temporarily unsetting background
...
All the calls that unset private->parent failed if that was
not a native window (impl), instead we need to find the impl window
for the parent. Add some helper functions for this and use them.
For move/resize of child windows, we really need to recursively unset
on the parent, because moving the window could expose other native
children of the parent.
In do_shape_combine_region, only unset background if we're changing
the bounding shape (i.e. not the input shape)
2009-04-02 10:15:20 +02:00
Alexander Larsson
3c5c7f4b4d
Avoid extending implicit paint size due to empty regions not working well with gdk_rectangle_union on clipbox
2009-04-02 10:15:20 +02:00
Alexander Larsson
c31ef39d76
Don't flicker when unsetting shape (using bg none)
2009-04-02 10:15:20 +02:00
Alexander Larsson
ef3d1893b6
Always set the shape when creating a native window.
...
This is not always done by recompute_visible_regions, as
the clip region doesn't change.
2009-04-02 10:15:19 +02:00
Alexander Larsson
c967cabc35
Avoid lots of unnecessary computation when moving toplevel windows
...
There is no need to do all these computations when moving toplevels
as that can't really change any visible regions. Nor will it cause
any exposes we need to handle.
2009-04-02 10:15:19 +02:00
Alexander Larsson
cdb405dfcf
Restack native window after reparent put it on top
2009-04-02 10:15:19 +02:00
Alexander Larsson
c1884ce403
Fix up native window handling in gdk_window_lower too
2009-04-02 10:15:19 +02:00
Alexander Larsson
28c4518cca
Fix up gdk_window_raise and native window creation to not move native window above windows outside the non-native parent
2009-04-02 10:15:19 +02:00
Alexander Larsson
377ca19c9f
Add restack_under method to GdkWindomImpl
2009-04-02 10:15:19 +02:00
Alexander Larsson
cce1ff8eb8
Move all backend specific raise/lower code into _internal helpers
2009-04-02 10:15:19 +02:00
Alexander Larsson
e918b64088
Make sure we handle clipping in gdk_window_draw_pixbuf if gc == NULL
2009-04-02 10:15:19 +02:00
Alexander Larsson
78bbac87ed
Send expose events to exposed area when changing the window shape
2009-04-02 10:15:19 +02:00
Alexander Larsson
82b181e643
Force native windows for all windows used with input events
2009-04-02 10:15:18 +02:00
Alexander Larsson
283160c712
Make xfree gdkinput code compile
2009-04-02 10:15:18 +02:00
Alexander Larsson
d6ecaca166
Handle GDK_WA_CURSOR in non-native window creation
2009-04-02 10:15:18 +02:00
Alexander Larsson
764ceead66
Include inferiors when moving window parts
2009-04-02 10:15:18 +02:00
Alexander Larsson
1ad01acbf2
Add _gdk_drawable_get_subwindow_scratch_gc as a way to get cached gcs with GDK_INCLUDE_INFERIORS
2009-04-02 10:15:18 +02:00
Alexander Larsson
4d187531e4
Set bg none while changing so we don't draw the bg color
2009-04-02 10:15:18 +02:00
Alexander Larsson
5378324a18
Ref imp even in non-native windows and don't NULL out in destroy so that get_screen works after destroy.
2009-04-02 10:15:18 +02:00
Alexander Larsson
e63de13f40
Correct type checks on gdk_window_set_group entry.
2009-04-02 10:15:18 +02:00
Alexander Larsson
40827b99db
When creating native window, set the native background
2009-04-02 10:15:18 +02:00
Alexander Larsson
959d940812
Need to split up impl changing and reparenting so we can recompute abs_x/y inbetween
2009-04-02 10:15:17 +02:00
Alexander Larsson
26569bd54f
Avoid flickering by using more temp unset bg
2009-04-02 10:15:17 +02:00
Alexander Larsson
c8bdac7508
Recompute abs_x/y before reparenting windows due to new native window parent
2009-04-02 10:15:17 +02:00
Alexander Larsson
acf1954f12
Don't destroy NULL region
2009-04-02 10:15:17 +02:00
Alexander Larsson
4202cc0c60
Fix gdk_window_get_root_origin and gdk_window_get_frame_extents when called on non-toplevels
2009-04-02 10:15:17 +02:00
Alexander Larsson
ed5564ee3a
Ensure we show native window when creating them for already visible windows
2009-04-02 10:15:17 +02:00
Alexander Larsson
d73859fe16
Move native window showing/hiding out of is_impl, we may need to do this for emulated windows too
2009-04-02 10:15:17 +02:00
Alexander Larsson
9f2c97dd80
Ensure that we always invalidate newly exposed areas, as X may not (due to temp bg none)
2009-04-02 10:15:17 +02:00
Alexander Larsson
4a0cb4a240
Various fixes for native windows:
...
move_region_on_impl() - doesn't need to copy anything if dx/dy == 0
Ensure that we queue an update when invalidating an empty area but we have outstanding moves
Temporarily unset background when moving native child windows
2009-04-02 10:15:17 +02:00
Alexander Larsson
76e23f00da
Update abs_x/y before moving native children
2009-04-02 10:15:17 +02:00
Alexander Larsson
4442463481
Move all native children (recursively) in gdk_window_scroll
2009-04-02 10:15:16 +02:00
Alexander Larsson
f6e1b0ac17
Ensure that we're properly hiding impl window if one of its parent non-impl windows are hidden
...
Also, add some debug printing code to list the GdkWindow tree
2009-04-02 10:15:16 +02:00
Alexander Larsson
a38e797941
Don't remove composited childrens area when processing updates
...
Handle shape when processing updates
Make sure we reset the old clips before setting new cairo clips
2009-04-02 10:15:16 +02:00
Alexander Larsson
890503099f
Handle mask == NULL in shape_combine_mask
2009-04-02 10:15:16 +02:00
Alexander Larsson
d7e369c27a
Implement input shapes
2009-04-02 10:15:16 +02:00
Alexander Larsson
e14e05addc
Remove shape_combine_mask from backend. Make X11 backend use XShapeCombineMask directly to unset region
2009-04-02 10:15:16 +02:00
Alexander Larsson
4ba2b181bf
Implement shaped windows
2009-04-02 10:15:16 +02:00
Alexander Larsson
062da50b9f
Add _gdk_windowing_window_get_shape
2009-04-02 10:15:16 +02:00
Alexander Larsson
0d540e935b
Create _gdk_drawable_create_cairo_surface to ugly typechecking
2009-04-02 10:15:15 +02:00
Alexander Larsson
0ba99e6e7b
Make gdk_windowing_window_destroy a GdkWindowImpl method
2009-04-02 10:15:15 +02:00
Alexander Larsson
36ce54878b
Make _gdk_windowing_window_queue_translation a GdkWindiwImpl call
2009-04-02 10:15:15 +02:00
Alexander Larsson
f22211c881
Remove unnecessary clear_area method in GdkWindowImpl
2009-04-02 10:15:15 +02:00
Alexander Larsson
d093be43e7
For implicit grabs, we grab the *event* window, not the pointer window
2009-04-02 10:15:15 +02:00
Alexander Larsson
83ee69740e
Handle cursors right with grabs
2009-04-02 10:15:15 +02:00
Alexander Larsson
7b2b9a0219
Implement cursors
2009-04-02 10:15:15 +02:00
Alexander Larsson
f2b50ff638
Fix crossing event order and some details
2009-04-02 10:15:15 +02:00
Alexander Larsson
b771c9924d
New approach to motion event handling
2009-04-02 10:15:11 +02:00