fvwm2/fvwm-icon-440d675d14412ec0a123d4c977534ab688229148.patch
Michael Vetter 136796c6ef Accepting request 417830 from home:WernerFink:branches:X11:windowmanagers
- Update to 2.6.6
  * fvwm features:
  - Support for Russian from Ivan Gayevskiy.
  - EnvMatch supports infostore variables.
  - The option "forget" to the Maximize command allows to
    unmaximize a window without changing its size and position.
  - Windows shaded to a corner (NW, NE, SW, SE) are reduced to a
    small square.
  - New option "!raise" to the WarpToWindow command.
  - The new extended variables $[wa.x], $[wa.y], $[wa.width],
    $[wa.height] can be used to get the geometry of the EWMH
    working area, and $[dwa.x], $[dwa.y], $[dwa.width],
    $[dwa.height] can be used to get the geometry of the EWMH
    dynamic working area.
  - The Resize commands accept "wa" or "da" as a suffix of the
    width or height value.  If present, the value is a percentage
    of the width or height of the EWMH working area or the EWMH
    dynamic working area.
  - Fvwm is much more resilient against applications that flood the
    window manager with repeated events.
  * New module features:
  - FvwmForm supports separator lines.
  - New FvwmIconMan options:
      IconAndSelectButton
      IconAndSelectColorset
  * Bug fixes:
  - Provide a wrapper for the deprecation of XKeycodeToKeysym and
    use XkbKeycodeToKeysym() where appropriate.
  - fvwm-menu-desktop is re-written and provides better support of
    the XDG menu specification.

OBS-URL: https://build.opensuse.org/request/show/417830
OBS-URL: https://build.opensuse.org/package/show/X11:windowmanagers/fvwm2?expand=0&rev=33
2016-08-08 12:44:57 +00:00

81 lines
2.3 KiB
Diff

From 65bfccfd9ed0cac95088d612fdcdf3edf4c3b23d Mon Sep 17 00:00:00 2001
From: Thomas Adam <thomas@fvwm.org>
Date: Thu, 4 Aug 2016 11:38:52 +0100
Subject: [PATCH] Expose: don't flush accumulated events
When dealing with Expose events, don't ever flush the accumulated ones; the
handling of the queue here is incorrect, and ultimately gets addressed during
other operations.
This should help fix the problem of ParentRelative icon pixmaps from
corrupting other icons, etc.
---
fvwm/events.c | 13 +------------
fvwm/icons.c | 15 ++++-----------
fvwm/menus.c | 1 -
3 files changed, 5 insertions(+), 24 deletions(-)
diff --git a/fvwm/events.c b/fvwm/events.c
index 3ea69bb..1d5bb64 100644
--- a/fvwm/events.c
+++ b/fvwm/events.c
@@ -2412,18 +2412,7 @@ void HandleExpose(const evh_args_t *ea)
FvwmWindow * const fw = ea->exc->w.fw;
e = *ea->exc->x.etrigger;
-#if 0
- /* This doesn't work well. Sometimes, the expose count is zero although
- * dozens of expose events are pending. This happens all the time
- * during a shading animation. Simply flush expose events
- * unconditionally. */
- if (e.xexpose.count != 0)
- {
- flush_accumulate_expose(e.xexpose.window, &e);
- }
-#else
- flush_accumulate_expose(e.xexpose.window, &e);
-#endif
+
if (fw == NULL)
{
return;
diff --git a/fvwm/icons.c b/fvwm/icons.c
index a58a019..d23f08d 100644
--- a/fvwm/icons.c
+++ b/fvwm/icons.c
@@ -1366,18 +1366,11 @@ void DrawIconWindow(
if (draw_title && FW_W_ICON_TITLE(fw) != None)
{
- if (pev && pev->xexpose.window != FW_W_ICON_TITLE(fw))
+ if (pev && pev->xexpose.window == FW_W_ICON_TITLE(fw))
{
- XEvent e;
- if (FCheckTypedWindowEvent(
- dpy, FW_W_ICON_TITLE(fw), Expose, &e))
- {
- flush_accumulate_expose(
- FW_W_ICON_TITLE(fw), &e);
- DrawIconTitleWindow(
- fw, &e, BackColor, Shadow, Relief, cs,
- title_cs);
- }
+ DrawIconTitleWindow(
+ fw, pev, BackColor, Shadow, Relief, cs,
+ title_cs);
}
else
{
diff --git a/fvwm/menus.c b/fvwm/menus.c
index 885eada..2c49195 100644
--- a/fvwm/menus.c
+++ b/fvwm/menus.c
@@ -6239,7 +6239,6 @@ Bool menu_expose(XEvent *event, FvwmWindow *fw)
dpy, event->xany.window, MenuContext, (caddr_t *)&mr) !=
XCNOENT))
{
- flush_accumulate_expose(event->xany.window, event);
paint_menu(mr, event, fw);
return True;