Go to file
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
composite composite: Remove duplicate window pixmap fetch 2014-01-22 19:56:32 -08:00
config Merge remote-tracking branch 'whot/for-keith' 2014-03-11 22:04:36 -07:00
damageext Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
dbe Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
dix xkb: push locked modifier state down to attached slave devices 2014-03-11 17:43:34 +10:00
doc doc: Update documentation about Windows platforms support a bit 2012-10-29 12:21:14 +00:00
dri3 Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
exa exa: Fix -Wshadow warnings 2014-01-22 19:56:32 -08:00
fb Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
glamor glamor: Move up glamor_priv->flags assignment in glamor_init() 2014-03-17 14:43:28 -07:00
glx glx: Clear new FBConfig attributes to 0 by default. 2014-03-10 13:57:21 -07:00
hw hw/xwin: Minimize redraw events after resizing/moving windows in multiwindow mode 2014-03-22 18:56:38 +00:00
include xkb: add XkbLoadKeymapFromString 2014-03-19 08:37:15 +10:00
m4 xorg-tls: fix warning, replace AC_TRY_COMPILE with AC_COMPILE_IFELSE 2014-01-22 11:18:42 -08:00
man Correct description of -displayfd option in man page. 2012-10-11 12:53:57 +01:00
mi mi: fix printf warning about size_t format specifier 2014-02-10 07:02:34 +10:00
miext sync: Add a header include necessary to use misyncstr.h 2014-03-17 14:30:45 -07:00
os gcc 4.2.1 doesn't support #pragma GCC diagnostic ignored 2014-02-24 16:30:07 -08:00
present Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
pseudoramiX pseudoramiX: Add _X_ATTRIBUTE_PRINTF attributes to debug functions. 2014-01-27 11:38:34 -08:00
randr V2: Add check for link from output to crtc before optimizing out a CrtcSet call 2014-02-24 16:33:35 -08:00
record Clean up a few function prototypes to not place formals in /**/ 2014-01-12 10:24:12 -08:00
render Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
test hashtabletest: Fix warning: format ‘%ld’ expects argument of type ... 2014-03-10 09:06:57 +01:00
Xext sync: Avoid ridiculously long timeouts 2014-02-09 10:41:18 +01:00
xfixes Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
Xi xkb: Repurpose XkbCopyDeviceKeymap to apply a given keymap to a device 2014-03-12 16:43:23 +10:00
xkb xkb: add XkbLoadKeymapFromString 2014-03-19 08:37:15 +10:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00
autogen.sh autogen.sh: Honor NOCONFIGURE=1 2012-10-19 13:12:33 +10:00
configure.ac Merge remote-tracking branch 'jwrdecoede/for-keith' 2014-03-07 22:07:19 -08:00
COPYING Shadow: Switch the Amiga/Atari bitplane code to the canonical X.Org license 2013-05-14 14:41:00 -07:00
devbook.am devbook.am: maintenance update from docbook.am 2011-09-21 14:07:52 -07:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
Makefile.am DIST_SUBDIRS needs to include glamor, even if it isn't built 2014-02-13 15:25:56 -08:00
manpages.am Xdmx.man: Show actual configured XKB defaults instead of old hardcoded values 2011-06-21 17:54:14 -07:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: clarify documentation 2012-11-05 13:24:57 -06:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage