*** rel-Aug.10.90/ChangeLog Sat Aug 11 01:54:18 1990 --- ChangeLog Thu Aug 23 15:08:28 1990 *************** *** 1,3 **** --- 1,8 ---- + Mon Aug 19 15:06:52 1990 Nick Williams (njw at hal-2000) + + * made desktop ICCM compliant - sends ConfigureNotify after + it moves any windows. + Tue Jun 26 12:24:14 1990 Dave Edmondson (dme at mr-happy) * removed the titlebutton previously used to nail/unnail a window. *** menus.c.orig Sun Aug 19 17:38:17 1990 --- menus.c Sun Aug 19 17:41:27 1990 *************** *** 2800,2805 **** --- 2800,2808 ---- XMoveWindow(dpy, Tmp_win->frame, Tmp_win->frame_x, Tmp_win->frame_y); + /* And let the window know that it's been shifted */ + SendConfigureNotify(Tmp_win, Tmp_win->frame_x, + Tmp_win->frame_y); } Scr->VirtualDesktopX = x; *** resize.c.orig Wed Jul 4 18:34:10 1990 --- resize.c Sun Aug 19 17:27:15 1990 *************** *** 791,814 **** #endif if (sendEvent) ! { ! client_event.type = ConfigureNotify; ! client_event.xconfigure.display = dpy; ! client_event.xconfigure.event = tmp_win->w; ! client_event.xconfigure.window = tmp_win->w; ! client_event.xconfigure.x = (x + tmp_win->frame_bw - tmp_win->old_bw); ! client_event.xconfigure.y = (y + tmp_win->frame_bw + ! tmp_win->title_height - tmp_win->old_bw); ! client_event.xconfigure.width = tmp_win->frame_width; ! client_event.xconfigure.height = tmp_win->frame_height - ! tmp_win->title_height; ! client_event.xconfigure.border_width = tmp_win->old_bw; ! /* Real ConfigureNotify events say we're above title window, so ... */ ! /* what if we don't have a title ????? */ ! client_event.xconfigure.above = tmp_win->frame; ! client_event.xconfigure.override_redirect = False; ! XSendEvent(dpy, tmp_win->w, False, StructureNotifyMask, &client_event); ! } } --- 791,798 ---- #endif if (sendEvent) ! SendConfigureNotify(tmp_win, x, y); ! } *** events.c.orig Sun Aug 19 17:28:02 1990 --- events.c Sun Aug 19 17:31:04 1990 *************** *** 2267,2272 **** --- 2267,2301 ---- SetupWindow (Tmp_win, x, y, width, height, bw); } + /* Added by njw, Aug 19 1990. */ + /* This is needed for virtual desktop to notify windows that they've + * been shifted around + */ + void SendConfigureNotify(tmp_win, x, y) + TwmWindow *tmp_win; + int x, y; + { + XEvent client_event; + + client_event.type = ConfigureNotify; + client_event.xconfigure.display = dpy; + client_event.xconfigure.event = tmp_win->w; + client_event.xconfigure.window = tmp_win->w; + client_event.xconfigure.x = (x + tmp_win->frame_bw - tmp_win->old_bw); + client_event.xconfigure.y = (y + tmp_win->frame_bw + + tmp_win->title_height - tmp_win->old_bw); + client_event.xconfigure.width = tmp_win->frame_width; + client_event.xconfigure.height = tmp_win->frame_height - + tmp_win->title_height; + client_event.xconfigure.border_width = tmp_win->old_bw; + /* Real ConfigureNotify events say we're above title window, so ... */ + /* what if we don't have a title ????? */ + client_event.xconfigure.above = tmp_win->frame; + client_event.xconfigure.override_redirect = False; + XSendEvent(dpy, tmp_win->w, False, StructureNotifyMask, &client_event); + } + + #ifdef SHAPE /*********************************************************************** * *** events.h.orig Sun Aug 19 17:36:03 1990 --- events.h Sun Aug 19 17:36:46 1990 *************** *** 60,65 **** --- 60,66 ---- extern void HandleEnterNotify(); extern void HandleLeaveNotify(); extern void HandleConfigureRequest(); + extern void SendConfigureNotify(); extern void HandleClientMessage(); extern void HandlePropertyNotify(); extern void HandleKeyPress(); *** desktop.c.orig Sat Aug 11 01:54:42 1990 --- desktop.c Sun Aug 19 17:52:43 1990 *************** *** 317,322 **** --- 317,327 ---- XRaiseWindow(dpy, Tmp_win->VirtualDesktopDisplayWindow); } + /* And let the window know about it's move */ + /* Added njw Aug 19, 1990 */ + SendConfigureNotify(Tmp_win, Tmp_win->frame_x, + Tmp_win->frame_y); + moving_window = None; return; }