Commit Graph

320 Commits

Author SHA1 Message Date
Alexandre Julliard 3c8ff605a6 winex11: Allow embedded windows to use an alpha channel with their surface.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-04 22:04:22 +02:00
Wei xie 48fb9d6a03 winex11: Avoid deadlock when setting cursor.
Signed-off-by: Wei xie <xiewei@linuxdeepin.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 09:28:34 +02:00
Alexandre Julliard 1ce36987eb winex11: Use the client window support also for XComposite child windows.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-12 15:49:23 +01:00
Alexandre Julliard ac4f2ac36f winex11: Hold a reference to the drawable from the GL context.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-12 15:42:05 +01:00
Alexandre Julliard 99041a6fd3 winex11: Store only the pixmap size instead of the window rectangle in the GL drawable.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-09 13:10:25 +01:00
Alexandre Julliard e40ff92e7c winex11: Support using an ARGB visual as default visual.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-26 13:39:03 +01:00
Alexandre Julliard 5ef349e45f winex11: Don't allocate a window surface for off-screen windows.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-22 15:18:47 +01:00
Alexandre Julliard fc21a83a91 winex11: Store the process name at startup to avoid grabbing the loader lock again.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-17 22:12:08 +02:00
Huw Davies daae0d6adc winex11: Use logical co-ords to call GdiAlphaBlend().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:38:43 +02:00
Piotr Caban 34b108dd1d user32: Switch to normal window drawing on SetLayeredWindowAttributes call.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:55 +02:00
Hadrien Boizard 288a15fabd winex11.drv: Use EqualRect() instead of memcmp() to compare RECTs.
Signed-off-by: Hadrien Boizard <h.boizard@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-19 08:59:37 -07:00
Alexandre Julliard a52d09198d winex11: Run a single clipboard manager thread per window station, inside the explorer process.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-26 21:53:52 +09:00
Akihiro Sagawa ce7a98e95c winex11: Return more reliable value from X11DRV_MsgWaitForMultipleObjects.
After processing several X events, X11DRV_MsgWaitForMultipleObjects always
tells us that a new message is available. This is not true for some cases.

For instance, when we call DestroyWindow, the X queues DestroyEvent. Then,
X11DRV_MsgWaitForMultipleObjects handles the event only; none is posted or
sent as hwnd for destroyed window is unavailable. However, the function
states "new message is available" by returning count - 1 value.

This is an issue for CoWaitForMultipleHandles because it expects a new
message in the queue and consumes the message.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 22:27:40 +09:00
Piotr Caban 6afecf2223 winex11.drv: Don't assume that owner is top-level window in set_style_hints.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:54:17 +09:00
Alexandre Julliard 6f2c18609b winex11: Hide window icons in desktop mode when the taskbar is active.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-31 22:42:00 +09:00
Ken Thomases daa351ee82 winex11: Fix logic of whether to use XUnmapWindow() or XWithdrawWindow() in make_window_embedded().
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-17 14:20:36 +09:00
Jacek Caban ecf9e9135d winex11.drv: Use grabbed window display in SetCapture.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-14 13:54:50 +09:00
Alex Henrie e330c40df9 winex11: Fix overflow in remove_startup_notification.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-19 20:48:12 +09:00
Alexandre Julliard 9f5147e08f winex11: Fix a copy&paste typo in the initial position of a window.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-23 23:35:17 +09:00
Jactry Zeng c2dc6f3ef2 winex11: Implement FlashWindowEx.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-13 23:35:27 +09:00
Thomas Faller 8c1c7d19fe winex11.drv: Fix uninitialized memory. 2015-08-28 13:15:18 +09:00
Vincent Povirk ce409c01d5 winex11.drv: Don't change net_wm maximized state for minimized windows.
In Win32, minimized windows are generally not considered maximized,
but restoring a minimized window that had been maximized returns it to
the maximized state.

