forked from AuroraMiddleware/gtk
Move notification of "has_default" to here, so it is safe to call
Fri Nov 16 19:44:35 2001 Owen Taylor <otaylor@redhat.com> * gtk/gtkwindow.c (gtk_window_set_default): Move notification of "has_default" to here, so it is safe to call gtk_window_set_default() instead of gtk_widget_grab_default(). * gtk/gtkwindow.c (gtk_window_set_focus): Make it call gtk_widget_grab_focus(), which then calls _gtk_widget_internal_set_focus(). This makes gtk_window_set_focus() a safe way of both setting and unsetting the focus widget. * gtk/gtkwidget.c (gtk_widget_propagate_state): Use gtk_widget_get_toplevel(), instead of gtk_widget_ancestor to find the toplevel. * gtk/gtkwindow.h: Move gtk_window_set_focus/default from the "internal functions" section.
This commit is contained in:
parent
f2d5aec4cb
commit
61b2f259e5
20
ChangeLog
20
ChangeLog
@ -1,3 +1,23 @@
|
|||||||
|
Fri Nov 16 19:44:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_default): Move
|
||||||
|
notification of "has_default" to here, so it
|
||||||
|
is safe to call gtk_window_set_default() instead
|
||||||
|
of gtk_widget_grab_default().
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_focus): Make it call
|
||||||
|
gtk_widget_grab_focus(), which then calls
|
||||||
|
_gtk_widget_internal_set_focus(). This makes
|
||||||
|
gtk_window_set_focus() a safe way of both setting
|
||||||
|
and unsetting the focus widget.
|
||||||
|
|
||||||
|
* gtk/gtkwidget.c (gtk_widget_propagate_state): Use
|
||||||
|
gtk_widget_get_toplevel(), instead of gtk_widget_ancestor
|
||||||
|
to find the toplevel.
|
||||||
|
|
||||||
|
* gtk/gtkwindow.h: Move gtk_window_set_focus/default
|
||||||
|
from the "internal functions" section.
|
||||||
|
|
||||||
2001-11-16 jacob berkman <jacob@ximian.com>
|
2001-11-16 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
Fri Nov 16 19:44:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_default): Move
|
||||||
|
notification of "has_default" to here, so it
|
||||||
|
is safe to call gtk_window_set_default() instead
|
||||||
|
of gtk_widget_grab_default().
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_focus): Make it call
|
||||||
|
gtk_widget_grab_focus(), which then calls
|
||||||
|
_gtk_widget_internal_set_focus(). This makes
|
||||||
|
gtk_window_set_focus() a safe way of both setting
|
||||||
|
and unsetting the focus widget.
|
||||||
|
|
||||||
|
* gtk/gtkwidget.c (gtk_widget_propagate_state): Use
|
||||||
|
gtk_widget_get_toplevel(), instead of gtk_widget_ancestor
|
||||||
|
to find the toplevel.
|
||||||
|
|
||||||
|
* gtk/gtkwindow.h: Move gtk_window_set_focus/default
|
||||||
|
from the "internal functions" section.
|
||||||
|
|
||||||
2001-11-16 jacob berkman <jacob@ximian.com>
|
2001-11-16 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
Fri Nov 16 19:44:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_default): Move
|
||||||
|
notification of "has_default" to here, so it
|
||||||
|
is safe to call gtk_window_set_default() instead
|
||||||
|
of gtk_widget_grab_default().
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_focus): Make it call
|
||||||
|
gtk_widget_grab_focus(), which then calls
|
||||||
|
_gtk_widget_internal_set_focus(). This makes
|
||||||
|
gtk_window_set_focus() a safe way of both setting
|
||||||
|
and unsetting the focus widget.
|
||||||
|
|
||||||
|
* gtk/gtkwidget.c (gtk_widget_propagate_state): Use
|
||||||
|
gtk_widget_get_toplevel(), instead of gtk_widget_ancestor
|
||||||
|
to find the toplevel.
|
||||||
|
|
||||||
|
* gtk/gtkwindow.h: Move gtk_window_set_focus/default
|
||||||
|
from the "internal functions" section.
|
||||||
|
|
||||||
2001-11-16 jacob berkman <jacob@ximian.com>
|
2001-11-16 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
Fri Nov 16 19:44:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_default): Move
|
||||||
|
notification of "has_default" to here, so it
|
||||||
|
is safe to call gtk_window_set_default() instead
|
||||||
|
of gtk_widget_grab_default().
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_focus): Make it call
|
||||||
|
gtk_widget_grab_focus(), which then calls
|
||||||
|
_gtk_widget_internal_set_focus(). This makes
|
||||||
|
gtk_window_set_focus() a safe way of both setting
|
||||||
|
and unsetting the focus widget.
|
||||||
|
|
||||||
|
* gtk/gtkwidget.c (gtk_widget_propagate_state): Use
|
||||||
|
gtk_widget_get_toplevel(), instead of gtk_widget_ancestor
|
||||||
|
to find the toplevel.
|
||||||
|
|
||||||
|
* gtk/gtkwindow.h: Move gtk_window_set_focus/default
|
||||||
|
from the "internal functions" section.
|
||||||
|
|
||||||
2001-11-16 jacob berkman <jacob@ximian.com>
|
2001-11-16 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
Fri Nov 16 19:44:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_default): Move
|
||||||
|
notification of "has_default" to here, so it
|
||||||
|
is safe to call gtk_window_set_default() instead
|
||||||
|
of gtk_widget_grab_default().
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_focus): Make it call
|
||||||
|
gtk_widget_grab_focus(), which then calls
|
||||||
|
_gtk_widget_internal_set_focus(). This makes
|
||||||
|
gtk_window_set_focus() a safe way of both setting
|
||||||
|
and unsetting the focus widget.
|
||||||
|
|
||||||
|
* gtk/gtkwidget.c (gtk_widget_propagate_state): Use
|
||||||
|
gtk_widget_get_toplevel(), instead of gtk_widget_ancestor
|
||||||
|
to find the toplevel.
|
||||||
|
|
||||||
|
* gtk/gtkwindow.h: Move gtk_window_set_focus/default
|
||||||
|
from the "internal functions" section.
|
||||||
|
|
||||||
2001-11-16 jacob berkman <jacob@ximian.com>
|
2001-11-16 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
Fri Nov 16 19:44:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_default): Move
|
||||||
|
notification of "has_default" to here, so it
|
||||||
|
is safe to call gtk_window_set_default() instead
|
||||||
|
of gtk_widget_grab_default().
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_focus): Make it call
|
||||||
|
gtk_widget_grab_focus(), which then calls
|
||||||
|
_gtk_widget_internal_set_focus(). This makes
|
||||||
|
gtk_window_set_focus() a safe way of both setting
|
||||||
|
and unsetting the focus widget.
|
||||||
|
|
||||||
|
* gtk/gtkwidget.c (gtk_widget_propagate_state): Use
|
||||||
|
gtk_widget_get_toplevel(), instead of gtk_widget_ancestor
|
||||||
|
to find the toplevel.
|
||||||
|
|
||||||
|
* gtk/gtkwindow.h: Move gtk_window_set_focus/default
|
||||||
|
from the "internal functions" section.
|
||||||
|
|
||||||
2001-11-16 jacob berkman <jacob@ximian.com>
|
2001-11-16 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
||||||
|
@ -1,3 +1,23 @@
|
|||||||
|
Fri Nov 16 19:44:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_default): Move
|
||||||
|
notification of "has_default" to here, so it
|
||||||
|
is safe to call gtk_window_set_default() instead
|
||||||
|
of gtk_widget_grab_default().
|
||||||
|
|
||||||
|
* gtk/gtkwindow.c (gtk_window_set_focus): Make it call
|
||||||
|
gtk_widget_grab_focus(), which then calls
|
||||||
|
_gtk_widget_internal_set_focus(). This makes
|
||||||
|
gtk_window_set_focus() a safe way of both setting
|
||||||
|
and unsetting the focus widget.
|
||||||
|
|
||||||
|
* gtk/gtkwidget.c (gtk_widget_propagate_state): Use
|
||||||
|
gtk_widget_get_toplevel(), instead of gtk_widget_ancestor
|
||||||
|
to find the toplevel.
|
||||||
|
|
||||||
|
* gtk/gtkwindow.h: Move gtk_window_set_focus/default
|
||||||
|
from the "internal functions" section.
|
||||||
|
|
||||||
2001-11-16 jacob berkman <jacob@ximian.com>
|
2001-11-16 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
* tests/testgtk.c (create_radio_buttons): add some no-indicator
|
||||||
|
@ -141,6 +141,8 @@ Application-driven progressive image loading.
|
|||||||
fetch the partially-loaded pixbuf.
|
fetch the partially-loaded pixbuf.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@gdkpixbufloader: the object which received the signal.
|
||||||
|
<!-- # Unused Parameters # -->
|
||||||
@loader: Loader which emitted the signal.
|
@loader: Loader which emitted the signal.
|
||||||
|
|
||||||
<!-- ##### SIGNAL GdkPixbufLoader::area-updated ##### -->
|
<!-- ##### SIGNAL GdkPixbufLoader::area-updated ##### -->
|
||||||
@ -152,6 +154,12 @@ Application-driven progressive image loading.
|
|||||||
areas of an image that is being loaded.
|
areas of an image that is being loaded.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@gdkpixbufloader: the object which received the signal.
|
||||||
|
@arg1:
|
||||||
|
@arg2:
|
||||||
|
@arg3:
|
||||||
|
@arg4:
|
||||||
|
<!-- # Unused Parameters # -->
|
||||||
@loader: Loader which emitted the signal.
|
@loader: Loader which emitted the signal.
|
||||||
@x: X offset of upper-left corner of the updated area.
|
@x: X offset of upper-left corner of the updated area.
|
||||||
@y: Y offset of upper-left corner of the updated area.
|
@y: Y offset of upper-left corner of the updated area.
|
||||||
@ -166,6 +174,8 @@ Application-driven progressive image loading.
|
|||||||
drives it.
|
drives it.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@gdkpixbufloader: the object which received the signal.
|
||||||
|
<!-- # Unused Parameters # -->
|
||||||
@loader: Loader which emitted the signal.
|
@loader: Loader which emitted the signal.
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
@ -102,3 +102,13 @@ then call gtk_dialog_add_buttons().
|
|||||||
@Returns:
|
@Returns:
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### ARG GtkMessageDialog:message-type ##### -->
|
||||||
|
<para>
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<!-- ##### ARG GtkMessageDialog:buttons ##### -->
|
||||||
|
<para>
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
@ -402,6 +402,14 @@ gtk_notebook_set_current_page() instead.
|
|||||||
@page_num:
|
@page_num:
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### SIGNAL GtkNotebook::change-current-page ##### -->
|
||||||
|
<para>
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
@notebook: the object which received the signal.
|
||||||
|
@arg1:
|
||||||
|
|
||||||
<!-- ##### SIGNAL GtkNotebook::focus-tab ##### -->
|
<!-- ##### SIGNAL GtkNotebook::focus-tab ##### -->
|
||||||
<para>
|
<para>
|
||||||
|
|
||||||
|
@ -475,7 +475,6 @@ GtkTreeView
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
@tree_view:
|
@tree_view:
|
||||||
@window:
|
|
||||||
@x:
|
@x:
|
||||||
@y:
|
@y:
|
||||||
@path:
|
@path:
|
||||||
@ -483,6 +482,8 @@ GtkTreeView
|
|||||||
@cell_x:
|
@cell_x:
|
||||||
@cell_y:
|
@cell_y:
|
||||||
@Returns:
|
@Returns:
|
||||||
|
<!-- # Unused Parameters # -->
|
||||||
|
@window:
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gtk_tree_view_get_cell_area ##### -->
|
<!-- ##### FUNCTION gtk_tree_view_get_cell_area ##### -->
|
||||||
|
@ -3345,12 +3345,12 @@ gtk_widget_real_grab_focus (GtkWidget *focus_widget)
|
|||||||
|
|
||||||
if (widget == focus_widget)
|
if (widget == focus_widget)
|
||||||
{
|
{
|
||||||
/* We call gtk_window_set_focus() here so that the
|
/* We call _gtk_window_internal_set_focus() here so that the
|
||||||
* toplevel window can request the focus if necessary.
|
* toplevel window can request the focus if necessary.
|
||||||
* This is needed when the toplevel is a GtkPlug
|
* This is needed when the toplevel is a GtkPlug
|
||||||
*/
|
*/
|
||||||
if (!GTK_WIDGET_HAS_FOCUS (widget))
|
if (!GTK_WIDGET_HAS_FOCUS (widget))
|
||||||
gtk_window_set_focus (GTK_WINDOW (toplevel), focus_widget);
|
_gtk_window_internal_set_focus (GTK_WINDOW (toplevel), focus_widget);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -3385,7 +3385,7 @@ gtk_widget_real_grab_focus (GtkWidget *focus_widget)
|
|||||||
widget = widget->parent;
|
widget = widget->parent;
|
||||||
}
|
}
|
||||||
if (GTK_IS_WINDOW (widget))
|
if (GTK_IS_WINDOW (widget))
|
||||||
gtk_window_set_focus (GTK_WINDOW (widget), focus_widget);
|
_gtk_window_internal_set_focus (GTK_WINDOW (widget), focus_widget);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3455,22 +3455,14 @@ void
|
|||||||
gtk_widget_grab_default (GtkWidget *widget)
|
gtk_widget_grab_default (GtkWidget *widget)
|
||||||
{
|
{
|
||||||
GtkWidget *window;
|
GtkWidget *window;
|
||||||
GtkType window_type;
|
|
||||||
|
|
||||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||||
g_return_if_fail (GTK_WIDGET_CAN_DEFAULT (widget));
|
g_return_if_fail (GTK_WIDGET_CAN_DEFAULT (widget));
|
||||||
|
|
||||||
window_type = GTK_TYPE_WINDOW;
|
window = gtk_widget_get_toplevel (widget);
|
||||||
window = widget->parent;
|
|
||||||
|
|
||||||
while (window && !gtk_type_is_a (GTK_WIDGET_TYPE (window), window_type))
|
if (window && GTK_WIDGET_TOPLEVEL (window))
|
||||||
window = window->parent;
|
|
||||||
|
|
||||||
if (window && gtk_type_is_a (GTK_WIDGET_TYPE (window), window_type))
|
|
||||||
{
|
|
||||||
gtk_window_set_default (GTK_WINDOW (window), widget);
|
gtk_window_set_default (GTK_WINDOW (window), widget);
|
||||||
g_object_notify (G_OBJECT (widget), "has_default");
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
g_warning (G_STRLOC ": widget not within a GtkWindow");
|
g_warning (G_STRLOC ": widget not within a GtkWindow");
|
||||||
}
|
}
|
||||||
@ -5775,8 +5767,8 @@ gtk_widget_propagate_state (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GtkWidget *window;
|
GtkWidget *window;
|
||||||
|
|
||||||
window = gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW);
|
window = gtk_widget_get_toplevel (widget);
|
||||||
if (window)
|
if (window && GTK_WIDGET_TOPLEVEL (window))
|
||||||
gtk_window_set_focus (GTK_WINDOW (window), NULL);
|
gtk_window_set_focus (GTK_WINDOW (window), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -922,14 +922,14 @@ gtk_window_get_role (GtkWindow *window)
|
|||||||
/**
|
/**
|
||||||
* gtk_window_set_focus:
|
* gtk_window_set_focus:
|
||||||
* @window: a #GtkWindow
|
* @window: a #GtkWindow
|
||||||
* @focus: widget to be the new focus widget
|
* @focus: widget to be the new focus widget, or %NULL to unset
|
||||||
*
|
* any focus widget for the toplevel window.
|
||||||
* If @focus is not the current focus widget, and is focusable, emits
|
|
||||||
* the "set_focus" signal to set @focus as the focus widget for the
|
|
||||||
* window. This function is more or less GTK-internal; to focus an
|
|
||||||
* entry widget or the like, you should use gtk_widget_grab_focus()
|
|
||||||
* instead of this function.
|
|
||||||
*
|
*
|
||||||
|
* If @focus is not the current focus widget, and is focusable, sets
|
||||||
|
* it as the focus widget for the window. If @focus is %NULL, unsets
|
||||||
|
* the focus widget for this window. To set the focus to a particular
|
||||||
|
* widget in the toplevel, it is usually more convenient to use
|
||||||
|
* gtk_widget_grab_focus() instead of this function.
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
gtk_window_set_focus (GtkWindow *window,
|
gtk_window_set_focus (GtkWindow *window,
|
||||||
@ -942,6 +942,18 @@ gtk_window_set_focus (GtkWindow *window,
|
|||||||
g_return_if_fail (GTK_WIDGET_CAN_FOCUS (focus));
|
g_return_if_fail (GTK_WIDGET_CAN_FOCUS (focus));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (focus)
|
||||||
|
gtk_widget_grab_focus (focus);
|
||||||
|
else
|
||||||
|
_gtk_window_internal_set_focus (window, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_gtk_window_internal_set_focus (GtkWindow *window,
|
||||||
|
GtkWidget *focus)
|
||||||
|
{
|
||||||
|
g_return_if_fail (GTK_IS_WINDOW (window));
|
||||||
|
|
||||||
if ((window->focus_widget != focus) ||
|
if ((window->focus_widget != focus) ||
|
||||||
(focus && !GTK_WIDGET_HAS_FOCUS (focus)))
|
(focus && !GTK_WIDGET_HAS_FOCUS (focus)))
|
||||||
gtk_signal_emit (GTK_OBJECT (window), window_signals[SET_FOCUS], focus);
|
gtk_signal_emit (GTK_OBJECT (window), window_signals[SET_FOCUS], focus);
|
||||||
@ -950,21 +962,23 @@ gtk_window_set_focus (GtkWindow *window,
|
|||||||
/**
|
/**
|
||||||
* gtk_window_set_default:
|
* gtk_window_set_default:
|
||||||
* @window: a #GtkWindow
|
* @window: a #GtkWindow
|
||||||
* @default_widget: widget to be the default
|
* @default_widget: widget to be the default, or %NULL to unset the
|
||||||
|
* default widget for the toplevel.
|
||||||
*
|
*
|
||||||
* The default widget is the widget that's activated when the user
|
* The default widget is the widget that's activated when the user
|
||||||
* presses Enter in a dialog (for example). This function tells a
|
* presses Enter in a dialog (for example). This function sets or
|
||||||
* #GtkWindow about the current default widget; it's really a GTK
|
* unsets the default widget for a #GtkWindow about. When setting
|
||||||
* internal function and you shouldn't need it. Instead, to change the
|
* (rather than unsetting) the default widget it's generally easier to
|
||||||
* default widget, first set the #GTK_CAN_DEFAULT flag on the widget
|
* call gtk_widget_grab_focus() on the widget. Before making a widget
|
||||||
* you'd like to make the default using GTK_WIDGET_SET_FLAGS(), then
|
* the default widget, you must set the #GTK_CAN_DEFAULT flag on the
|
||||||
* call gtk_widget_grab_default() to move the default.
|
* widget you'd like to make the default using GTK_WIDGET_SET_FLAGS().
|
||||||
*
|
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
gtk_window_set_default (GtkWindow *window,
|
gtk_window_set_default (GtkWindow *window,
|
||||||
GtkWidget *default_widget)
|
GtkWidget *default_widget)
|
||||||
{
|
{
|
||||||
|
GtkWidget *old_default;
|
||||||
|
|
||||||
g_return_if_fail (GTK_IS_WINDOW (window));
|
g_return_if_fail (GTK_IS_WINDOW (window));
|
||||||
|
|
||||||
if (default_widget)
|
if (default_widget)
|
||||||
@ -972,8 +986,15 @@ gtk_window_set_default (GtkWindow *window,
|
|||||||
|
|
||||||
if (window->default_widget != default_widget)
|
if (window->default_widget != default_widget)
|
||||||
{
|
{
|
||||||
|
GtkWidget *old_default_widget = NULL;
|
||||||
|
|
||||||
|
if (default_widget)
|
||||||
|
g_object_ref (default_widget);
|
||||||
|
|
||||||
if (window->default_widget)
|
if (window->default_widget)
|
||||||
{
|
{
|
||||||
|
old_default_widget = window->default_widget;
|
||||||
|
|
||||||
if (window->focus_widget != window->default_widget ||
|
if (window->focus_widget != window->default_widget ||
|
||||||
!GTK_WIDGET_RECEIVES_DEFAULT (window->default_widget))
|
!GTK_WIDGET_RECEIVES_DEFAULT (window->default_widget))
|
||||||
GTK_WIDGET_UNSET_FLAGS (window->default_widget, GTK_HAS_DEFAULT);
|
GTK_WIDGET_UNSET_FLAGS (window->default_widget, GTK_HAS_DEFAULT);
|
||||||
@ -989,6 +1010,15 @@ gtk_window_set_default (GtkWindow *window,
|
|||||||
GTK_WIDGET_SET_FLAGS (window->default_widget, GTK_HAS_DEFAULT);
|
GTK_WIDGET_SET_FLAGS (window->default_widget, GTK_HAS_DEFAULT);
|
||||||
gtk_widget_queue_draw (window->default_widget);
|
gtk_widget_queue_draw (window->default_widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (old_default_widget)
|
||||||
|
g_object_notify (G_OBJECT (old_default_widget), "has_default");
|
||||||
|
|
||||||
|
if (default_widget)
|
||||||
|
{
|
||||||
|
g_object_notify (G_OBJECT (default_widget), "has_default");
|
||||||
|
g_object_unref (default_widget);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,7 +166,11 @@ void gtk_window_remove_accel_group (GtkWindow *window,
|
|||||||
void gtk_window_set_position (GtkWindow *window,
|
void gtk_window_set_position (GtkWindow *window,
|
||||||
GtkWindowPosition position);
|
GtkWindowPosition position);
|
||||||
gboolean gtk_window_activate_focus (GtkWindow *window);
|
gboolean gtk_window_activate_focus (GtkWindow *window);
|
||||||
|
void gtk_window_set_focus (GtkWindow *window,
|
||||||
|
GtkWidget *focus);
|
||||||
GtkWidget *gtk_window_get_focus (GtkWindow *window);
|
GtkWidget *gtk_window_get_focus (GtkWindow *window);
|
||||||
|
void gtk_window_set_default (GtkWindow *window,
|
||||||
|
GtkWidget *default_widget);
|
||||||
gboolean gtk_window_activate_default (GtkWindow *window);
|
gboolean gtk_window_activate_default (GtkWindow *window);
|
||||||
|
|
||||||
void gtk_window_set_transient_for (GtkWindow *window,
|
void gtk_window_set_transient_for (GtkWindow *window,
|
||||||
@ -305,10 +309,8 @@ void gtk_window_group_remove_window (GtkWindowGroup *window_grou
|
|||||||
GtkWindow *window);
|
GtkWindow *window);
|
||||||
|
|
||||||
/* --- internal functions --- */
|
/* --- internal functions --- */
|
||||||
void gtk_window_set_focus (GtkWindow *window,
|
void _gtk_window_internal_set_focus (GtkWindow *window,
|
||||||
GtkWidget *focus);
|
GtkWidget *focus);
|
||||||
void gtk_window_set_default (GtkWindow *window,
|
|
||||||
GtkWidget *defaultw);
|
|
||||||
void gtk_window_remove_embedded_xid (GtkWindow *window,
|
void gtk_window_remove_embedded_xid (GtkWindow *window,
|
||||||
guint xid);
|
guint xid);
|
||||||
void gtk_window_add_embedded_xid (GtkWindow *window,
|
void gtk_window_add_embedded_xid (GtkWindow *window,
|
||||||
|
Loading…
Reference in New Issue
Block a user