Commit Graph

338 Commits

Author SHA1 Message Date
Alexandre Julliard c8ea1e50dc winex11: Avoid passing a window data structure to functions that can send messages. 2012-09-17 12:42:21 +02:00
Alexandre Julliard 0682355af2 winex11: Don't use a window surface for embedded windows. 2012-09-13 10:31:58 +02:00
Alexandre Julliard edea44f0ff winex11: Add support for the LWA_COLORKEY layered window attribute. 2012-09-12 16:00:18 +02:00
Alexandre Julliard 64dc6561cd winex11: Remove support for icon windows, use a default icon instead. 2012-09-10 16:22:08 +02:00
Alexandre Julliard a39659fcc9 winex11: Disable client-side rendering for OpenGL windows. 2012-09-10 16:16:05 +02:00
Alexandre Julliard 33ac850c80 winex11: Use window surfaces for rendering top-level windows.
It can be disabled by setting "ClientSideGraphics"="n".
2012-09-06 12:44:54 +02:00
Alexandre Julliard a5ef549c6e user32: Add support for managing a DIB surface for a window. 2012-09-06 12:35:32 +02:00
Alexandre Julliard 514eb69584 winex11: Store the rectangle of the GL drawable and use it when updating the window size. 2012-09-04 15:03:04 +02:00
Alexandre Julliard ea07c310ec winex11: Create the whole window at window creation time. 2012-09-04 14:11:16 +02:00
Alexandre Julliard 9f042298f7 winex11: Move the GL drawable management to opengl.c. 2012-09-03 16:45:51 +02:00
Alexandre Julliard ef034e71e2 winex11: Treat the client window as an OpenGL drawable. 2012-09-03 16:45:51 +02:00
Alexandre Julliard fbac3194a5 winex11: Store the OpenGL drawable in a separate structure with its own context. 2012-09-03 16:45:51 +02:00
Alexandre Julliard d596b62d95 winex11: Only create the client window when the pixel format is changed. 2012-09-03 16:45:50 +02:00
Alexandre Julliard 044f790bcb winex11: Always paint to the whole window. 2012-08-30 19:02:27 +02:00
Alexandre Julliard 2967599286 winex11: Don't select for mouse events on the client window. 2012-08-30 12:57:45 +02:00
Alexandre Julliard e280527f6b winex11: Never attempt to create the window data from a different thread. 2012-08-30 12:11:58 +02:00
Alexandre Julliard d35fc4369f user32: Always go through set_window_pos when the WS_VISIBLE style is changed. 2012-08-29 20:09:28 +02:00
Alexandre Julliard cf1be58706 winex11: Remove the remaining X11 locking calls. 2012-08-16 16:48:00 +02:00
Alexandre Julliard c970621d90 winex11: Create contexts at initialization time to avoid the need for locks. 2012-08-16 14:34:00 +02:00
Alexandre Julliard 6bfcb347bf winex11: Remove X11 locking around simple X calls. 2012-08-14 15:13:08 +02:00
Henri Verbeet 13820b6f94 winex11: Don't set MWM decorations either for fullscreen virtual desktops. 2012-08-13 16:28:50 +02:00
Alexandre Julliard 4b0f27f664 winex11: Get rid of the no longer needed drawable rect in the X11 device. 2012-07-12 16:05:37 -05:00
Alexandre Julliard 1adbfe921b winex11: Don't free a variable that is no longer allocated on the heap. 2012-06-04 12:17:55 +02:00
Alexandre Julliard c2073b7ba2 winex11: Use the create_pixmap_from_image helper to create window icons. 2012-05-15 20:58:39 +02:00
Alexandre Julliard a708448725 winex11: Define an enum to manage the various types of GL device contexts. 2012-05-07 13:10:18 +02:00
Alexandre Julliard fdef173ce0 winex11: Make sure the clip window is created as soon as possible. 2012-02-13 20:52:03 +01:00
Alexandre Julliard abfed909b2 winex11: Move the window resizing support to mouse.c. 2012-02-01 16:42:48 +01:00
Alexandre Julliard a534925a48 winex11: Reset clipping when a fullscreen window is unmapped. 2012-01-31 13:45:04 +01:00
Matteo Bruni b4afbf98cf winex11: Don't put the GL drawable offscreen. 2012-01-25 11:28:02 +01:00
Dmitry Timoshkov c0cf49d50c winex11.drv: Use dialog window type also for owned windows with WS_EX_DLGMODALFRAME style set. 2012-01-19 21:08:51 +01:00
Kusanagi Kouichi f56e1fcf7c winex11.drv: Assign struct. 2012-01-11 17:47:35 +01:00
Alexandre Julliard c1297ac0d8 winex11: Only take managed popups into account when deciding whether to make a window managed. 2011-12-19 20:15:41 +01:00
Alexandre Julliard c4cf90246d winex11: Hardcode the MWM hints for the desktop window. 2011-12-19 20:15:41 +01:00
Alexandre Julliard 5f1f57ce48 winex11: Update MWM hints when the window size changes. 2011-12-16 12:08:08 +01:00
Ulrich Czekalla 392785965f winex11: Avoid grabbing user_section while holding X11DRV_CritSection. 2011-11-28 20:15:18 +01:00
Alexandre Julliard 098b11e995 winex11: Don't allow setting the cursor across processes while clipping. 2011-11-09 14:26:34 +01:00
Alexandre Julliard 2e46c671d6 winex11: Set the desktop window gravity to NorthWest to avoid spurious position changes. 2011-05-12 16:25:50 +02:00
Alexandre Julliard a07b8411fc winex11: Export a couple of helper functions for window rectangles. 2011-05-11 12:09:12 +02:00
Alexandre Julliard f1f223d001 winex11: Release the clip cursor grab when the clipping window loses focus. 2011-04-25 10:49:59 +02:00
Alexandre Julliard 0eb19126e5 winex11: Store a message window with the desktop when the cursor is clipped.
This ensures that the thread can be notified when the clip rectangle is reset.
2011-04-22 17:51:28 +02:00
Alexandre Julliard d2ff461615 winex11: Clip out the top-level windows when repainting the desktop. 2011-04-22 12:16:33 +02:00
Dmitry Timoshkov fd043c5644 winex11.drv: Use dialog window type again for owned popup windows. 2011-04-20 16:29:33 +02:00
Alexandre Julliard 2ed57f9b96 winex11: Make sure the clipping window is initialized in every thread. 2011-04-14 17:13:41 +02:00
Alexandre Julliard 06948ebccf winex11: Update the cursor on the clip window when the pointer grab starts. 2011-04-06 13:10:44 +02:00
Alexandre Julliard ecf217bbe4 winex11: Update the cursor on the clipping window while it's mapped. 2011-04-05 13:36:57 +02:00
Alexandre Julliard 886ae4c348 winex11: Always forward SetCursor to the driver, and limit the frequency of updates on the driver side. 2011-04-05 13:36:57 +02:00
Alexandre Julliard ae2b356361 winex11: Implement cursor clipping using a pointer grab. 2011-04-05 13:36:57 +02:00
Dmitry Timoshkov 5ef58c11ce winex11.drv: Do not use any window types except _NET_WM_WINDOW_TYPE_NORMAL.
Main window of the Atom Zombie Smasher game has WS_DLGFRAME style set,
but Metacity allows making fullscreen ONLY normal windows, so do not
use any window types except _NET_WM_WINDOW_TYPE_NORMAL.
2011-03-29 12:21:22 +02:00
Alexandre Julliard b1af55d551 winex11: Don't unmap off-screen windows on PropertyNotify events. 2011-03-07 15:11:10 +01:00
Alexandre Julliard 94fb0f5935 winex11: Synchronize the mouse cursor in update_mouse_state. 2011-02-24 12:16:54 +01:00
Dmitry Timoshkov 38167e71d1 winex11.drv: Make sure that default clipping region exists before calling ExcludeUpdateRgn(). 2011-02-01 18:14:08 +01:00
Alexandre Julliard 66814d0dd6 winex11: Make the tool window flag take precedence when setting the window type.
This prevents some menus from being marked as dialogs.
2010-12-28 16:35:40 +01:00
Alexandre Julliard 477c085e4d winex11: Potentially update the system tray notification position when any foreign window is moved. 2010-12-15 17:17:39 +01:00
Alexandre Julliard 026d41c504 winex11: Only map the window the first time that WS_VISIBLE is set through WM_SETREDRAW. 2010-12-09 19:45:34 +01:00
Alexandre Julliard 20bc10c354 winex11: Properly forget about a foreign window when it's destroyed through DestroyWindow(). 2010-11-15 20:41:07 +01:00
Alexandre Julliard 5d570706c6 winex11: Create Win32 windows corresponding to all the ancestors of embedded windows.
This is needed to keep track of the embedded window position by
handling ConfigureNotify received by ancestors.
2010-11-08 15:46:49 +01:00
Alexandre Julliard abb559dd7a winex11: Add support for having a drawable associated to non-toplevel windows. 2010-11-08 15:46:34 +01:00
Alexandre Julliard a8063e8b8b winex11: Handle GravityNotify events for non-toplevel windows. 2010-11-08 15:24:00 +01:00
Alexandre Julliard 8f24cd05b1 winex11: Sync the window attributes when switching a window to embedded. 2010-11-05 17:15:34 +01:00
Alexandre Julliard 68f497bdcc winex11: Improve management of the lifetime of embedded windows. 2010-11-02 10:32:40 +01:00
Alexandre Julliard 536fc57091 winex11: Force setting the cursor again on the first mouse event in case the initial setting failed. 2010-09-30 17:51:18 +02:00
Alexandre Julliard 5594c4eba8 winex11: Mirror the window region for RTL windows. 2010-09-27 21:06:38 +02:00
Dmitry Timoshkov 7864ade5a8 winex11.drv: Avoid copying invalid window bits. 2010-09-14 09:43:09 -05:00
Dmitry Timoshkov c912af04de winex11.drv: Avoid copying window bits if the window didn't move. 2010-09-14 09:43:03 -05:00
Alexandre Julliard 7295b6746d user32: Add support for fetching window rectangles relative to various origins. 2010-09-07 14:31:30 +02:00
Alexandre Julliard a4704d3d14 winex11: Sending a move/resize client message to the root requires a SubstructureRedirect mask too. 2010-08-01 20:06:05 +02:00
Dmitry Timoshkov a56df96a0e winex11: Remember last window that had the XIC focus and use it in ToUnicode() to make dead keys work more reliably. 2010-07-26 18:38:31 +02:00
Alexandre Julliard f2f508856b winex11: Set the user time property on top-level windows.
Helps convince some broken window managers to put new windows on top
of the z-order.
2010-06-29 13:28:39 +02:00
Alexandre Julliard 0dd44a3776 winex11: Windows with WS_EX_NOACTIVATE style shouldn't be on the taskbar. 2010-06-01 13:37:48 +02:00
Alexandre Julliard 2db72e9859 winex11: Only unmap windows when the window rect changes to unmapped the first time. 2010-05-28 16:22:26 +02:00
Alexandre Julliard 61e50e15ba winex11: Map zero-size windows and set an empty window region for them. 2010-05-28 16:22:25 +02:00
Alexandre Julliard 81c4b4120d winex11: Set size hints to 1x1 for zero-sized windows. 2010-05-28 16:22:25 +02:00
Alexandre Julliard 8b84d64075 winex11: Set window style to normal for windows with a minimize box.
Some window managers don't allow minimizing dialog windows.
2010-05-28 16:22:25 +02:00
Alexandre Julliard 2cf9cdd3d8 winex11: Unmap zero-size windows also while processing a PropertyNotify event. 2010-05-24 16:41:20 +02:00
Alexandre Julliard 0d84ccbfa1 winex11: Fix a bitmap leak when setting the small icon hints. 2010-05-20 17:37:28 +02:00
Alexandre Julliard 1afd0df7de winex11: Take into account the cursor show count when setting the initial cursor for a window. 2010-05-10 12:33:59 +02:00
Alexandre Julliard 6551553fe6 winex11: Make the cursor window global instead of per-thread, and send it a message when the cursor changes. 2010-04-29 10:19:29 -05:00
Alexandre Julliard 09dc6019b6 winex11: Don't set a hint for the small icon if it has the same size as the large one. 2010-04-22 14:47:57 +02:00
Alexandre Julliard 9ff982f2a8 winex11: Invert the icon mask only after the conversion to ARGB. 2010-04-22 14:16:44 +02:00
Alexandre Julliard eed9c63ac7 winex11: Update the cursor from the thread input status instead of caching it per-thread in x11drv. 2010-04-21 11:07:45 +02:00
Alexandre Julliard f84f939411 winex11: Fix memory leaks in get_bitmap_argb. 2010-04-20 16:21:37 +02:00
Alexandre Julliard a551dfe311 winex11: Add the small icon to the NET_WM_ICON hint. 2010-04-19 17:59:09 +02:00
Alexandre Julliard f0644c6d07 winex11: Generate an alpha channel from the bitmask for icons that don't have one. 2010-04-19 17:54:43 +02:00
Alexandre Julliard 4253120745 winex11: Move creation of an ARGB bitmap for icons to a separate function. 2010-04-19 17:53:24 +02:00
Alexandre Julliard ea1d71c7a4 winex11: Set the NET_WM_ICON hint for 32-bpp icons. 2010-04-16 16:23:33 +02:00
Henri Verbeet 3255b21456 winex11.drv: Allow OpenGL on minimized windows. 2010-04-12 11:38:05 +02:00
Dmitry Timoshkov e35e75b4bf winex11.drv: Do not allow WM actions for windows with WS_DISABLED style set.
Some applications do not expect and could have undefined behaviour (or even
crash) when a not active (and disabled) main window under a dialog popup is
being closed or minimized/maximazed. Most of Window Managers allow that, but
Windows doesn't.
2010-04-07 13:51:21 +02:00
Alexandre Julliard b6ef8a5944 winex11: Don't make the owner window managed if its popup isn't. 2010-03-20 20:16:42 +01:00
Vincent Povirk e4a50e1615 winex11.drv: Use CurrentTime to focus windows if we have no timestamp. 2010-03-18 10:22:59 +01:00
Alexandre Julliard 9cd1ce2510 winex11: Don't try to create the owner window if it belongs to a different thread. 2010-03-01 17:06:19 +01:00
Alexandre Julliard 913cab1353 winex11: Switch owner window to managed when displaying one of its popups. 2010-02-23 12:35:10 +01:00
Alexandre Julliard 391afac66f winex11: Windows that own popups should be managed. 2010-02-23 12:34:19 +01:00
Alexandre Julliard 7b3a00c09e winex11: Make sure that the owner window exists when setting the transient for attribute. 2010-02-23 12:33:01 +01:00
Kusanagi Kouichi 10789142fc winex11.drv: Check XDND version. 2010-02-22 11:55:42 +01:00
Alexandre Julliard bcf88b5885 winex11: Fix the DC rect offset for a released DC. 2010-02-16 12:37:42 +01:00
Alexandre Julliard 08b8325460 winex11: Shape offset must be relative to the window position. 2010-02-08 17:49:47 +01:00
Alexandre Julliard 4c7b8ca524 winex11: Update the window shape offset when the window rect changes. 2010-02-04 17:27:19 +01:00
Alexandre Julliard aa47784130 winex11: Synchronize the shaped flag with the window region before determining the window size. 2010-02-02 20:28:21 +01:00
Alexandre Julliard 00b06dac85 winex11: Don't process ConfigureNotify events that have been superseded by a later configure request. 2010-01-04 17:56:32 +01:00
Vincent Povirk 05f00f4ed8 winex11.drv: Allow windows in a virtual desktop to have X focus. 2009-11-12 14:39:14 +01:00
Dmitry Timoshkov 9dbdd708e3 winex11.drv: Handle WM_DELETE_WINDOW by simulating clicking the caption Close button. 2009-09-09 12:18:28 +02:00
Alexandre Julliard e3720c2810 winex11: Use the Globally Active focus model with take focus. 2009-08-13 18:18:33 +02:00
Alexandre Julliard edebc2b75f winex11: Try to use the correct window rectangle as far as possible at XCreateWindow time. 2009-06-25 12:10:44 +02:00
Alexandre Julliard a4644f126b winex11: Limit window dimensions to 65535 to avoid 16-bit truncation issues. 2009-05-05 15:36:25 +02:00
Andrew Talbot f63ceec432 winex11.drv: Declare some functions static. 2009-01-30 11:43:41 +01:00
Alexandre Julliard 95cf00f30b winex11: Flush the display after releasing the capture to make sure it happens right away. 2009-01-26 15:12:55 +01:00
Vincent Povirk 538cf8b847 winex11: Select StructureNotifyMask input on all windows. 2009-01-10 17:43:11 +01:00
Damjan Jovanovic 3613b15785 winex11: Support the startup notification fd.o spec. 2009-01-07 14:17:46 +01:00
Maarten Lankhorst 0a6459598a user32/winex11.drv: Change all user32 operations to use CDECL. 2008-12-23 13:06:04 +01:00
Alexandre Julliard 7fdadbb377 server: Add functions for conversions between server user handles and pointer-style handles. 2008-12-08 16:58:20 +01:00
Dmitry Timoshkov 15c8206118 winex11.drv: Use the monitor work area to decide whether a window should be made managed. 2008-10-07 12:13:03 +02:00
Alexandre Julliard fb84ba59d9 winex11: Fix SetLayeredWindowAttributes when called on a thread that doesn't have any window. 2008-09-22 12:52:53 +02:00
Alexandre Julliard 3cb23d3455 winex11: Don't try to retrieve the X11 size on ShowWindow for zero-sized windows. 2008-09-17 21:17:11 +02:00
Alexandre Julliard 308476ef2f winex11: Force the X11 size of zero-sized window to always be 1x1. 2008-09-17 21:11:47 +02:00
Alexandre Julliard be3c3a5214 winex11: Driver-side implementation of SetLayeredWindowAttributes.
Based on a patch by Rob Shearman.
2008-09-12 15:54:02 +02:00
Alexandre Julliard 2f11213168 user32: Notify the user driver about window extended style changes too. 2008-09-12 14:55:07 +02:00
Alexandre Julliard 9fab7b458a winex11: Fixed mapping of the move/resize starting point to X11 root coordinates. 2008-09-12 11:03:26 +02:00
Alexandre Julliard 9d45cfde33 winex11: Support setting the window region on windows belonging to other threads. 2008-09-08 15:51:08 +02:00
Alexandre Julliard 370368aace winex11: Moved the X11DRV_WindowMessage function to window.c. 2008-09-08 15:42:24 +02:00
Alexandre Julliard ac40efa911 winex11: Always set the z-order when a window is being made visible. 2008-08-29 13:34:55 +02:00
Alexandre Julliard 31b4061c9b winex11: Fetch the current X window position on ShowWindow resulting from a window manager event.
This ensures that we get the correct size for maximized windows too,
which cannot be done with SetWindowPlacement.
2008-07-31 11:40:49 +02:00
Alexandre Julliard 89a3bd0c15 user32: Split the SetWindowPos driver backend in WindowPosChanging/Changed.
This is needed to allow updating the visible rect before invalidating
the DCEs.
2008-07-02 15:40:10 +02:00
Alexandre Julliard 93a02e7f65 winex11: Don't create a win data structure for HWND_MESSAGE windows. 2008-06-26 16:49:09 +02:00
Alexandre Julliard e7044cb8f8 winex11: Explicitly request creation of the thread display where necessary. 2008-06-26 16:47:42 +02:00
Alexandre Julliard 9d53a1ae2b winex11: Get rid of the explicit colormap management. 2008-06-26 16:21:32 +02:00
Alexandre Julliard 06a1407c13 winex11: Explicitly request creation of the per-thread data where necessary. 2008-06-26 15:08:08 +02:00
Alexandre Julliard fc8c21c259 winex11: Avoid erasing the window when changing the pixel format. 2008-06-18 20:10:56 +02:00
Alexandre Julliard 2d9b38133b winex11: Add support for performing GL calls on a top-level window DC. 2008-05-28 17:52:06 +02:00
Alexandre Julliard ed37174a71 winex11: Make sure that all glX functions are called under the X11 lock. 2008-05-28 17:02:07 +02:00
Alexandre Julliard 30a133fe00 winex11: When re-creating a client window check the new visual against the current one instead of the default one. 2008-05-13 10:43:48 +02:00
Alexandre Julliard b605980bf1 winex11: Create a dummy parent window for composite child windows to avoid using the root. 2008-05-12 19:37:57 +02:00
Alexandre Julliard 6e9dea8a27 winex11: Create all the GL drawables using the gdi_display to avoid synchronization issues. 2008-05-12 19:37:54 +02:00
Andrew Talbot 5156219a1c winex11.drv: Remove unused variables. 2008-05-02 16:08:15 +02:00
Alexandre Julliard 6b9517a70a winex11: Only unmap a window when explicitly hidden, not just when WS_VISIBLE is cleared. 2008-05-01 18:11:26 +02:00
Alexandre Julliard 8a5f578223 winex11: Ignore the specified owner if it's a zero-size window.
Go back to not mapping zero-size windows.
2008-05-01 18:11:26 +02:00
Alexandre Julliard 2bbf00ed08 winex11: Don't put window manager decorations on shaped windows. 2008-04-29 12:46:16 +02:00
Alexandre Julliard 1f99d80c06 winex11: Don't force tool windows to unmanaged mode.
The detection algorithm should be good enough for that case now.
2008-04-25 14:26:52 +02:00
Roderick Colenbrander f0307d9366 wgl: Add a wine specific WGL extension which allows you to change the pixel format multiple times. 2008-04-24 12:32:38 +02:00
Alexandre Julliard bbd32aacff winex11: Don't allow changing the X11 size of a maximized window. 2008-04-23 15:34:07 +02:00
Alexandre Julliard 6ba06fa7af winex11: Make sure that the window gravity is always set. 2008-04-23 15:33:29 +02:00
Alexandre Julliard 855308fd95 winex11: Merged the contents of winpos.c into window.c. 2008-04-23 15:32:58 +02:00
Alexandre Julliard 0bbadeb69b winex11: Set type to dialog for owned popup windows. 2008-04-21 20:33:18 +02:00
Alexandre Julliard 9727aa8123 winex11: Use SetWindowPos to invalidate DCEs when changing the pixel format. 2008-04-21 20:32:22 +02:00
Alexandre Julliard 24dbaa0856 winex11: Moved the WM_SYSCOMMAND handling to window.c. 2008-04-17 16:13:34 +02:00
Dmitry Timoshkov 15c0bcb3d8 winex11.drv: Map zero-sized windows but don't add WM decoration to them. 2008-04-17 12:41:18 +02:00
Alexandre Julliard 18f4fb9883 winex11: Fix the type hint for the desktop window. 2008-04-14 13:27:38 +02:00
Alexandre Julliard 9bf9c0b7ec winex11: Make WS_EX_APPWINDOW windows have normal type. 2008-04-14 13:27:19 +02:00
Matthew D'Asaro 4217fcb187 winex11: Add registry option to let wine decorate windows. 2008-04-11 13:11:17 +02:00
Alexandre Julliard 70ef99e5e1 winex11: Make sure to flush painting operations before moving a window. 2008-04-10 14:47:19 +02:00
Kusanagi Kouichi 185157cb6e winex11: Connect to XIM server dynamically. 2008-04-10 12:45:56 +02:00