xserver-multidpi/hw/xwin
Oliver Schmidt 3b4d472b72 hw/xwin: Minimize redraw events after resizing/moving windows in multiwindow mode
In multiwindow mode the modal moving/resizing of windows causes a lot of redraw
events to be sent to the X clients after the user releases the mouse button.
During the moving/resizing client windows are not redrawn as long as the mouse
button is pressed, but all redraw/resizing events are queued and executed step
after step after the moving/resizing ends.

Some clients collect and combine multiple redraw or resizing events, other
clients (e.g. xterm) simply execute each redraw or sizing event.

The enclosed patch minimizes the events for clients to only one event after the
user releases the mouse button to end the moving/resizing. This improves the
user experience and reduces strange screen flickerings, especially on slow
platforms.

The enclosed patch modifies winmultiwindowwndproc.c such that the windows events
WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE that are sent by Windows when the modal
window resizing/moving begins or ends are considered. Only after WM_EXITSIZEMOVE
is the redraw/resizing executed.

Signed-off-by: Oliver Schmidt <oschmidt-mailinglists@gmx.de>
Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
2014-03-22 18:56:38 +00:00
..
glx hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
man hw/xwin: Add '@<WM_CLIENT_MACHINE>' to window name when it's useful to do so 2014-03-22 18:55:47 +00:00
.gitignore XWin: build XWin man pages using XORG_MANPAGE_SECTIONS 2011-01-18 15:10:21 -08:00
ddraw.h hw/xwin: Fix for MinGW-w64 DirectDraw headers 2012-11-28 14:44:14 +00:00
InitInput.c hw/xwin: Use AllocDevicePair() 2014-03-22 17:16:54 +00:00
InitOutput.c hw/xwin: Add '@<WM_CLIENT_MACHINE>' to window name when it's useful to do so 2014-03-22 18:55:47 +00:00
Makefile.am hw/xwin/glx: Rewrite WGL wrappers after Xserver conversion to direct GL dispatch 2013-12-10 17:00:06 +00:00
propertystore.h hw/xwin: Add correct taskbar grouping of X windows on Windows 7 2012-11-27 16:08:22 +00:00
system.XWinrc Cygwin/X: Tidy up system.Xwinrc 2010-02-05 19:15:04 +00:00
win.h hw/xwin: Remove prototype for non-existent winMWExtWMUpdateIcon() 2014-03-22 17:16:56 +00:00
winallpriv.c hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
winauth.c hw/xwin: Fix const discarded warning in winGenerateAuthorization() 2014-03-22 17:16:38 +00:00
winblock.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
winclip.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winclipboard.h hw/xwin: Remove prototype for non-existent winDeinitClipboard() 2013-08-30 12:59:00 +01:00
winclipboardinit.c hw/xwin: Fix typo in comment 2014-03-03 14:32:06 +00:00
winclipboardtextconv.c hw/xwin: Use char strings in winClipboardUNIXtoDOS for consistency with the rest of the clipboard code 2012-10-16 22:29:50 +01:00
winclipboardthread.c hw/xwin: Remove obsolete WIN_XEVENTS_SHUTDOWN 2013-07-23 23:59:37 +01:00
winclipboardwndproc.c hw/xwin: Remove unused extern g_fUseUnicode from winclipboardwndproc.c 2013-08-30 12:59:06 +01:00
winclipboardwrappers.c hw/xwin: Remove unused externs from winclipboardwrappers.c 2013-08-30 12:58:58 +01:00
winclipboardxevents.c hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
wincmap.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
winconfig.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
winconfig.h Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
wincreatewnd.c hw/xwin: Bug fixes for screen sizing when the screen window is on a non-primary monitor 2012-07-16 13:54:15 +01:00
wincursor.c hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
windialogs.c hw/xwin: Fix uses of CreateDialogParam() for 64-bit builds 2013-06-10 15:21:14 +01:00
winengine.c Fix formatting of address operators 2012-12-05 18:09:48 -06:00
winerror.c hw/xwin: Show any fatal error message 2012-11-27 13:48:44 +00:00
winfillsp.c hw/xwin: Fix numerous 64-bit format/type cast issues with debug printing of pointers 2013-07-23 23:59:44 +01:00
winfont.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
wingc.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
wingetsp.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winglobals.c hw/xwin: Add '@<WM_CLIENT_MACHINE>' to window name when it's useful to do so 2014-03-22 18:55:47 +00:00
winglobals.h hw/xwin: Add '@<WM_CLIENT_MACHINE>' to window name when it's useful to do so 2014-03-22 18:55:47 +00:00
winkeybd.c hw/xwin: Silence bell when volume is zero 2014-03-03 14:32:30 +00:00
winkeybd.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winkeyhook.c hw/xwin: Remove a pointless OS version check in winInstallKeyboardHookLL() 2012-07-16 13:56:54 +01:00
winkeynames.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winlayouts.h hw/xwin: Fix warning about discarding const in initializing winKBLayouts 2012-10-16 22:29:49 +01:00
winmessages.h hw/xwin: Handle WM_MOUSEHWHEEL 2013-07-23 23:59:27 +01:00
winmisc.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winmonitors.c hw/xwin: Fix using index as a formal parameter in winmonitors.c shadows index() 2012-10-16 21:22:40 +01:00
winmonitors.h hw/xwin: Align parameter names in prototypes with definition 2014-03-03 14:31:17 +00:00
winmouse.c hw/xwin: Handle WM_MOUSEHWHEEL 2013-07-23 23:59:27 +01:00
winms.h hw/xwin: Fix for MinGW-w64 DirectDraw headers 2012-11-28 14:44:14 +00:00
winmsg.c Fix formatting of address operators 2012-12-05 18:09:48 -06:00
winmsg.h hw/xwin: Use X_ATTRIBUTE_PRINTF where suggested for winmsg.c 2012-10-16 22:29:53 +01:00
winmsgwindow.c hw/xwin: Improve WM_ENDSESSION handling using separate messaging window thread 2013-07-23 23:58:50 +01:00
winmultiwindowclass.c hw/xwin: Fix possible crash in winMultiWindowGetClassHint 2013-07-23 23:59:41 +01:00
winmultiwindowclass.h hw/xwin: winMultiWindowGetTransientFor() returns an XID not a WindowPtr 2013-06-10 15:48:08 +01:00
winmultiwindowicons.c hw/xwin: Avoid a null dereference if CreateDIBSection() fails in NetWMToWinIconAlpha() 2013-07-23 23:59:31 +01:00
winmultiwindowicons.h hw/xwin: Make winOverrideIcon() thread-safe for icon data access 2012-08-03 22:47:42 +01:00
winmultiwindowshape.c Fix formatting of address operators 2012-12-05 18:09:48 -06:00
winmultiwindowwindow.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
winmultiwindowwm.c hw/xwin: Add '@<WM_CLIENT_MACHINE>' to window name when it's useful to do so 2014-03-22 18:55:47 +00:00
winmultiwindowwndproc.c hw/xwin: Minimize redraw events after resizing/moving windows in multiwindow mode 2014-03-22 18:56:38 +00:00
winnativegdi.c hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
winpfbdd.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
winpixmap.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
winpolyline.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winprefs.c hw/xwin: Correct winprefs.c function signatures for x64. 2013-08-30 12:56:35 +01:00
winprefs.h hw/xwin: Correct winprefs.c function signatures for x64. 2013-08-30 12:56:35 +01:00
winprefslex.l hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
winprefsyacc.y hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
winprocarg.c hw/xwin: Add '@<WM_CLIENT_MACHINE>' to window name when it's useful to do so 2014-03-22 18:55:47 +00:00
winrandr.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winresource.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winrop.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winscrinit.c hw/xwin: Fix numerous 64-bit format/type cast issues with debug printing of pointers 2013-07-23 23:59:44 +01:00
winSetAppUserModelID.c hw/xwin: Fix MinGW build of winSetAppModelID.c 2013-01-10 15:33:13 +00:00
winsetsp.c hw/xwin: Fix an issue in winSetSpansNativeGDI() identifed by -Warray-bounds 2013-08-30 12:58:51 +01:00
winshaddd.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
winshadddnl.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
winshadgdi.c hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
wintaskbar.c hw/xwin: Add a simple interface to the ITaskbarList COM interface 2012-11-27 16:09:12 +00:00
wintrayicon.c hw/xwin: Correct winprefs.c function signatures for x64. 2013-08-30 12:56:35 +01:00
winvalargs.c hw/xwin: Remove unused variables in winvalargs.c 2012-10-17 13:18:17 +01:00
winvideo.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
winwakeup.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
winwin32rootless.c hw/xwin: Remove an unneeded include 2014-03-22 17:16:48 +00:00
winwin32rootlesswindow.c hw/xwin: Fix numerous 64-bit format/type cast issues with debug printing of pointers 2013-07-23 23:59:44 +01:00
winwin32rootlesswndproc.c hw/xwin: Fix numerous 64-bit format/type cast issues with debug printing of pointers 2013-07-23 23:59:44 +01:00
winwindow.c hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
winwindow.h hw/xwin: Improve WM_ENDSESSION handling using separate messaging window thread 2013-07-23 23:58:50 +01:00
winwindowswm.c hw/xwin: Remove unnecessary casts from malloc/realloc/calloc calls 2014-03-03 14:32:57 +00:00
winwndproc.c hw/xwin: Use boolean AND rather than bitwise AND in WIN_POLLING_MOUSE_TIMER_ID 2014-03-22 17:16:46 +00:00
X.ico Cygwin/X: Update the native icon to one based on the X.Org logo 2008-12-15 12:42:10 +00:00
XWin.exe.manifest hw/xwin: Update manifest to target all architectures, not just x86 2013-06-10 15:48:34 +01:00
XWin.rc Cygwin/X: Left-justify website link in About box 2011-06-29 19:14:38 +01:00