forked from AuroraMiddleware/gtk
Make it work, even if the window is already realized or mapped.
Tue Apr 30 18:42:25 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtkwindow.c (gtk_window_set_screen): Make it work, even if the window is already realized or mapped. * tests/testgtk.c: Erwann's multihead changes, slightly dumbed down. (Removed logic for pulling windows onto the current screen, people can click twice on the demo to destroy and create again.) * tests/prop-editor.c: Set the screen on the property editor if the edited object is a widget.
This commit is contained in:
parent
6aa88ee1f4
commit
087fd22c50
@ -56,7 +56,6 @@ Tue Apr 30 14:15:14 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkfilesel.c gtk/gtkselection.c: Doc fixes.
|
||||
|
||||
>>>>>>> 1.3389
|
||||
2002-04-30 Erwann Chenede - <erwann.chenede@sun.com>
|
||||
|
||||
* gdk/x11/gdkimage-x11.c : rationalized multihead code
|
||||
|
@ -56,7 +56,6 @@ Tue Apr 30 14:15:14 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkfilesel.c gtk/gtkselection.c: Doc fixes.
|
||||
|
||||
>>>>>>> 1.3389
|
||||
2002-04-30 Erwann Chenede - <erwann.chenede@sun.com>
|
||||
|
||||
* gdk/x11/gdkimage-x11.c : rationalized multihead code
|
||||
|
@ -56,7 +56,6 @@ Tue Apr 30 14:15:14 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkfilesel.c gtk/gtkselection.c: Doc fixes.
|
||||
|
||||
>>>>>>> 1.3389
|
||||
2002-04-30 Erwann Chenede - <erwann.chenede@sun.com>
|
||||
|
||||
* gdk/x11/gdkimage-x11.c : rationalized multihead code
|
||||
|
@ -56,7 +56,6 @@ Tue Apr 30 14:15:14 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkfilesel.c gtk/gtkselection.c: Doc fixes.
|
||||
|
||||
>>>>>>> 1.3389
|
||||
2002-04-30 Erwann Chenede - <erwann.chenede@sun.com>
|
||||
|
||||
* gdk/x11/gdkimage-x11.c : rationalized multihead code
|
||||
|
@ -56,7 +56,6 @@ Tue Apr 30 14:15:14 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkfilesel.c gtk/gtkselection.c: Doc fixes.
|
||||
|
||||
>>>>>>> 1.3389
|
||||
2002-04-30 Erwann Chenede - <erwann.chenede@sun.com>
|
||||
|
||||
* gdk/x11/gdkimage-x11.c : rationalized multihead code
|
||||
|
@ -56,7 +56,6 @@ Tue Apr 30 14:15:14 2002 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* gtk/gtkfilesel.c gtk/gtkselection.c: Doc fixes.
|
||||
|
||||
>>>>>>> 1.3389
|
||||
2002-04-30 Erwann Chenede - <erwann.chenede@sun.com>
|
||||
|
||||
* gdk/x11/gdkimage-x11.c : rationalized multihead code
|
||||
|
@ -5386,26 +5386,41 @@ gtk_window_begin_move_drag (GtkWindow *window,
|
||||
* @window: a #GtkWindow.
|
||||
* @screen: a #GtkScreen.
|
||||
*
|
||||
* Sets the #GdkScreen where the @window will be displayed.
|
||||
* This function has to be called before the @window
|
||||
* object is realized otherwise it will fail.
|
||||
* Sets the #GdkScreen where the @window is displayed; if
|
||||
* the window is already mapped, it will be unmapped, and
|
||||
* then remapped on the new screen.
|
||||
*/
|
||||
void
|
||||
gtk_window_set_screen (GtkWindow *window,
|
||||
GdkScreen *screen)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
gboolean was_mapped;
|
||||
|
||||
g_return_if_fail (GTK_IS_WINDOW (window));
|
||||
g_return_if_fail (GDK_IS_SCREEN (screen));
|
||||
|
||||
if (GTK_WIDGET_REALIZED (window))
|
||||
{
|
||||
g_warning ("Trying to change the window's screen while widget is visible");
|
||||
return;
|
||||
}
|
||||
if (screen == window->screen)
|
||||
return;
|
||||
|
||||
widget = GTK_WIDGET (window);
|
||||
|
||||
was_mapped = GTK_WIDGET_MAPPED (widget);
|
||||
|
||||
if (was_mapped)
|
||||
gtk_widget_unmap (widget);
|
||||
if (GTK_WIDGET_REALIZED (widget))
|
||||
gtk_widget_unrealize (widget);
|
||||
|
||||
gtk_window_free_key_hash (window);
|
||||
window->screen = screen;
|
||||
gtk_widget_reset_rc_styles (widget);
|
||||
g_object_notify (G_OBJECT (window), "screen");
|
||||
|
||||
if (was_mapped)
|
||||
gtk_widget_map (widget);
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_window_get_screen:
|
||||
* @window: a #GtkWindow.
|
||||
|
@ -735,7 +735,8 @@ properties_from_type (GObject *object,
|
||||
|
||||
/* Pass zero for type if you want all properties */
|
||||
GtkWidget*
|
||||
create_prop_editor (GObject *object, GType type)
|
||||
create_prop_editor (GObject *object,
|
||||
GType type)
|
||||
{
|
||||
GtkWidget *win;
|
||||
GtkWidget *notebook;
|
||||
@ -751,7 +752,10 @@ create_prop_editor (GObject *object, GType type)
|
||||
}
|
||||
|
||||
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
if (GTK_IS_WIDGET (object))
|
||||
gtk_window_set_screen (GTK_WINDOW (win),
|
||||
gtk_widget_get_screen (GTK_WIDGET (object)));
|
||||
|
||||
tips = gtk_tooltips_new ();
|
||||
gtk_signal_connect_object (GTK_OBJECT (win), "destroy",
|
||||
GTK_SIGNAL_FUNC (gtk_object_destroy), GTK_OBJECT (tips));
|
||||
|
@ -23,8 +23,8 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
GtkWidget *create_prop_editor (GObject *object,
|
||||
GType type);
|
||||
GtkWidget *create_prop_editor (GObject *object,
|
||||
GType type);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
819
tests/testgtk.c
819
tests/testgtk.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user