summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--src/events.c56
-rw-r--r--src/manage.c4
3 files changed, 38 insertions, 29 deletions
diff --git a/ChangeLog b/ChangeLog
index 6fc99a6..86c6f97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2002-01-23 Shawn <sabetts@vcn.bc.ca>
+
+ * src/events.c (configure_notify): remove function
+ (delegate_event): add ConfigureNotify to the ignored events list.
+
+ * src/manage.c (update_normal_hints): improve debugging output.
+
2002-01-17 Gergely Nagy <algernon@debian.org>
* debian/changelog: update for a new snapshot
diff --git a/src/events.c b/src/events.c
index a289d93..7127669 100644
--- a/src/events.c
+++ b/src/events.c
@@ -216,25 +216,6 @@ destroy_window (XDestroyWindowEvent *ev)
}
static void
-configure_notify (XConfigureEvent *e)
-{
- rp_window *win;
-
- win = find_window (e->window);
- if (win && win->state == NormalState)
- {
- if (win->height != e->height
- || win->width != e->width
- || win->border != e->border_width
- || win->x != e->x
- || win->y != e->y)
- /* The notify event was generated from a granted configure
- request which means we must re-maximize the window. */
- maximize (win);
- }
-}
-
-static void
configure_request (XConfigureRequestEvent *e)
{
int border;
@@ -314,10 +295,33 @@ configure_request (XConfigureRequestEvent *e)
if (e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth|CWHeight))
{
- /* Always grant it whatever it likes. We will catch it the
- ConfigureNotify event and maximize the window there. */
- XConfigureWindow (dpy, win->w, e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth|CWHeight),
- &changes);
+ if (win->state == NormalState)
+ {
+ /* Draw the hardline. Visible windows always maximize. */
+ maximize (win);
+ }
+ else
+ {
+ /* The window isn't visible so grant it whatever it
+ likes. */
+ XConfigureWindow (dpy, win->w,
+ e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth|CWHeight),
+ &changes);
+
+ /* Update the window's structure. */
+ if (e->value_mask & CWX)
+ win->x = changes.x;
+ if (e->value_mask & CWY)
+ win->y = changes.y;
+ if (e->value_mask & CWBorderWidth)
+ win->border = border;
+ if (e->value_mask & CWWidth)
+ win->width = changes.width;
+ if (e->value_mask & CWHeight)
+ win->height = changes.height;
+ }
+
+ /* This is required to be ICCCM compliant. */
send_configure (win);
}
}
@@ -743,16 +747,12 @@ delegate_event (XEvent *ev)
focus_change (&ev->xfocus);
break;
- case ConfigureNotify:
- PRINT_DEBUG ("--- Handling ConfigureNotify ---\n");
- configure_notify (&ev->xconfigure);
- break;
-
case MappingNotify:
PRINT_DEBUG ("--- Handling MappingNotify ---\n");
mapping_notify( &ev->xmapping );
break;
+ case ConfigureNotify:
case MapNotify:
case Expose:
case MotionNotify:
diff --git a/src/manage.c b/src/manage.c
index 20356c3..f1ac058 100644
--- a/src/manage.c
+++ b/src/manage.c
@@ -84,7 +84,9 @@ update_normal_hints (rp_window *win)
PRINT_DEBUG ("maxx: %d maxy: %d ", win->hints->max_width, win->hints->max_height);
if (win->hints->flags & PResizeInc)
- PRINT_DEBUG ("incx: %d incy: %d\n", win->hints->width_inc, win->hints->height_inc);
+ PRINT_DEBUG ("incx: %d incy: %d", win->hints->width_inc, win->hints->height_inc);
+
+ PRINT_DEBUG ("\n");
#endif
}