In X11, at least with some window managers (I tested metacity and
gnome shell), the maximized state is meaningful for minimized windows.
If we remove the net_wm maximized state from windows we minimize, they
will still be unmaximized when the WM restores them.
2015-07-20 06:30:48 +02:00
Vincent Povirk 3d8353fe18 winex11.drv: Track external changes to _NET_WM_STATE in net_wm_state.
In some cases, WM's will modify the _NET_WM_STATE of our own windows.
Most notably, this can happen when the WM maximizes our window, but
mutter has been known to alter the fullscreen state as well. If we
want to reconfigure our window later, we'll probably have to remove
these states, which means we need to remember that they were set.
2015-07-02 20:38:54 +09:00
Dmitry Timoshkov bd24842eba winex11: Don't call ExcludeUpdateRgn for a window with WS_CLIPCHILDREN style. 2015-07-01 22:56:40 +09:00
Nikolay Sivov c0af3fad4e winex11: Remove unreachable XFreePixmap(), mask_pixmap is always NULL on failure (Coverity). 2015-06-03 19:55:12 +09:00
Alexandre Julliard 070a82e743 user32: Merge the AcquireClipboard and EmptyClipboard driver entry points. 2015-06-03 18:46:53 +09:00
Indrek Altpere 68e1fdf999 winex11: Fix uninitialized memory access appearing in multiple tests (Valgrind). 2015-05-28 22:44:07 +09:00
Vincent Povirk 5e5a9d6f93 winex11: Leave fullscreen state alone when minimizing. 2014-07-11 17:02:15 +02:00
Alexandre Julliard 6a0f3df68c user32: Don't bother returning a value from the SetWindowRgn driver entry point. 2014-05-01 12:31:14 +02:00
Ken Thomases 3e09763835 winex11: Remove dead store into win_gravity in get_window_attributes(). 2014-04-21 10:42:18 +02:00
Ken Thomases 809166def7 winex11: Remove set-but-never-read hwnd and fbconfig_id fields of struct x11drv_escape_set_drawable. 2014-04-01 10:44:57 +02:00
Ken Thomases eef81f5ecc winex11: Don't leak client window and colormap when pixel format is changed. 2014-03-11 19:39:23 +01:00
Frédéric Delanoy 323bec99b3 winex11.drv: Use BOOL type where appropriate. 2013-11-29 13:32:46 +01:00
Sebastian Lackner df6dc091e6 winex11: Implement additional XEMBED events. 2013-11-11 20:06:56 +01:00
Alexandre Julliard 13149b67d3 explorer: Create the driver desktop window after the window handle is created. 2013-10-16 12:13:50 +02:00
Alexandre Julliard 9f1f29cc91 winex11: Add a helper function to return the virtual screen rectangle. 2013-10-14 17:26:14 +02:00
Alexandre Julliard 0b71e0bf12 winex11: Add helper functions for converting between root and virtual screen coords. 2013-10-14 17:26:13 +02:00
Frédéric Delanoy ff7fc1fd45 winex11.drv: Use BOOL type where appropriate. 2013-10-02 11:06:39 +02:00
Sebastian Lackner e915cfd4e7 winex11: Call destroy_gl_drawable before destroying the window. 2013-09-30 20:36:33 +02:00
Sebastian Lackner 5fb74c48d1 winex11: Added missing release_win_data() to create_foreign_window(). 2013-09-25 11:54:52 +02:00
Alexandre Julliard ba54de6ed5 winex11: Don't use a surface if there is a client window.
We can't get clipping right for child windows if using a surface.
2013-06-11 18:07:42 +02:00
Alexandre Julliard 04ad06353d user32: Move the common parts of ScrollDC into user32 and the null driver. 2013-04-19 16:16:16 +02:00
Andrew Talbot 0ff8c9da52 winex11.drv: Avoid signed-unsigned integer comparisons. 2013-03-06 11:43:06 +01:00
Alexandre Julliard 4391deb930 winex11: Wait for the client window to be created on the server side. 2013-03-04 13:34:28 +01:00
Alexandre Julliard f15a5ff70f winex11: Explicitly set the border pixel when creating the client window. 2013-03-04 13:34:11 +01:00
Alexandre Julliard 76b8612c3e winex11: Preserve the client window when changing the window visual. 2013-02-13 17:19:40 +01:00
Alexandre Julliard 8373f8b6f6 winex11: Handle Expose events on top-level client windows. 2013-01-23 19:09:29 +01:00
Alexandre Julliard 951415b602 winex11: Store the client window in the window data again, now that it can be accessed from all threads. 2013-01-23 19:06:32 +01:00
Alexandre Julliard 3ad40bf647 winex11: Delay mapping a layered window until its attributes are set. 2012-10-29 14:39:55 +01:00
Alexandre Julliard 5fae649bdf winex11: Never use a surface for embedded windows, even for the parents. 2012-10-21 12:18:28 +02:00