summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/macterm.c31
2 files changed, 36 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 1cdabd1fb1e..144e4890e8e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2004-06-28 Steven Tamm <tamm@Steven-Tamms-Computer.local>
+
+ * macterm.c (XTread_socket): Correctly set the frame position
+ after the window is moved.
+
2004-06-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* gtkutil.c (xg_get_image_for_pixmap): Call g_object_unref on
diff --git a/src/macterm.c b/src/macterm.c
index 55ae1b35d83..bef37addaa6 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -8084,6 +8084,25 @@ XTread_socket (sd, expected, hold_quit)
if (!mac_convert_event_ref (eventRef, &er))
switch (GetEventClass (eventRef))
{
+ case kEventClassWindow:
+ if (GetEventKind (eventRef) == kEventWindowBoundsChanged)
+ {
+ WindowPtr window_ptr;
+ GetEventParameter(eventRef, kEventParamDirectObject,
+ typeWindowRef, NULL, sizeof(WindowPtr),
+ NULL, &window_ptr);
+ f = mac_window_to_frame (window_ptr);
+ if (f && !f->async_iconified)
+ {
+ int x, y;
+
+ x_real_positions (f, &x, &y);
+ f->left_pos = x;
+ f->top_pos = y;
+ }
+ SendEventToEventTarget (eventRef, toolbox_dispatcher);
+ }
+ break;
case kEventClassMouse:
if (GetEventKind (eventRef) == kEventMouseWheelMoved)
{
@@ -8306,6 +8325,18 @@ XTread_socket (sd, expected, hold_quit)
#else /* not TARGET_API_MAC_CARBON */
DragWindow (window_ptr, er.where, &qd.screenBits.bounds);
#endif /* not TARGET_API_MAC_CARBON */
+ /* Update the frame parameters. */
+ {
+ struct frame *f = mac_window_to_frame (window_ptr);
+ if (f && !f->async_iconified)
+ {
+ int x, y;
+
+ x_real_positions (f, &x, &y);
+ f->left_pos = x;
+ f->top_pos = y;
+ }
+ }
break;
case inGoAway: