summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--ChangeLog.pre-2-1017
-rw-r--r--ChangeLog.pre-2-217
-rw-r--r--ChangeLog.pre-2-417
-rw-r--r--ChangeLog.pre-2-617
-rw-r--r--ChangeLog.pre-2-817
-rw-r--r--gtk/gtkplug.c30
-rw-r--r--gtk/gtksocket.c103
-rw-r--r--gtk/gtkwindow.c90
9 files changed, 159 insertions, 166 deletions
diff --git a/ChangeLog b/ChangeLog
index db3da96bb..0a41265ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkwindow.c (gtk_window_configure_event): Only
+ optimize out the full configure handling if we got
+ a gratuitous configure event(configure_request_count == 0)
+ and the size didn't change.
+
+ * gtk/gtkwindow.c (gtk_window_move_resize): Use
+ g_message(), not g_print() for debug spew.b
+
+ * gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
+ the old and new focus widgets for the scope of
+ the function.
+
+ * gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
+ bits of old code.
+
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index db3da96bb..0a41265ca 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,20 @@
+Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkwindow.c (gtk_window_configure_event): Only
+ optimize out the full configure handling if we got
+ a gratuitous configure event(configure_request_count == 0)
+ and the size didn't change.
+
+ * gtk/gtkwindow.c (gtk_window_move_resize): Use
+ g_message(), not g_print() for debug spew.b
+
+ * gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
+ the old and new focus widgets for the scope of
+ the function.
+
+ * gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
+ bits of old code.
+
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index db3da96bb..0a41265ca 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,20 @@
+Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkwindow.c (gtk_window_configure_event): Only
+ optimize out the full configure handling if we got
+ a gratuitous configure event(configure_request_count == 0)
+ and the size didn't change.
+
+ * gtk/gtkwindow.c (gtk_window_move_resize): Use
+ g_message(), not g_print() for debug spew.b
+
+ * gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
+ the old and new focus widgets for the scope of
+ the function.
+
+ * gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
+ bits of old code.
+
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index db3da96bb..0a41265ca 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,20 @@
+Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkwindow.c (gtk_window_configure_event): Only
+ optimize out the full configure handling if we got
+ a gratuitous configure event(configure_request_count == 0)
+ and the size didn't change.
+
+ * gtk/gtkwindow.c (gtk_window_move_resize): Use
+ g_message(), not g_print() for debug spew.b
+
+ * gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
+ the old and new focus widgets for the scope of
+ the function.
+
+ * gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
+ bits of old code.
+
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index db3da96bb..0a41265ca 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,20 @@
+Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkwindow.c (gtk_window_configure_event): Only
+ optimize out the full configure handling if we got
+ a gratuitous configure event(configure_request_count == 0)
+ and the size didn't change.
+
+ * gtk/gtkwindow.c (gtk_window_move_resize): Use
+ g_message(), not g_print() for debug spew.b
+
+ * gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
+ the old and new focus widgets for the scope of
+ the function.
+
+ * gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
+ bits of old code.
+
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index db3da96bb..0a41265ca 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,20 @@
+Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkwindow.c (gtk_window_configure_event): Only
+ optimize out the full configure handling if we got
+ a gratuitous configure event(configure_request_count == 0)
+ and the size didn't change.
+
+ * gtk/gtkwindow.c (gtk_window_move_resize): Use
+ g_message(), not g_print() for debug spew.b
+
+ * gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
+ the old and new focus widgets for the scope of
+ the function.
+
+ * gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
+ bits of old code.
+
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
diff --git a/gtk/gtkplug.c b/gtk/gtkplug.c
index 918327a21..fc3b66a82 100644
--- a/gtk/gtkplug.c
+++ b/gtk/gtkplug.c
@@ -681,23 +681,6 @@ gtk_plug_set_focus (GtkWindow *window,
if (focus && !window->has_focus)
{
-#if 0
- XEvent xevent;
-
- xevent.xfocus.type = FocusIn;
- xevent.xfocus.display = GDK_WINDOW_XDISPLAY (plug->socket_window);
- xevent.xfocus.window = GDK_WINDOW_XWINDOW (plug->socket_window);
- xevent.xfocus.mode = EMBEDDED_APP_WANTS_FOCUS;
- xevent.xfocus.detail = FALSE; /* Don't force */
-
- gdk_error_trap_push ();
- XSendEvent (GDK_DISPLAY (),
- GDK_WINDOW_XWINDOW (plug->socket_window),
- False, NoEventMask, &xevent);
- gdk_display_sync (gdk_drawable_get_display (plug->socket_window));
- gdk_error_trap_pop ();
-#endif
-
send_xembed_message (plug, XEMBED_REQUEST_FOCUS, 0, 0, 0,
gtk_get_current_event_time ());
}
@@ -862,19 +845,6 @@ gtk_plug_focus (GtkWidget *widget,
send_xembed_message (plug, message, 0, 0, 0,
gtk_get_current_event_time ());
-
-#if 0
- gtk_window_set_focus (GTK_WINDOW (widget), NULL);
-
- gdk_error_trap_push ();
- XSetInputFocus (GDK_WINDOW_XDISPLAY (plug->socket_window),
- GDK_WINDOW_XWINDOW (plug->socket_window),
- RevertToParent, event->time);
- gdk_display_sync (gdk_drawable_get_display (plug->socket_window));
- gdk_error_trap_pop ();
-
- gtk_plug_forward_key_press (plug, event);
-#endif
}
}
diff --git a/gtk/gtksocket.c b/gtk/gtksocket.c
index 14cfbd6c9..7496ef01c 100644
--- a/gtk/gtksocket.c
+++ b/gtk/gtksocket.c
@@ -785,20 +785,6 @@ static gboolean
gtk_socket_focus_out_event (GtkWidget *widget, GdkEventFocus *event)
{
GtkSocket *socket = GTK_SOCKET (widget);
-
-#if 0
- GtkWidget *toplevel;
- toplevel = gtk_widget_get_toplevel (widget);
-
- if (toplevel && GTK_IS_WINDOW (toplevel))
- {
- XSetInputFocus (GDK_WINDOW_XDISPLAY (toplevel->window),
- GDK_WINDOW_XWINDOW (toplevel->window),
- RevertToParent, CurrentTime); /* FIXME? */
- }
-
-#endif
-
if (socket->plug_window)
{
send_xembed_message (socket, XEMBED_FOCUS_OUT, 0, 0, 0,
@@ -821,20 +807,6 @@ gtk_socket_claim_focus (GtkSocket *socket)
GTK_WIDGET_SET_FLAGS (socket, GTK_CAN_FOCUS);
gtk_widget_grab_focus (GTK_WIDGET (socket));
GTK_WIDGET_UNSET_FLAGS (socket, GTK_CAN_FOCUS);
-
- /* FIXME: we might grab the focus even if we don't have
- * it as an app... (and see _focus_in ()) */
- if (socket->plug_window)
- {
-#if 0
- gdk_error_trap_push ();
- XSetInputFocus (GDK_WINDOW_XDISPLAY (socket->plug_window),
- GDK_WINDOW_XWINDOW (socket->plug_window),
- RevertToParent, GDK_CURRENT_TIME);
- gdk_display_sync (gdk_drawable_get_display (socket->plug_window));
- gdk_error_trap_pop ();
-#endif
- }
}
static gboolean
@@ -876,67 +848,6 @@ gtk_socket_focus (GtkWidget *widget, GtkDirectionType direction)
}
else
return FALSE;
-
-#if 0
- if (!socket->focus_in && socket->plug_window)
- {
- GdkScreen *screen = gdk_drawable_get_screen (socket->plug_window);
- Display *xdisplay = GDK_SCREEN_XDISPLAY (screen);
- XEvent xevent;
-
- gtk_socket_claim_focus (socket);
-
- xevent.xkey.type = KeyPress;
- xevent.xkey.window = GDK_WINDOW_XWINDOW (socket->plug_window);
- xevent.xkey.root = GDK_WINDOW_XWINDOW (gdk_screen_get_root_window (socket->plug_window));
- xevent.xkey.time = GDK_CURRENT_TIME;
- /* FIXME, the following might cause big problems for
- * non-GTK apps */
- xevent.xkey.x = 0;
- xevent.xkey.y = 0;
- xevent.xkey.x_root = 0;
- xevent.xkey.y_root = 0;
- xevent.xkey.state = 0;
- xevent.xkey.same_screen = TRUE; /* FIXME ? */
-
- switch (direction)
- {
- case GTK_DIR_UP:
- xevent.xkey.keycode = XKeysymToKeycode(xdisplay, GDK_Up);
- break;
- case GTK_DIR_DOWN:
- xevent.xkey.keycode = XKeysymToKeycode(xdisplay, GDK_Down);
- break;
- case GTK_DIR_LEFT:
- xevent.xkey.keycode = XKeysymToKeycode(xdisplay, GDK_Left);
- break;
- case GTK_DIR_RIGHT:
- xevent.xkey.keycode = XKeysymToKeycode(xdisplay, GDK_Right);
- break;
- case GTK_DIR_TAB_FORWARD:
- xevent.xkey.keycode = XKeysymToKeycode(xdisplay, GDK_Tab);
- break;
- case GTK_DIR_TAB_BACKWARD:
- xevent.xkey.keycode = XKeysymToKeycode(xdisplay, GDK_Tab);
- xevent.xkey.state = ShiftMask;
- break;
- }
-
-
- gdk_error_trap_push ();
- XSendEvent (GDK_WINDOW_XDISPLAY (socket->plug_window),
- GDK_WINDOW_XWINDOW (socket->plug_window),
- False, NoEventMask, &xevent);
- gdk_display_sync (gdk_drawable_get_display (socket->plug_window));
- gdk_error_trap_pop ();
-
- return TRUE;
- }
- else
- {
- return FALSE;
- }
-#endif
}
static void
@@ -1400,20 +1311,6 @@ gtk_socket_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
{
gtk_socket_claim_focus (socket);
}
- else if (xevent->xfocus.detail == NotifyInferior)
- {
-#if 0
- GtkWidget *toplevel;
- toplevel = gtk_widget_get_toplevel (widget);
-
- if (toplevel && GTK_IS_WINDOW (topelevel))
- {
- XSetInputFocus (GDK_WINDOW_XDISPLAY (toplevel->window),
- GDK_WINDOW_XWINDOW (toplevel->window),
- RevertToParent, CurrentTime); /* FIXME? */
- }
-#endif
- }
return_val = GDK_FILTER_REMOVE;
break;
case FocusOut:
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index e3c274a98..38750d5bf 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -3529,6 +3529,7 @@ gtk_window_configure_event (GtkWidget *widget,
GdkEventConfigure *event)
{
GtkWindow *window = GTK_WINDOW (widget);
+ gboolean expected_reply = window->configure_request_count > 0;
/* window->configure_request_count incremented for each
* configure request, and decremented to a min of 0 for
@@ -3553,7 +3554,7 @@ gtk_window_configure_event (GtkWidget *widget,
* notifies and can wait to resize when we get them
*/
- if (window->configure_request_count > 0 ||
+ if (!expected_reply &&
(widget->allocation.width == event->width &&
widget->allocation.height == event->height))
return TRUE;
@@ -3897,8 +3898,20 @@ static void
gtk_window_real_set_focus (GtkWindow *window,
GtkWidget *focus)
{
+ GtkWidget *old_focus = window->focus_widget;
gboolean def_flags = 0;
+ if (old_focus)
+ {
+ g_object_ref (old_focus);
+ g_object_freeze_notify (G_OBJECT (old_focus));
+ }
+ if (focus)
+ {
+ g_object_ref (focus);
+ g_object_freeze_notify (G_OBJECT (focus));
+ }
+
if (window->default_widget)
def_flags = GTK_WIDGET_HAS_DEFAULT (window->default_widget);
@@ -3938,6 +3951,17 @@ gtk_window_real_set_focus (GtkWindow *window,
if (window->default_widget &&
(def_flags != GTK_WIDGET_FLAGS (window->default_widget)))
gtk_widget_queue_draw (window->default_widget);
+
+ if (old_focus)
+ {
+ g_object_thaw_notify (G_OBJECT (old_focus));
+ g_object_unref (old_focus);
+ }
+ if (focus)
+ {
+ g_object_thaw_notify (G_OBJECT (focus));
+ g_object_unref (focus);
+ }
}
/*********************************
@@ -4337,38 +4361,38 @@ gtk_window_move_resize (GtkWindow *window)
/* this is the position from the last configure notify */
gdk_window_get_position (widget->window, &notify_x, &notify_y);
- g_print ("--- %s ---\n"
- "last : %d,%d\t%d x %d\n"
- "this : %d,%d\t%d x %d\n"
- "alloc : %d,%d\t%d x %d\n"
- "req : \t%d x %d\n"
- "resize: \t%d x %d\n"
- "size_changed: %d pos_changed: %d hints_changed: %d\n"
- "configure_notify_received: %d\n"
- "configure_request_count: %d\n"
- "position_constraints_changed: %d\n",
- window->title ? window->title : "(no title)",
- info->last.configure_request.x,
- info->last.configure_request.y,
- info->last.configure_request.width,
- info->last.configure_request.height,
- new_request.x,
- new_request.y,
- new_request.width,
- new_request.height,
- notify_x, notify_y,
- widget->allocation.width,
- widget->allocation.height,
- widget->requisition.width,
- widget->requisition.height,
- info->resize_width,
- info->resize_height,
- configure_request_pos_changed,
- configure_request_size_changed,
- hints_changed,
- window->configure_notify_received,
- window->configure_request_count,
- info->position_constraints_changed);
+ g_message ("--- %s ---\n"
+ "last : %d,%d\t%d x %d\n"
+ "this : %d,%d\t%d x %d\n"
+ "alloc : %d,%d\t%d x %d\n"
+ "req : \t%d x %d\n"
+ "resize: \t%d x %d\n"
+ "size_changed: %d pos_changed: %d hints_changed: %d\n"
+ "configure_notify_received: %d\n"
+ "configure_request_count: %d\n"
+ "position_constraints_changed: %d\n",
+ window->title ? window->title : "(no title)",
+ info->last.configure_request.x,
+ info->last.configure_request.y,
+ info->last.configure_request.width,
+ info->last.configure_request.height,
+ new_request.x,
+ new_request.y,
+ new_request.width,
+ new_request.height,
+ notify_x, notify_y,
+ widget->allocation.width,
+ widget->allocation.height,
+ widget->requisition.width,
+ widget->requisition.height,
+ info->resize_width,
+ info->resize_height,
+ configure_request_pos_changed,
+ configure_request_size_changed,
+ hints_changed,
+ window->configure_notify_received,
+ window->configure_request_count,
+ info->position_constraints_changed);
}
#endif